2016-07-18 17 views
1

Ich versuche, eine einfache Anwendung mit CUDA zu erstellen, und ich habe es stundenlang versucht, und ich kann es einfach nicht unter Windows arbeiten lassen. nvcc weigert sich absolut, ohne den Compiler von Visual Studio zu kompilieren, der nicht die Dinge unterstützt, die ich brauche. Ich habe versucht, mit nvcc mit Clang bauen, aber es fragt mich nur den Visual Studio Compiler zu verwenden. Ich habe auch versucht Klappern mit direkt, da es jetzt unterstützt CUDA aber ich erhalte diesen Fehler:Wie verwende ich andere C++ - Compiler mit CUDA unter Windows?

clang++.exe: error: Unsupported CUDA gpu architecture: compute_52 

Dies ist für mich keinen Sinn macht, weil ich die CUDA-Toolkit Version 7.5 und meine Grafikkarte ist eine GTX 970 (zwei von ihnen). Ich habe dies ausgiebig gegooglet und überall, wo ich auf den Fehler stoße, den die Person immer hat, ist ihr CUDA Toolkit < 7.5. Ich bin an der Schwelle der Tränen im Moment versuchen, etwas so einfach wie VLA zu dieser CUDA-Anwendung zu arbeiten und ich kann es einfach nicht erreichen ...

+0

Sie können Ihr ursprüngliches Problem zeigen, etwas, das Sie benötigen, aber VS scheint nicht zu unterstützen. Es wäre besser, es mit offiziellem Toolkit zu lösen - CUDA mit VS-Compiler. – kangshiyin

+0

Variablenlängen-Arrays sind sowieso nicht C++. Und ich verstehe, warum sie nicht an CUDA arbeiten würden; Sie sind im Wesentlichen ein Wrapper um 'alloca' und ich denke nicht, dass CUDA das auch unterstützt, – MSalters

+2

Der einzige unterstützte Host Compiler für' nvcc' auf der Windows Plattform ist der Visual Studio Compiler. Dies ist in [der Dokumentation] (http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#system-requirements) beschrieben. Siehe Tabelle 2, "Windows-Compiler-Unterstützung". clang, icc, mingw oder ein anderer CPU-Compiler werden für die Verwendung als Host-Compiler in CUDA 'nvcc' auf der Windows-Plattform ** nicht unterstützt. 'nvcc' sucht im Allgemeinen nach microsoft.exe und lehnt es ab funktionieren, wenn es nicht benutzt wird. Dies ist das erwartete Verhalten. –

Antwort

6

Die CUDA Windows-Toolchain requires der Visual Studio C++ - Compiler. Sie können nichts anderes auf dieser Plattform verwenden. Wenn der VS-Compiler die Sprachfunktionen, die Sie innerhalb des CUDA-Hostcodes benötigen, nicht unterstützt, haben Sie keine andere Wahl, als die Plattformen oder Ihre Erwartungen zu ändern.

Sie können möglicherweise weiterhin Nicht-CUDA-Hostcode mit einem anderen Compiler kompilieren und diesen Code dann mithilfe von NVCC und der VS-Toolchain verknüpfen.

Verwandte Themen