2017-01-17 11 views
7

NVIDIA TITAN X 및 CUDA 8.0이 설치된 시스템에서 OpenCL 응용 프로그램 a.out의 프로파일을 작성하려고합니다.CUDA 8.0으로 OpenCL 응용 프로그램을 프로파일하는 방법

CUDA 응용 프로그램 인 경우 nvprof ./a.out이면 충분합니다. 하지만 OpenCL 응용 프로그램에서 "커널이 프로파일되지 않았습니다."라는 메시지와 함께 작동하지 않습니다.

CUDA 7.5까지는 을 this 다음에 성공적으로 사용했습니다. 유감스럽게도이 문서에서는 "환경 변수 COMPUTE_PROFILE을 사용하는 명령 줄 프로파일 러에 대한 지원이 CUDA 8.0 릴리스에서 삭제되었습니다."라고 말합니다.

질문은 nvprof를 사용하여 OpenCL 응용 프로그램을 프로파일 링하기 위해 CUDA를 다운 그레이드하는 것 외에 다른 방법이 있습니까?

+0

애플리케이션에서 'clReleaseContext'를 호출하고 있습니까? – talonmies

+0

@talonmies 예, 컨텍스트, 대기열, 프로그램, 커널 및 메모리 객체에 대한 릴리스 함수를 올바르게 호출합니다. – csehydrogen

답변

4

내가 아는 한 nvprof은 OpenCL 프로파일 링을 지원하지 않습니다.

코드를 COMPUTE_PROFILE=1과 함께 실행하면 nvprof보다 먼저 도입 된 드라이버 기반 프로파일 링 메커니즘이 호출됩니다. 이 드라이버 기반 메커니즘은 얼마 전 사용되지 않았으며 이제는 nvprof을 사용하여 CUDA 8부터 제거되었습니다.

결과적으로 CUDA 툴킷을 사용하여 NVIDIA 하드웨어에서 실행되는 OpenCL 코드를 프로파일 링 할 방법이없는 것처럼 보입니다.