2016-10-03 1 views
1

Ich versuche, das ptxjit-Beispiel aus dem CUDA SDK als Grundlage für die Interaktion mit dem GPU-Gerät zu verwenden.Das Laden eines PTX-Programms gibt Fehler 209 zurück, wenn es mit einem Gerät mit CUDA-Funktion ausgeführt wird. 5.0

Es ist mir gelungen, den Instrumentierungscode erfolgreich zu kompilieren und das Gerät zu steuern, um ein PTX-Modul mit einem Geforce GT440 mit CUDA-Fähigkeit 2.0 zu laden und auszuführen.

Bei der Kompilierung des gleichen Instrumentierungscodes auf einem (Laptop mit Hummel zur Steuerung der diskreten GPU) System mit einer Geforce 830M, die CUDA-Fähigkeit 5.0 hat, kompiliert der Code aber 209 (CUDA_ERROR_NO_BINARY_FOR_GPU).

Ich habe versucht, den Kernel zu kompilieren mit CUDA-Fähigkeit 5.0 kompatibel, aber hatte keinen Erfolg, immer noch den gleichen Fehler.

Irgendwelche Ideen?

+0

Ohne [MCVE] ist es sehr schwer zu sagen, was falsch ist. Normalerweise würde 'CUDA_ERROR_NO_BINARY_FOR_GPU' bedeuten, dass Sie entweder ein CUBIN ohne Code für die richtige Architektur darin haben, oder dass Ihre PTX einen Syntaxfehler enthielt oder etwas anderes während der JIT-Kompilierung den Kompilierungsaufruf fehlgeschlagen hat. – talonmies

+0

Wie ich bereits erwähnt habe, benutze ich den Code, der auf dem CUDA SDK bereitgestellt wird, aber ich werde einen Teil davon zusammen mit dem PTX kopieren. – prmottajr

+1

erstellen und führen Sie das Beispielprojekt ptxjit aus, das mit dem CUDA SDK geliefert wird? Oder nimmst du diesen ptxjit-Beispielcode und lässt ihn in dein eigenes Projekt fallen? Welche CUDA-Version verwendest du? –

Antwort

0

Am Ende war das Problem mit dem Treiber. Es scheint, dass es nur die Funktionen betrifft, die zum Laden von PTX-Code mit GPUs mit CUDA Capability 5.0 verwendet werden.

Ich habe alle nvidia-Treiberpakete, die kürzlich aktualisiert wurden, entfernt und die Treiber und OpenGL-Bibliotheken installiert, die mit dem CUDA SDK geliefert werden. Die Treiberversion für SDK 7.5 ist 352.39, mit diesem Treiber wurde sowohl das ursprüngliche ptxjit-Beispiel als auch das modifizierte perfekt wie auf den anderen Systemen ausgeführt.

Ich habe keine GPU mit CUDA-Fähigkeit 3.0 zu testen, wenn das gleiche Problem angezeigt würde, auch habe ich meinen Desktop nicht auf den 367.44-Treiber aktualisiert, um zu sehen, ob es das ptxjit-Beispiel brechen würde.

Die Lösung besteht derzeit darin, den mit dem CUDA SDK gelieferten Treiber beizubehalten und Updates aus dem nvidia-Repository zu deaktivieren.

Verwandte Themen