Android GPU 검사기 빠른 시작

이 주제에서는 Android GPU 검사기 (AGI)를 사용하여 Android 앱에서 시스템 프로파일링프레임 프로파일링을 실행하는 방법을 설명합니다.

이 빠른 시작은 Android에서 그래픽 개발에 익숙한 개발자를 대상으로 합니다.

컴퓨터 요구사항

AGI를 실행하는 컴퓨터는 다음 요구사항을 충족해야 합니다.

AGI 다운로드 및 설치하기

운영체제에 맞는 AGI를 다운로드하고 설치합니다.

Android 앱 요구사항

이 섹션에서는 프로파일링되는 Android 앱의 요구사항을 설명합니다.

  • Android 앱은 디버그가 가능해야 하고, 앱의 Android 매니페스트에서 디버그 가능 속성true로 설정해야 합니다. 이 속성을 사용하면 그래픽 드라이버에서 적절한 계측을 사용할 수 있습니다. Vulkan 애플리케이션의 경우 이 속성을 사용하면 애플리케이션이 시작될 때 AGI가 자체 Vulkan 레이어를 추가할 수 있습니다.

    <application [...] android:debuggable="true">
    

앱에서 Vulkan을 기본적으로 사용하는 경우 AGI에는 다음이 필요합니다.

  • 앱에서 Vulkan 유효성 검사 계층을 사용 설정해야 합니다. 사용 설정되어 있지 않으면 다음 명령어를 실행하여 AGI APK(com.google.android.gapid.<abi>)에 포함된 유효성 검사 계층으로 앱을 강제로 실행할 수 있습니다.

    app_package=<YOUR APP PACKAGE NAME HERE>
    abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86
    
    adb shell settings put global enable_gpu_debug_layers 1
    adb shell settings put global gpu_debug_app ${app_package}
    adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi}
    adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validation
    

    프로파일링이 완료되면 다음 명령어를 사용하여 이러한 유효성 검사 계층을 사용 중지할 수 있습니다.

    adb shell settings delete global enable_gpu_debug_layers
    adb shell settings delete global gpu_debug_app
    adb shell settings delete global gpu_debug_layers
    adb shell settings delete global gpu_debug_layer_app
    
  • 앱은 Vulkan 유효성 검사 계층을 사용 설정한 상태에서 실행될 때 경고나 오류를 보고해서는 안 됩니다. 프로파일링 전에 Vulkan 유효성 검사 오류를 수정합니다.

  • 베타 GPU 드라이버를 사용하는 경우 Android 매니페스트의 <application> 태그에 다음 메타데이터를 포함합니다.

    <meta-data
              android:name="com.android.graphics.developerdriver.enable"
              android:value="true" />
    

Android 기기 요구사항

AGI에는 다음과 같은 Android 기기 요구사항이 있습니다.

  • Android 11 이상을 실행하는 지원되는 Android 기기

  • USB 케이블

  • adb 디버깅이 사용 설정되어 있어야 하고 adb를 통해 기기에 액세스할 수 있어야 합니다. USB를 통해 설치 옵션이 표시되면 사용 설정합니다.

기기 확인

AGI에는 호환되는 GPU 드라이버가 필요합니다. 유효한 프로파일링 데이터를 제공하기 위해 AGI는 새 기기를 처음 연결할 때 유효성 검사를 실행하며 이 과정에 약 10초가 걸립니다. 검사를 통과한 후 기기를 사용하여 Android 앱을 프로파일링할 수 있습니다.

확인이 진행되는 동안 기기를 방해하지 마세요. 이로 인해 기기의 유효성 검사가 실패할 수 있습니다. 기기가 유효성 검사에 실패했지만 올바르게 설정된 경우 기기를 다시 선택하여 유효성 검사를 다시 시도할 수 있습니다.

유효성 검사는 기기의 일회성 단계이며 결과는 향후 AGI 사용을 위해 캐시됩니다. 그러나 기기 설정이 변경되면(예: GPU 드라이버 또는 Android 버전이 업데이트되는 경우) AGI가 다시 유효성 검사를 실행합니다.

기기가 지원되는 기기로 등록되어 있으면 AGI가 유효성 검사를 통과할 것으로 예상할 수 있습니다. 기기가 목록에 없다면 GPU 드라이버가 AGI와 호환되지 않을 가능성이 높습니다.

기기가 지원되지만 확인에 실패한 경우

이전 섹션에서 설명한 모든 Android 요구사항컴퓨터 요구사항을 충족했으며 기기가 USB 케이블로 컴퓨터에 제대로 연결되어 있는지 확인합니다.

모든 요구사항이 충족되면 동작을 설명하는 GitHub 저장소에 문제를 제출하세요.

사용 중인 기기가 지원되지 않는 경우

Google에서는 더 많은 기기를 지원하기 위해 OEM 파트너와 협력하고 있습니다. GitHub 저장소에서 문제를 신고하여 기기 지원을 요청할 수 있습니다.

프로파일링 데이터 캡처

다음 섹션에서는 프로파일링 데이터를 캡처하고 결과 트레이스 파일을 열어 결과를 분석하는 방법을 설명합니다.

Android 설정 구성

프로파일링을 시작하기 전에 프로파일링할 앱과 기기를 지정하는 이러한 Android 앱 및 기기 설정을 구성해야 합니다.

  1. USB 케이블을 사용하여 Android 기기를 컴퓨터에 연결합니다.

  2. 컴퓨터에서 AGI를 실행합니다.

    AGI를 처음 실행하면 Welcome 화면이 표시되며 이 화면에 adb 실행 파일의 경로를 묻는 메시지가 표시됩니다. AGI는 이러한 설정을 HOME 폴더의 .agic 파일에 저장합니다. 이미 완료했다면 이 단계를 건너뛰어도 됩니다.

    시작 화면
    그림 1: 시작 화면
  3. Path to adb 필드에 adb 실행 파일의 경로를 입력합니다. 이 필드 다음의 체크박스는 선택사항입니다.

  4. 시작하기를 클릭하여 시작 화면을 표시합니다.

    AGI 시작 화면
    그림 2: Android GPU 검사기 기본 시작 화면
  5. 시작 화면에서 Capture a new trace(새 트레이스 캡처)를 클릭합니다. 그러면 Capture A New Trace 대화상자가 표시됩니다. 또는 Capture System Profile trace(시스템 프로필 트레이스 캡처) 버튼을 클릭해도 됩니다.

    Capture A New Trace 대화상자
    그림 3: Capture A New Trace 대화상자
  6. 기기 및 유형 섹션에서 프로파일링할 Android 기기를 선택합니다. Device 목록에 표시되지 않으면 새로고침 화살표를 클릭하여 목록을 새로고침합니다.

  7. 애플리케이션 섹션에서 프로파일링할 앱을 선택합니다. 패키지에 활동이 하나만 있는 경우 활동 대신 패키지를 선택할 수 있습니다.

    AGI에는 샘플 Vulkan 앱이 포함되어 있습니다. 자체 앱 대신 샘플 앱을 사용하려면 다음 단계를 따르세요.

    1. Application 필드 옆의 ... 버튼을 클릭합니다.

      그러면 Select an Application to Trace 대화상자가 표시되며 이 대화상자에는 선택한 기기에서 추적할 수 있는 앱 목록이 표시됩니다.

    2. 필터 텍스트 상자에 gapid를 입력하여 패키지 이름에 gapid가 포함된 애플리케이션만 표시합니다.

    3. 패키지를 확장하고 com.google.android.gapid.VkSampleActivity를 선택한 후 OK를 클릭합니다.

      이렇게 하면 Capture A New Trace 대화상자가 표시되고 Application 필드가 선택한 앱으로 채워집니다.

  8. Application 섹션에서 다른 필드는 비워 둡니다.

  9. OK를 클릭합니다.

이제 AGI를 사용하여 시스템 및 프레임 프로파일링을 실행할 수 있습니다.

시스템 프로파일링

시스템을 프로파일링하려면 다음 단계를 따르세요.

  1. AGI 시작 화면에서 Capture a new trace를 클릭하여 Capture System Profile 대화상자를 표시합니다.

  2. Type(유형) 목록에서 System profile(시스템 프로필)을 선택합니다.

  3. 시작 및 기간 섹션에서 시작 시간수동으로, 기간2로 설정합니다.

  4. Trace Options 섹션에서 Configure를 클릭합니다. 그러면 프로파일링 옵션 목록이 표시됩니다.

    Capture Config 대화상자
    그림 4: Capture System Profile 대화상자의 프로파일링 옵션
  5. 캡처할 프로파일링 데이터를 선택합니다.

  6. GPU 섹션에서 선택을 클릭합니다.

    그러면 선택할 카운터 목록이 표시됩니다.

    카운터 구성
    그림 5: 카운터 선택
  7. default를 클릭하여 기본 카운터 세트를 선택하고 OK를 클릭하여 프로파일링 옵션을 반환합니다.

  8. OK를 클릭하여 기본 Capture System Profile 대화상자로 돌아갑니다.

  9. Output(출력) 섹션에서 Output Directory를 선택하여 프로파일링 중에 생성된 트레이스 파일을 저장합니다. File Name 필드는 자동으로 채워지지만 수정할 수도 있습니다.

  10. OK를 클릭합니다. 그러면 선택한 앱이 Android 기기에서 시작되고 Start 버튼이 있는 팝업 창이 표시됩니다.

  11. Start(시작) 버튼을 클릭하여 프로파일링 데이터 캡처를 시작하고 프로세스가 완료될 때까지 몇 초 동안 기다립니다.

  12. Open Trace를 클릭합니다. 표시되는 초기 뷰는 systrace와 유사합니다.

    시스템 프로필 트레이스
    그림 6: 시스템 프로파일러 UI

    systrace에서 사용할 수 있는 데이터 외에 AGI는 GPU 성능 정보도 표시합니다. 시스템 프로파일링 데이터를 보는 방법에 관한 자세한 내용은 AGI 시스템 프로필 보기를 참고하세요.

추가 설정에 관한 자세한 내용은 시스템 프로파일링 옵션을 참고하세요.

프레임 프로파일링

앱에서 개별 프레임을 프로파일링하려면 다음 단계를 따르세요.

  1. AGI 시작 화면에서 Capture a new trace를 클릭하여 Capture A New Trace 대화상자를 표시합니다. 또는 Capture Frame Profile trace 버튼을 클릭하세요.

  2. Type 목록에서 앱이 사용하는 그래픽 API에 따라 Vulkan 또는 OpenGL on ANGLE을 선택합니다. 올바른 명령어를 선택해야 합니다. 그러지 않으면 AGI가 그래픽 명령어를 캡처하지 않습니다.

  3. 시작 및 기간 섹션에서 시작 시간수동으로 설정합니다. Capture Frame Profile trace 버튼을 클릭했다면 이 단계는 이미 완료된 것입니다.

  4. Output(출력) 섹션에서 Output Directory를 선택하여 트레이스 파일을 저장합니다. File Name 필드가 자동으로 채워져야 하지만 수정할 수도 있습니다.

  5. 선택사항: 일부 앱은 모든 그래픽 처리를 실행하는 다른 프로세스를 생성합니다. 이 프로세스를 캡처하려면 이름을 지정합니다.

  6. OK를 클릭합니다. 그러면 Android 기기에서 앱이 시작되고 Start(시작) 버튼이 있는 팝업 창이 표시됩니다.

  7. Start(시작) 버튼을 클릭하고 프로파일링이 완료될 때까지 몇 초 동안 기다립니다.

  8. Open Trace를 클릭하여 프로파일링 데이터를 확인합니다. 프레임 프로파일러 UI의 각 창에 관한 자세한 내용은 프레임 프로파일링 개요를 참고하세요.

추가 설정에 관한 자세한 내용은 프레임 프로파일링 옵션을 참고하세요.