GPU에서 프로그래밍 할 때 커널 기능을 디버깅하는 데 좋은 방법이 있습니까?CUDA의 커널 기능을 디버깅하는 효율적인 방법이 있습니까?
내가 사용하는 방식은 printf(...)
을 사용하거나 결과를 CPU에 복사 한 다음 살펴 봅니다.
디버깅하는 데 너무 많은 시간이 소요됩니다.
감사합니다. 고맙습니다.
GPU에서 프로그래밍 할 때 커널 기능을 디버깅하는 데 좋은 방법이 있습니까?CUDA의 커널 기능을 디버깅하는 효율적인 방법이 있습니까?
내가 사용하는 방식은 printf(...)
을 사용하거나 결과를 CPU에 복사 한 다음 살펴 봅니다.
디버깅하는 데 너무 많은 시간이 소요됩니다.
감사합니다. 고맙습니다.
Windows에서 경우, NVIDIA Parallel Nsight (엔비디아에서 공식 디버그 도구) 우리는 커널의 각 버전에 대한 CPU 대응을 작성해야 의미
디버거 사용은 어떻게됩니까?
Windows 사용자는 VisualStudio 디버거를 사용할 수 있습니다. Linux를 사용하고 있다면 (더 나은) cuda-gdb를 사용할 수 있습니다.
적절한 커널을 만드는 가장 일반적인 방법은 다음과 같습니다
먼저 CPU 만에 대한 간단한 알고리즘을 구현한다. 그런 다음 커널을 만드는 가장 간단한 방법으로 시작하여 데이터 을 업로드/다운로드하고이 첫 번째 간단한 커널의 결과를 올바른 CPU 커널의 결과와 비교하십시오.그런 다음 복잡성을 추가하고 새 버전의 커널을 만듭니다.
을 시도해야? – Yik
Nsight가 GPU 클러스터에 사용된다고 들었습니다. 내 컴퓨터에 Nsight를 하나의 GPU로 사용할 수 있습니까? – Yik
하나의 머신에서 CUDA 커널을 디버깅하려면 적어도 2 개의 개별 GPU가 있어야합니다 (그 중 하나는 NVIDIA이고 Nsight를 실행할 수 있어야합니다). – Daniel