ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Parallel Nsight 사용하여 CUDA 디버깅 하기
    CUDA 2011. 8. 24. 15:38
    반응형

    CUDA 프로그래밍을 하다보면 항상 골치아팠던게 디버깅 문제였습니다.
    예전에는 이 놈의 디버깅 하려면 애뮬레이션 모드에서 해야했는데, 그렇게 되면 실제 디바이스 하고는 차이가 생겨버려서 골치 아픈 문제들이 많았습니다.
    결국, 디바이스 상에서 어떻게 프로그램이 작동되는지 알 방법이 없는게 가장 큰 문제였습니다.
    그런데, 오랜만에 다시 CUDA를 하려고 하다보니까 NVIDIA에서 Parallen Nsight라는 CUDA용 디버깅 툴을 내놓았더군요.
    비주얼 스튜디오 2010에 통합되어서 잘 동작합니다.
    앞으론 이 놈가지고 디버깅하면 한결 수월할 것 같습니다.

    우선 아래 링크에서 Nsight를 다운로드해서 설치합니다.
    http://developer.nvidia.com/nvidia-parallel-nsight

    아래 있는 대부분의 내용은 NVIDIA Parallel Nsight 도움말에 있는 내용들입니다. 
    간단하게 보기위해서 정리했습니다.
    테스트한 시스템은 아래와 같습니다.

    OS : 윈도우 7 64비트
    개발 환경 : 비주얼스튜디오 2010 Premium, CUDA 4.0, Parallel Nsight 2.0
    GPU Device : Tesla C1060

    Nsight 환경설정

    1. Nsight 를 사용하여 디버깅 하기위해서는 우선 Nsight Monitor를 실행시켜야 합니다.
       Nsight가 설치된 곳에서 
       All Programs > NVIDIA Parallel Nsight Monitor 2.0 > Nsight Monitor
       를 이용하여 Nsight Monitor를 실행합니다.

    2. Nsight Monitor를 실행했으면 트레이에 Nsight Monitor 아이콘으 나타납니다. 이 아이콘을 우클릭해서 Options를 선택합니다.
        그러면 옵션창이 뜨는데 여기에서 왼쪽의 Grneral메뉴를 선택하고 오른쪽에 나타나는 화면에서 WDDM TDR enabled 를 False로 설정합니다.

    3. WPF용 D3D 가속을 중지시키기 위해서 탐색기를 열어서 Nsight가 설치된 폴더로 갑니다.
        윈도우 버전에 따라서 위치는 아래와 같습니다.

    1. Windows 32-bit system
      C:\Program Files\NVIDIA Parallel Nsight 2.0\Common
    2. Windows 64-bit system
      C:\Program Files (x86)\NVIDIA Parallel Nsight 2.0\Common

      해당 폴더에서 DisableWpfHardwareAcceleration.reg 파일을 더블클릭해서 레지스트리에 등록해줍니다. 
      
     컴퓨터를 재부팅 합니다.

    Nsight를 이용하여 디버깅하기

    Nsight는 원격/로컬 디버깅을 모두 지원하지만 이 포스팅에서는 로컬 디버깅만 다룹니다.

    1. 비주얼 스튜디오를 시작해서 CUDA 프로젝트를 띄웁니다.
    2. 솔루션 탐색기 창에 보면 Nsight User Properties 아이콘이 있는걸 확인하실수 있습니다.
       이 아이콘을 클릭해서 NVIDIA Parallel Nsight User Setting 창을 띄웁니다.
    3. 좌측의 Launch를 선택하고나서 Launch Options > Connection name에 localhost를 입력합니다. 
    4. OK를 클릭해서 나옵니다.
    5. Nsight Monitor를 실행합니다.
    6. 비주얼 스튜디오 상단 메뉴바에서 Nsight 메뉴를 선택한후 Enable CUDA Kernel Launch Debugging를 선택합니다.
    7. 이제 CUDA 커널 소스에 브레이크 포인트를 적용할 수 있습니다. 원하는 부분에 브레이크 포인트를 지정합니다.
    8. 비주얼 스튜디오 상단 메뉴바에서 Nsight 메뉴를 선택한후 Start CUDA Debugging를 선택해서 디버깅합니다.

    Nsight를 이용하여 CUDA 어플리케이션 분석하기

    1. 비주얼 스튜디오 상단의 Nsight 메뉴를 선택한 후 New Analysis Activity를 선택합니다.
    2. Activity.nvact 화면이 나오는데 여기위 위의 내용을 스크롤해서 아래부분에서 
       Trace Settings 항목에서 CUDA를 선택합니다.
    3. CUDA를 선택하면 하단의 버튼중에서 Application Control 부분에서 Launch 부분이 활성화 됩니다.
        이 Launch버튼을 클릭해서 어플리케이션을 실행시킵니다.
    4. 어플리케이션 실행이 끝난후 결과 보고 화면이 나옵니다. 
       보고서 내용중에 있는 링크를 클릭해서 각종 세부 내용을 확인해 볼 수 있습니다.
       보고서에서 제일 하단의 Timeline를 선택하면 디바이스상황에 대한 프로파일링 결과를 볼 수 있습니다.

    반응형

    댓글

Designed by Tistory.