Counter Sampling

Panther·2021년 8월 15일
0

https://developer.apple.com/documentation/metal/counter_sampling

"Improve performance by measuring GPU statistics in your app."

앱에서 GPU 통계를 측정해 성능을 향상시킵니다.

Overview

GPU는 스스로 실행하는 명령에 대한 정보를 추적합니다. 예를 들어 각 명령의 시작 혹은 끝 시점, 각 shader를 GPU가 몇 회 호출하는지, 명령이 GPU 하드웨어의 다른 부분들을 어떻게 사용하는지와 같은 것이 있습니다. Xcode에서 GPU 카운터 데이터를 캡처할 수 있고 분석할 수 있습니다. 혹은 앱에서 성능 데이터를 측정할 수 있고 표시할 수 있습니다. 예를 들어 게임 엔진에서 애니페이션 프레임의 부분으로써 스크린에 GPU 성능 데이터를 표시할 수 있고, 성능 목적을 충족시키지 않는 프레임을 강조할 수 있습니다.

Note
앱에서의 GPU 카운터 샘플링 방법에 대한 비디오 설명은 Explore Live GPU Profiling with Metal Counters를 보시기 바랍니다.

Explore Live GPU Profiling with Metal Counters
https://developer.apple.com/videos/play/tech-talks/10001/

타임스탬프 정보 기록을 위해 카운터 샘플링을 사용하는 경우 GPU 타임스탬프를 GPU 측정에 상응하는 값으로 변환해야 합니다. Correlating CPU and GPU Timestamps를 보시기 바랍니다.

Correlating CPU and GPU Timestamps
https://developer.apple.com/documentation/metal/counter_sampling/correlating_cpu_and_gpu_timestamps

Topics


Counters and Counter Sets

지원되는 카운터 집합에 대해 GPU를 쿼리합니다.

https://developer.apple.com/documentation/metal/counter_sampling/checking_for_gpu_counter_support
https://velog.io/@panther222128/Checking-for-GPU-Counter-Support

Checking for GPU Counter Support


Sample Buffers

Creating Counter Sample Buffers to Hold Counter Data

샘플링 데이터를 저장하기 위해 GPU가 접근 가능한 메모리를 사용합니다.

https://developer.apple.com/documentation/metal/counter_sampling/creating_counter_sample_buffers_to_hold_counter_data
https://velog.io/@panther222128/Creating-Counter-Sample-Buffers-to-Hold-Counter-Data

Sampling GPU Data into Counter Sample Buffers

Metal 명령을 인코딩할 때 언제 카운터를 샘플링할지 결정합니다.

https://developer.apple.com/documentation/metal/counter_sampling/sampling_gpu_data_into_counter_sample_buffers
https://velog.io/@panther222128/Sampling-GPU-Data-into-Counter-Sample-Buffers

MTLCounterSampleBufferDescriptor

카운터 샘플 버퍼 생성을 위해 사용되는 설정입니다.

https://developer.apple.com/documentation/metal/mtlcountersamplebufferdescriptor
https://velog.io/@panther222128/MTLCounterSampleBufferDescriptor


Sample Results

Resolving Counter Samples to Read the Data

Correlating CPU and GPU Timestamps


See Also


Command Setup

Setting Up a Command Structure

Metal이 GPU에서 명령을 실행하는 방법을 알아봅니다.

https://developer.apple.com/documentation/metal/setting_up_a_command_structure
https://velog.io/@panther222128/Setting-Up-a-Command-Structure

Preparing Your Metal App to Run in the Background

나중의 GPU 사용을 일시정지하고 이전 작업이 스케줄링 되는 것을 확실히 함으로써 앱이 백그라운드에 이동할 준비를 합니다.

https://developer.apple.com/documentation/metal/preparing_your_metal_app_to_run_in_the_background
https://velog.io/@panther222128/Preparing-Your-Metal-App-to-Run-in-the-Background


0개의 댓글