it-swarm.com.de

Verwenden von CUDA mit Visual Studio 2017

Ich versuche, CUDA zu installieren, erhalte jedoch die Meldung "Es wurde keine unterstützte Version von Visual Studio gefunden". Ich denke, das liegt daran, dass ich Visual Studio 2017 (Community) verwende und CUDA derzeit nur bis zu Visual Studio 2015 unterstützt. Leider wird mir Microsoft nicht erlauben, alte Versionen von Visual Studio herunterzuladen, ohne eine Abonnementgebühr zu zahlen.

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

19
acernine
  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.

    Klicken Sie auf das Startmenü und geben Sie Visual Studio Installer ein. Öffnen Sie Visual Studio Installer

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

install additional components for Visual Studio 2017

  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 und gehe zu Programs and features
und drücken Sie Turn Windows features on or off. Überprüfen Sie .NET Framework 3.5 und klicken Sie auf OK.

enter image description here

  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.


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

Um Cuda-Toolkit-Projekte erfolgreich in Visual Studio 2017 Zu erstellen, müssen Sie außerdem die Schritte 5 und 6 ausführen.

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

msbuild

  1. Im letzten Schritt müssen Sie Ihre Cuda -Projekte bearbeiten, um NVidias Build-Tasks anhand von Visual Studio 2017 Zu erkennen. Öffnen Sie Ihre .vcxproj - Datei in einem Texteditor und suchen Sie nach allen Vorkommen von CUDA 8.0.props. Ersetzen Sie das Makro am Anfang der Zeichenfolge durch $(VCTargetsPath14), damit 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 Ihre Pfadkonifuration!
Wenn Sie nvcc von der Eingabeaufforderung aus verwenden, rufen Sie möglicherweise nicht cl.exe Aus dem Ordner Visual Studio Auf!

another cl.exe might be in path

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

Teile dieser Lösung stammen aus Oleg Tarasov Blog .

44
Panos Kal.

Vielen Dank für Ihre Hilfe. Ich wollte diesen Beitrag nur mit den letzten Puzzleteilen ergänzen. CUDA v9.0 RC sucht nach VS2017, um sich als 1910 zu identifizieren, aber das neueste Update wird sich tatsächlich als 1911 identifizieren.
#if _MSC_VER < 1600 || _MSC_VER > 1910
dazu:
#if _MSC_VER < 1600 || _MSC_VER > 1911

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

5
Rubinium

Momentan scheint Microsoft die Community Edition VS2015 Update 2 noch verfügbar zu machen. Sie müssen am Programm "dev essentials" teilnehmen, es scheint jedoch kostenlos zu sein.

Ich konnte den Installer vor kurzem von hier herunterladen.

Update: CUDA 9 RC wurde gestern unter developer.nvidia.com für registrierte Entwickler verfügbar gemacht und unterstützt VS 2017.

4
Robert Crovella

Für die Menschen, die das letztere sehen.

Versuchen Sie zunächst, CUDA 10 (CUDA Toolkit 10.0) zu installieren.

Wenn es immer noch ohne Mods nicht funktioniert, stellen Sie sicher, dass Sie über so viele VC++ - Toolsets verfügen, wie Sie in der Liste sehen. Schauen Sie sich dieses Video an, stoppen Sie um 8:41 und vergleichen Sie die Listen.

Wenn Sie aus irgendeinem Grund CUDA 9.0 - 9.2 verwenden müssen, müssen Sie einige Reifen springen:

  • Für cmd-Builds set vcvars_ver = 14.11 - siehe diese Antwort
  • Für IDE Builds setzen Sie Platform Toolset (in Projekteigenschaften - Allgemein) auf
    • Visual Studio 2017 (v141)) oder
    • Visual Studio 2015 (v140))

Wenn Sie einen sehr benutzerdefinierten cmd-basierten Build haben, suchen Sie #if _MSC_VER (in .../CUDA/.../include/crt/Host_config.h) und entfernen Sie den nachfolgenden || _MSC_VER > ...

3
ZXX

Um mit dem Cuda-Compiler nvcc in Windows Shell arbeiten zu können, müssen Sie Folgendes tun

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

  2. In der Windows-Shell nach "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11 ausführen 

  3. Sie können nvcc-Code ohne Fehler von Windows Shell kompilieren

1
glg

Letztes Update (Stand vom 12.12.2014) Die letzte Cuda-Version ist 9.2, und die neueste Visual Studio-Version ist 2017.7. Sie arbeiten NICHT zusammen. Die Anweisungen in der obigen Lösung funktionieren nicht. Folgendes hat für mich funktioniert:

  1. Deinstallieren Sie Visual Studio.
  2. Deinstallieren Sie das Visual Studio-Installationsprogramm
  3. Laden Sie Visual Studio 2017.6 herunter (beachten Sie, dass Microsoft Links und Revisionen ohne Vorankündigung ändern kann) https://docs.Microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017
  4. Starten Sie das Installationsprogramm
  5. Gehen Sie zu Einzelkomponenten. Klicken Sie auf Windows 10 SDK 10.0.15063 Bildbeschreibung hier eingeben

  6. Laden Sie cuda Toolkit von der offiziellen Website herunter: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_Arch=x86_64&target_version=10&target_type=exelocal

  7. Möglicherweise müssen Sie den Patch herunterladen.
0
Mark Zamek

Ich bin mit CUDA 9.1 und VS2017 Enterprise auf dasselbe Problem gestoßen.

Nachdem Sie den VC++ - Compiler auf v140 (statt 141) geändert haben, läuft alles einwandfrei. 

Hatte schon Flaggen 

#if _MSC_VER < 1600 || _MSC_VER > 1911

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

Keine Ahnung wieso, aber der Versuch, es auf VS2015 auszuführen, führte zu Fehlern über v141, die nicht installiert wurden ... daher versuchte ich aufgrund von verdrehter Logik, v141 nicht zu verwenden, wo es installiert war ... und alles funktionierte !! 

Wenn Sie dies hier belassen, kann dies in der gleichen Situation anderen helfen. (obwohl ich wirklich nicht verstehe warum, wie, wann, wer oder was von der Lösung). 

0
PabTorre

Ich wollte meine CUDA-Programme mit einem Texteditor (d. H. Sublime) bearbeiten und mit dem Befehl Prompt kompilieren. Ich hatte jedoch einen nvcc-Compilerfehler. Ich habe Visual Studio 2017 mit Windows 10 installiert, aber nach dem Kompilieren wurde gesagt: "Nur eine Version von VS 2012, 13, 15 und 17 ist zulässig." Ich habe also das VC++ 2015-Toolkit aus dem Installationspaket des VS 2017-Installationsprogramms installiert (siehe das Bild des oberen Beitrags). Ich habe nicht stattdessen seinen gesamten Prozess durchlaufen, sondern habe nur den Pfad meiner Datei cl.exe aus dem neu erstellten Ordner VS 14.0 in die Umgebungsvariable kopiert. Die .exe kann hier gefunden werden:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

Hoffe das hilft! 

0
Junelle Rey