2012-07-13 3 views
10

새로운 LLVM 백엔드를 사용하여 C/C++ 코드로 주석 된 PTX 어셈블러를 얻는 방법을 아는 사람이 있습니까?CUDA 4.1/4.2/5.0에서 C/C++ 주석 PTX를 출력하는 방법

CUDA 4.0 이전 버전에서는 쉽게 얻을 수 있지만 CUDA 툴킷을 버전 4.2로 업그레이드하면 NVCC에서 모든 플래그를 거부합니다.

+0

nvvm을 사용하여이를 수행하는 방법을 알지 못합니다. 문서화는 여전히 매우 개략적이므로, 방법이있을 수 있습니다. – talonmies

답변

4

NVCC는 옵션 --source-in-ptx. 당신은 PTX 파일에 원래의 코드를 볼 수 --source-in-ptx-G NVCC 플래그를 사용할 수 있습니다

3

nvcc.exe --opencc-options -LIST : source = on -ptx kernel.cu? 나는 cuda 4.2를 설치했으며이 명령은 ptx 어셈블러 행 사이에 주석 처리 된 C 코드가있는 * .ptx 파일을 생성합니다. CUDA 6.0 미리보기에서

+0

나를 위해 일하지 마십시오 :'nvcc 경고 : 옵션 '--opencc-options (-Xopencc)'는 compute_20, sm_20, 또는 그 이상을 목표로 할 때 쓸모없고 무시됩니다. –

+4

[Here] (http : //webcache.googleusercontent .com/search? q = cache : 7IFbmpUoYdMJ : forums.nvidia.com/index.php%3Fshowtopic%3D217257%26view%3Dold+&cd=4&hl=ru&ct=clnk&client=firefox-a)는 nvidia의 대답입니다. 간략하게이 기능, 즉 "혼합 목록"기능은 구성 요소 특정 플래그에 연결되었습니다. CUDA 4.1 이상에서 sm_2x 이상의 새로운 프론트 엔드가 도입됨에 따라 해당 구성 요소가 대체되어 플래그가 더 이상 허용되지 않습니다. 마커로 사용하기를 원한다면 다음과 같이 인라인 PTX- "assembler"주석을 삽입하여 직접 만들 수 있습니다 : asm volatile ("// this is line ..."); – Insomnious

2

을 지원합니다.