일부 CUDA 커널을 실행하기 위해 JCuda를 사용하는 Java 코드를 작성했습니다. 스트림이 겹쳐지고 겹쳐져있는 것을 이해하기 위해 어플리케이션을 프로파일 링하고 싶습니다. 커널의 실행 시간을 얻기 위해 cudaEventElpasedTime과 같은 cuda 이벤트 호출을 사용할 수 있지만 같은 커널에 대해 시작 및 종료 타임 스탬프를 얻는 방법을 모르겠습니다.nvprof를 사용하지 않고 CUDA 이벤트 시작 및 종료 시간을 얻는 방법
nvprof는 이러한 결과를 생성하고 타임 라인을 표시 할 수 있지만 Java 응용 프로그램과 함께 nvprof를 실행할 수있는 방법을 찾지 못합니다.
편집 : 답변 덕분에 Java 응용 프로그램의 프로파일 링에 nvprof를 사용하는 방법을 알았습니다. 나는 여전히 더 많은 컨트롤을 가질 수 있도록 cudaEvent 호출을 사용하여 시작 및 종료 시간을 얻는 것을 선호합니다. nvprof가 해당 정보를 얻을 수 있지만 최종 사용자가 그렇게 할 API가 없다고 생각하십니까? 이 작업을 수행하는 두 가지 방법이 있습니다
@Shadow 프로파일 링 대상을 더 많이 제어 할 수 있으므로 cudaEvent 호출을 사용하여 시작 및 종료 시간을 얻는 것을 선호합니다. – Xiangyu
Visal 프로파일 러를 사용할 수도 있습니다. [다른 버전] (https://forum.byte-welt.net/t/jcuda-and-nvvp-visual-profiler/3667)에서 [작동하지 않았다] (https://devtalk.nvidia.com)/default/topic/524531/profiler-error-message-when-profiling-jcuda-application /), 마침내 CUDA 8.0에서 다시 작동하는 것처럼 보입니다. – Marco13
@ Marco13,이 기능은 Windows에서만 작동합니까? 나는 그것이 작동하도록 .bat을 만들 필요가 있음을 읽고 리눅스에서 .sh 스크립트를 시도하지 않았다. – Xiangyu