2014-01-21 4 views
2

CUDA가 어떤 종류의 코드를 생성하는지 보려면 객체 파일 외에도 ptx로 컴파일하는 것이 좋습니다. 내 루프 언 롤링의 일부는 꽤 시간이 걸릴 수 있기 때문에 내가 현재 해요하는 대신 모두 *.cu*.ptx*.cu*.o과 시간을 낭비 *.cu*.ptx*.o를 컴파일 할 수 있도록하고 싶습니다 하기.PTX 출력을 사용하는 NVCC 별도 컴파일

-ptxnvcc *.cu 줄에 단순히 추가하면 원하는 ptx 출력이 제공됩니다.

ptxas -c을 사용하여 *.ptx*.o으로 컴파일하면 내 실행 파일에 오류가 발생합니다 (Relocations in generic ELF (EM: 190)).

nvcc으로 컴파일하면 은 자동으로으로 출력되지 않으므로 아무 것도 출력되지 않습니다.

this image is quite helpful: enter image description here

내가 ptxas에 전달해야하는 몇 가지 옵션이 있습니까? 별도의 컴파일로 ptx를 통해 어떻게 올바르게 컴파일해야합니까? 아니면, 그냥 nvcc에게 ptx를 유지한다고 말할 수 있습니까?

답변

5

또는 nvcc에서 ptx를 유지하도록 설정할 수 있습니까?

예, nvcc를 keep all intermediate files으로 지정할 수 있으며 그 중 하나는 .ptx 파일입니다. 모든 중간 파일을 유지

nvcc -keep ... 

조금 지저분한,하지만 난 당신이 깔끔한 것들 스크립트 마련, 단지 당신이 원하는 파일을 저장할 수 있습니다 확신합니다.