2016-10-03 7 views
1

CUDA SDK의 ptxjit 샘플을 GPU 장치와의 상호 작용을위한 기초로 사용하려고합니다.CUDA 기능 5.0 장치에 대해 PTX를 프로그램 적으로로드하면 오류 209가 반환됩니다.

계측 코드를 성공적으로 컴파일하고 장치가 CUDA 기능 2.0을 갖춘 Geforce GT440으로 PTX 모듈을로드하고 실행하도록 제어했습니다.

CUDA 기능 5.0을 갖춘 Geforce 830M이 장착 된 랩탑 (bumblebee를 사용하는 노트북)에서 동일한 계측 코드를 컴파일 할 때 코드는 컴파일되지만 209 (CUDA_ERROR_NO_BINARY_FOR_GPU)를 제공합니다.

나는 CUDA 기능 5.0과 호환되도록 커널을 컴파일하려했지만 성공하지 못했습니다. 여전히 같은 오류입니다.

아이디어가 있으십니까?

+0

[MCVE]가 없으면 무엇이 잘못되었는지 말하기가 매우 어렵습니다. 일반적으로'CUDA_ERROR_NO_BINARY_FOR_GPU'는 올바른 구조를위한 코드가없는 CUBIN이 있거나, PTX에 구문 오류 또는 JIT 컴파일 중에 다른 명령이 들어있어 컴파일 호출이 실패했다는 것을 의미합니다. – talonmies

+0

앞서 언급했듯이 CUDA SDK에 제공된 코드를 사용하지만 ptx와 함께이 코드의 일부를 복사합니다. – prmottajr

+1

실제로 CUDA SDK와 함께 제공되는 ptxjit 샘플 프로젝트를 만들고 실행하고 있습니까? 아니면이 ptxjit 샘플 코드를 가져 와서 자신의 프로젝트에 드롭하고 있습니까? 어떤 CUDA 버전을 사용하고 있습니까? –

답변

0

결국 문제는 운전자에게있었습니다. CUDA Capability 5.0이있는 GPU로 PTX 코드를로드하는 데 사용되는 함수에만 영향을 미칩니다.

최근에 업데이트 된 모든 nvidia 드라이버 패키지를 제거하고 CUDA SDK와 함께 제공되는 드라이버 및 OpenGL 라이브러리를 설치했습니다. SDK 7.5 용 드라이버 버전은 352.39이며이 드라이버는 원본 ptxjit 샘플과 수정 된 드라이버 모두 다른 시스템 에서처럼 완벽하게 실행됩니다.

CUDA 기능 3.0이있는 GPU가 없으므로 동일한 문제가 발생하는지 테스트 할 수 있습니다. 또한 바탕 화면을 367.44 드라이버로 업데이트하여 ptxjit 샘플이 손상되는지 확인하지 않았습니다.

현재 해결책은 CUDA SDK와 함께 제공되는 드라이버를 유지하고 nvidia 저장소에서 업데이트를 끄는 것입니다.