2013-02-26 3 views
1

__device__ 기능을 시각적 스튜디오 2010에서 Nsight 2.2와 함께 __global__ 함수 내부에 프로파일하는 방법을 알고 싶습니다. 어떤 기능이 많은 리소스와 시간을 소비하는지 알아야합니다. 나는 CC 2.0에서 CUDA 5.0을 가지고있다.CUDA : Nsight VS2010 프로필 __device__ function

답변

3

Nsight Visual Studio 버전 3.0 CUDA Profiler는 소스 상관 실험을 소개합니다. 프로파일 CUDA 활동은 다음과 같은 소스 레벨의 실험을 지원

  • 명령 카운트는 - 커널의 모든 사용자 명령에 대한 실행 지침, 실행 스레드 지침, 활성 스레드 히스토그램, 입각 스레드 히스토그램을 수집합니다. syscalls (printf)에 대한 정보는 수집되지 않습니다.

  • 다이버 전트 브랜치 - 흐름 제어 명령에 대해 분기 수행, 분기 수행 및 분기 수를 수집합니다.

  • 메모리 트랜잭션 - 글로벌, 로컬 및 공유 메모리 명령어에 대한 트랜잭션 수, 이상적인 트랜잭션 카운터 및 요청 바이트를 수집합니다.

이 정보는 SASS 지침에 따라 수집됩니다. 커널을 -lineinfo (--generate-line-info)로 컴파일하면 정보를 PTX 및 상위 레벨 소스 코드로 롤업 할 수 있습니다. 이 데이터는 SASS에서 롤업되므로 일부 통계는 상위 수준 소스에 직관적이지 않을 수 있습니다. 예를 들어 지점 통계는 100 % 취해진 것으로 예상했을 때 100 %가 표시되지 않을 수 있습니다. SASS 코드를 보면 컴파일러가 조건을 바꾼 것을 볼 수 있습니다.

컴파일러가 최적화 된 빌드에서 라인 테이블 정보를 유지하지 못할 수도 있습니다. 이 시간 하드웨어 성능 카운터 및 타이밍에서

enter image description here

는 커널 수준에서만 사용할 수 있습니다.

디바이스 코드 타이밍은 설명에서 언급 한대로 clock() 및 clock64()를 사용하여 수행 할 수 있습니다. 이것은 매우 진보 된 기법으로 SM 워프 스케줄러와 관련하여 SASS를 이해하고 결과를 해석 할 수 있어야합니다.

+0

감사합니다. 그것은 어렵지만 흥미로 보입니다. Nsight 3.0이 언제 출시 될지 알고 있습니까? – Seltymar