Ich versuche, PyTorch so einzurichten, dass es mit der integrierten GTX 1050-GPU meines Laptops funktioniert. Anschließend habe ich versucht, CUDA einzurichten. Ich bin der Anleitung von gefolgtNvidia hier. Soweit ich das beurteilen kann, hatte ich damit keine Probleme. Ich kann nvcc -V
wie erwartet laufen und komme darunter:
Beim Versuch, die bereitgestellten Beispiellösungen auszuführen, um sicherzustellen, dass die Installation erfolgreich war, wurde nvcc displayQueue
mir nvcc bandwidth
lediglich die folgende Fehlermeldung angezeigt:
Im Anschluss daran habe ich versucht, die Community-Version von Visual Studio 2017 herunterzuladen, um einen C++-Compiler und „cl.exe“ zu erhalten. Dabei stellte sich jedoch heraus, dass die Installation in den Umgebungsvariablen keinen Pfad zu einem Compiler „cl.exe“ festgelegt hatte.
Der Versuch, eine „cl.exe“ in meinen Dateien zu finden, scheint ein weiteres Problem zu sein, da ich mehrere „cl.exe“ unter den folgenden Pfaden habe:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86
\...\bin\Hostx86\x64
\...\bin\Hostx64\x64
\...\bin\Hostx64\x86
Wenn ich einen dieser Pfade in meinen Umgebungsvariablen auf PATH setze und dann „nvcc displayQueue“ oder „nvcc bandwidth“ erneut ausführe, tritt nur der folgende Fehler auf:
Es hat sich etwas geändert, aber das System scheint nicht zu funktionieren. Für
jede Hilfe ist man dankbar.
Antwort1
Das Festlegen eines einzigen cl.exe
Pfads hat keinen Effekt, da auch andere Tools erforderlich sind. Der offizielle Weg ist die Verwendung vonEntwickler-Eingabeaufforderungdas nur mit Visual Studio geliefert wird.
EntsprechendDas:
Suchen Sie nach dem Namen der Eingabeaufforderungsdatei, z. B. VsDevCmd.bat, oder wechseln Sie zum Ordner „Tools“, z. B. C:\Programme (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools (der Pfad ändert sich je nach Ihrer Visual Studio-Version, Edition und dem Installationsort).
Öffnen Sie ein Eingabeaufforderungsfenster (CMD) und führen Sie diesen Befehl aus:
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
Dadurch werden alle erforderlichen Pfade für Sie festgelegt. Der x64
Parameter gilt nur für 64-Bit-Intel-CPUs. Ändern Sie diesen Parameter in x86
für 32-Bit-Intel-CPUs. Oder arm
und arm64
. Der Pfad kann sich je nach Ihrer Visual Studio-Version ändern. Schließen Sie dieses CMD-Fenster nicht. Sie können den Pfad (sofern er richtig festgelegt ist) auch mit dem Befehl überprüfen where cl.exe
. Führen Sie nun die erforderlichen Befehle zum Kompilieren aus.
Notiz:Wenn Sie nur den C++-Compiler benötigen, versuchen Sie denVS-Build-ToolsUndWindows SDKnur.
Antwort2
Sie müssen zunächst Ihre GPU-Details mit der Methode im Fragenteil dort herausfinden, das ist die deviceQuery
App nachhttps://forums.developer.nvidia.com/t/what-is-the-compute-capability-of-a-geforce-gt-710/146956/4:
deviceQuery executable
In der Demo-Suite Ihrer CUDA-Installation sollte ein vorhanden sein . Unter Windows sollte es in seinC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\extras\demo_suite
, wobei XY Ihre CUDA-Version angibt, z. B. 10.2. deviceQuery gibt Ihnen die Computerarchitektur Ihres Geräts an:CUDA-Fähigkeit Haupt-/Nebenversion Nummer.
Schauen Sie sich jetzt anWie installiere ich PyTorch (mit aktiviertem CUDA für ein veraltetes CUDA cc 3.5 einer alten GPU) VON DER QUELLE mithilfe der Anaconda-Eingabeaufforderung unter Windows 10?und dort Punkt 3 bis 5 der Antwort. Der Kern ist im Grunde Punkt 3, die Tabelle mit den grünen Pfeilen darin. Schlagen Sie diese Tabelle im Original nachhttps://gist.github.com/ax3l/9489132und treffen Sie die Entscheidung auf die gleiche Weise wie unter Punkt 3.
Die Tabelle zeigt Ihnen, wie Sie den richtigen MSVC-Compiler für den richtigen CUDA-Compilertreiber für Ihren GPU SM Arch auswählen (z. B. CUDA cc [= Rechenleistung] 3.5, CUDA cc 8.0 oder was auch immer Ihre Karte bietet).
Wenn Sie PyTorch mit CUDA aus dem Quellcode installieren müssen, weil Ihre Karte möglicherweise nicht mehr vom offiziellen PyTorch-Installationsprogramm unterstützt wird (was ich zwischen den Zeilen Ihrer Frage gelesen habe), sollte die gesamte Antwort dort für die Antwort hier relevant sein.