cuobjdump는 NVIDIA의 CUDA 툴킷에 포함된 유틸리티로, CUDA 바이너리 파일을 검사하고 분석하는 데 사용됩니다. 주로 컴파일된 GPU 코드와 메타데이터를 추출하고 표시하는 데 사용되며, 디버깅과 성능 분석에 유용합니다.
주요 기능 및 사용 예
- CUDA 바이너리 검사:
cuobjdump
를 사용하여 CUDA 바이너리(.cubin 파일) 및 CUDA 코드를 포함하는 실행 파일을 검사할 수 있습니다. - PTX 및 SASS 코드 추출:
cuobjdump
는 CUDA 바이너리에서 PTX(Parallel Thread Execution) 및 SASS(SASS는 NVIDIA GPU의 저수준 어셈블리 언어)를 추출할 수 있습니다. - 심볼 목록 표시: CUDA 바이너리에 포함된 함수 및 변수를 이해하는 데 유용한 심볼 목록을 표시할 수 있습니다.
- 섹션 정보 보기: 전역 메모리, 상수 메모리, 로컬 메모리 섹션 등 CUDA 바이너리의 다양한 섹션에 대한 정보를 볼 수 있습니다.
기본 명령어
- 정보 덤프: CUDA 바이너리에 대한 정보를 덤프하려면 다음 명령을 사용합니다:
cuobjdump <파일>
- PTX 코드 추출: CUDA 바이너리에서 PTX 코드를 추출하려면:
cuobjdump --dump-ptx <파일>
- SASS 코드 추출: SASS 코드를 추출하려면:
cuobjdump --dump-sass <파일>
- 심볼 목록 보기: CUDA 바이너리의 심볼을 나열하려면:
cuobjdump --dump-syms <파일>
사용 예제
예를 들어, example.cubin
이라는 CUDA 바이너리 파일이 있다고 가정할 때:
- 모든 정보를 덤프하려면:
cuobjdump example.cubin
- PTX 코드를 얻으려면:
cuobjdump --dump-ptx example.cubin
- SASS 코드를 얻으려면:
cuobjdump --dump-sass example.cubin
- 심볼 목록을 얻으려면:
cuobjdump --dump-syms example.cubin
이 명령어들은 CUDA 바이너리의 내용을 상세히 살펴볼 수 있게 해주며, 개발자가 GPU 코드를 이해하고 최적화하는 데 도움을 줍니다.