2012-11-04 15 views
6

Nach NVIDIA website:NVCC 5.0 und OpenACC

"Die CUDA Toolkit ergänzt und unterstützt die Programmierung mit OpenACC-Richtlinien."

Bedeutet es, dass OpenACC-Programme (Pargma und API) mit nvcc Compiler kompiliert werden können? Oder es werden nur Runtime-Routineaufrufe unterstützt?

Leider kann ich CUDA Toolkit 5.0 in diesen Tagen nicht installieren, um meine Antwort zu erhalten. Vielen Dank!

+4

Zur Zeit benötigen Sie einen [openACC compliant] (https://developer.nvidia.com/openacc) aus CAPS, PGI oder Cray. Das CUDA-Toolkit selbst erlaubt es Ihnen nicht, Anweisungen zu kompilieren. –

+0

Danke Robert! Der Begriff 'support' auf der nvidia-Seite ist wirklich verwirrend! – ahmad

Antwort

7

Um ein Programm mit OpenACC-Direktiven zu kompilieren, müssen Sie OpenACC compiler verwenden - das bedeutet z. B. Cray, PGI oder CAPS.

Teile des CUDA Toolkits werden von den OpenACC Compilern verwendet, abhängig von der Implementierung können sie verschiedene Komponenten wie ptxas verwenden, um PTX mit dem Maschinencode zu verbinden. Das Toolkit enthält auch Bibliotheken wie cuBLAS/cuFFT/cuSPARSE usw., die mit OpenACC zusammenarbeiten können, so dass Sie sowohl Bibliotheken als auch OpenACC in derselben App verwenden können - Sie können auch mit CUDA C/C++ zusammenarbeiten.

nvcc selbst ist kein OpenACC-Compiler.

+0

Wenn Sie mit OpenACC spielen möchten, können Sie eine 30-tägige Testversion des PGI OpenACC-Compilers (https://www.pgroup.com/account) erhalten (das letzte Mal, als ich es einmal probiert habe) /register.php?openacc_user –

+0

Beachten Sie außerdem, dass der NVIDIA Visual Profiler mit dem vom PGI OpenACC-Compiler generierten Code arbeitet. Ich habe Cray oder CAPS-Compiler nicht mit nvvp ausprobiert, kann also nichts dazu sagen. –

0

Es gibt accULL, die OpenACC-Forschungsimplementierung (nur C, OpenACC 1.0).