2012-07-09 7 views
1

NVIDIA GPU에서 opencl 프로그램의 PTX 레벨에서 가로 채고 싶습니다.NVIDIA GPU에서 ptx 코드를 컴파일 하시겠습니까?

루틴이 아마 이렇게 보일 것이라고 상상해보십시오.

먼저 opencl 프로그램 (호스트 및 장치 코드 모두)을 작성하고 NVIDIA 컴파일러를 사용하여 각각의 ptx 코드를 생성합니다. 그런 다음 PTX 코드를 수정하여 원하는 작업을 작성합니다 (장치 C 코드에서이 작업을 수행하지 않은 이유를 묻지 마십시오. 이유가 있습니다). 하지만 문제는, 수정 된 후이 PTX 코드를 어떻게 바이너리 코드로 컴파일합니까?

+0

CUDA 툴 체인 및 CUDA 드라이버 API를 사용하십시오. OpenCL을 사용하여 어셈블리 코드 또는 인라인 어셈블러 명령어를 처리하는 방법이 있다고 생각하지 않습니다. – talonmies

+0

이것은 CUDA http://wili.cc/blog/ptx.html에서 작동합니다. OpenCL에서도 작동 할 수도 있습니다 – nouveau

답변

1

CUDA 툴킷에 포함 된 ptxas를 사용할 수 있습니다. 그것은 .ptx를 .cubin으로 컴파일하고 드라이버 API로로드 할 수 있습니다.

+0

OpenCL에서 작동합니까? – Zk1001

+0

OpenCL에 PTX를 다시 삽입 할 방법이 없다고 생각합니다. CUDA 드라이버 API와 cuModuleLoadData를 사용할 수 있습니다. 이 낮은 수준의 PTX 조작을 정말로해야한다면 CUDA (그리고 아마도 [CUDA Compiler SDK (libNVVM)] (http://developer.nvidia.com/cuda/cuda-llvm-compiler)를 사용하기를 권장합니다. . – harrism