Verwenden von CUDA mit Visual Studio 2017

7

Ich versuche, CUDA zu installieren, aber ich erhalte die Meldung "Keine unterstützte Version von Visual Studio gefunden". Ich denke, das liegt daran, dass ich Visual Studio 2017 (Community) verwende und CUDA derzeit nur Visual Studio 2015 unterstützt. Leider erlaubt Microsoft mir nicht, ältere Versionen von Visual Studio herunterzuladen, ohne eine Abonnementgebühr zu bezahlen.

>

Gibt es eine Möglichkeit, das Kompatibilitätsproblem mit VS 2017 zu umgehen, oder kann ich CUDA nicht verwenden?

    
acernine 02.05.2017, 18:47
quelle

5 Antworten

22
  1. Wenn Sie CUDA 8.0 mit Visual Studio 2017 installieren möchten, müssen Sie zusätzliche Komponenten für Visual Studio 2017 installieren.

    Öffnen Sie die Registerkarte Individual components und wählen Sie VC++ 2015.3 v140 toolset
    unter Compilers, build tools and runtimes .

  1. Sie müssen auch .NET Framework 3.5 installieren, wenn Sie es nicht installiert haben.
    Nvda.Build.CudaTasks.v8.0.dll assembly abhängig von MS .NET Framework 3.5 .

Öffne die klassische Systemsteuerung, gehe zu Programs and features
und drücke Turn Windows features on or off . Überprüfen Sie .NET Framework 3.5 und klicken Sie auf OK.

  1. Laden Sie die vollständige CUDA toolkit -Distribution herunter und extrahieren Sie sie irgendwo auf Ihrer Festplatte.
  2. Wenn Sie CUDA toolkit nicht installiert haben, tun Sie es jetzt. Wenn Sie nur Visual Studio 2017 installiert haben, deaktivieren Sie das Kontrollkästchen Visual Studio integration .


Jetzt möchten Sie den Fehler "No supported version of visual studio was found" erhalten.

Um Cuda-Toolkit-Projekte in Visual Studio 2017 erfolgreich erstellen zu können, müssen Sie jedoch auch die Schritte 5 und 6 befolgen.

  1. Gehen Sie zum Ordner CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
    in Ihrer extrahierten Distribution, kopieren Sie alle Dateien und fügen Sie sie in
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:
  2. ein

  1. Im letzten Schritt müssen Sie Ihre Cuda -Projekte bearbeiten, um NVidias Build-Aufgaben von Visual Studio 2017 zu erkennen. Öffnen Sie Ihre .vcxproj -Datei in einem Texteditor und finden Sie alle Vorkommen von CUDA 8.0.props . Ersetzen Sie das Makro am Anfang der Zeichenfolge durch $(VCTargetsPath14) , sodass das XML-Snippet wie folgt aussieht:
  

<ImportGroup Label="ExtensionSettings"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.props" /></ImportGroup>

Vergessen Sie nicht, den Pfad für benutzerdefinierte Ziele am Ende der Datei zu bearbeiten:

  

<ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.targets" /></ImportGroup>



Überprüfen Sie die Pfadkonfguration unbedingt!
Wenn Sie nvcc von der Eingabeaufforderung aus verwenden, rufen Sie möglicherweise cl.exe nicht vom Ordner Visual Studio auf!



Jetzt können Sie Ihr Cuda-Projekt von Visual Studio 2017 erstellen.

Teile dieser Lösung stammen von Oleg Tarasov Blog .

    
Panos Kal. 06.07.2017, 19:11
quelle
4

Im Moment scheint Microsoft VS2015 Update 2 Community Edition noch verfügbar zu machen. Sie müssen dem Programm "dev essentials" beitreten, aber es scheint kostenlos zu sein.

Ich konnte das Installationsprogramm kürzlich hier herunterladen.

Update: CUDA 9 RC wurde gestern auf developer.nvidia.com registrierten Entwicklern zur Verfügung gestellt, und es hat Unterstützung für VS 2017.

    
Robert Crovella 03.08.2017 14:41
quelle
4

Danke euch allen für eure Hilfe. Ich wollte diesen Beitrag nur mit den letzten Teilen des Puzzles ergänzen. CUDA v9.0 RC sucht nach VS2017, um als 1910 zu identifizieren, aber das letzte Update identifiziert tatsächlich als 1911. Um zu beheben, öffnen Sie ... / CUDA / v9.0 / include / crt / host_config.h und ändern Sie diese Zeile:
#if _MSC_VER < 1600 || _MSC_VER > 1910
dazu:
#if _MSC_VER < 1600 || _MSC_VER > 1911

Möglicherweise müssen Sie Ihren CMakeLists Folgendes hinzufügen:
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)

    
Rubinium 18.09.2017 16:08
quelle
1

Um den Cuda Compiler nvcc in der Windows Shell zu erhalten, müssen Sie folgendes tun:

  1. Installieren Sie die richtige Toolset-Version aus der einzelnen Komponente für VS 2017 - VC++ 2017 version 15.4 v.14.11 toolset

  2. Führen Sie in Windows-Shell folgende "c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11

  3. aus
  4. Sie können nvcc code ohne Fehler von der Windows-Shell

  5. kompilieren
glg 02.04.2018 18:34
quelle
0

Ich habe das gleiche Problem mit CUDA 9.1 und VS2017 Enterprise festgestellt.

Nach dem Ändern des VC ++ - Compilers in v140 (statt 141) läuft alles gut.

Hatte bereits Flaggen

%Vor%

Aber es würde nicht aufhören, den Fehler zu zeigen.

Keine Ahnung, warum, aber der Versuch, es auf VS2015 auszuführen, führt zu Fehlern, da v141 nicht installiert wird ... wegen einer verdrehten Logik habe ich versucht, v141 nicht zu verwenden, wo es installiert wurde ... und alles hat funktioniert !!

Das hier belassen, da es jemand anderem in derselben Situation helfen kann. (obwohl ich wirklich nicht verstehe, warum, wie, wann, wer oder was von der Lösung.

    
PabTorre 22.01.2018 23:23
quelle