2014-05-21 2 views
-2

내 소스 코드에서 profilling 커널을 코딩하려고하는데 CUDA 커널에서 여러 메트릭을 프로파일 링해야한다. CUDA 구성 요소로 PAPI를 시도했지만 효과가 없습니다. 또한 NVidia CUPTI API에 주목했지만 샘플 코드 callback_metrics는 커널 당 하나의 메트릭 만 프로파일 링하며 여러 메트릭에서 샘플 소스 코드를 변경하는 방법에 대해서는 약간 혼란 스럽습니다. 추신 : 내 소스 코드에서 profilling이 발생해야하기 때문에 nvprof 도구가 도움이되지 않습니다.Nvidia CUDA gpu 카드에서 여러 메트릭을 코드 작성하는 방법은 무엇입니까?

답변

1

CUPTI API는 여러 기술을 사용하여 GPU에서 데이터를 수집합니다. 각 기술은 단일 커널에서 어떤 데이터를 수집 할 수 있는지에 한계가 있습니다. 더 복잡한 메트릭이나 다중 메트릭 CUPTI를 수집하려면 커널 시작을 여러 번 재생해야합니다. CUPTI에는 응용 프로그램 내에서 커널을 여러 번 투명하게 재생할 수있는 커널 재생이라는 기능이 있습니다. CUDA API 관점에서 보았을 때 커널은 실행하는데 오래 걸리는 것처럼 보입니다. 이 기능은 CUPTI_EVENT_COLLECTION_MODE_KERNEL에 수집 모드를 변경합니다

CUptiResult CUPTIAPI cuptiEnableKernelReplayMode(CUcontext context); 

를 호출하여 사용할 수 있습니다.

cupti_events.h 및 이벤트 모음에 대한 자세한 정보는 CUPTI 사용 설명서 섹션 CUPTI Event API을 참조하십시오.

관련 문제