Ich versuche, das Cuda-Programm mit Intel-Compiler als Host-Compiler zu kompilieren. Das Cuda-Programm ist in C++ geschrieben und verwendet C++ 11-Funktionen. Wenn ich den Standard-Host-Compiler g ++ verwende, dann funktioniert es gut. Aber ich möchte versuchen, Intel Compiler wegen möglicher Leistungsprobleme in g ++.NVCC funktioniert nicht, wenn Intel Compiler und -std = C++ 11 Flag verwendet werden
Die Compiler, die ich verwendete, sind CUDA 7.5 und Intel 16.0.3. Sie sind die neuesten Compiler, so dass sie alle C++ 11-Funktionen unterstützen.
Hier ist, was ich mit einer kleinen Testdatei versucht:
nvcc -std=c++11 -ccbin=icpc -Xcompiler=-std=c++11 test.cu -o test
Hier ist der Ausgang:
nvcc warning : The -c++11 flag is not supported with the configured host compiler. Flag will be ignored.
/usr/local/gcc-4.8.2/include/c++/4.8.2/x86_64-unknown-linux-gnu/bits/c++config.h(190): error: identifier "nullptr" is undefined
/usr/local/gcc-4.8.2/include/c++/4.8.2/x86_64-unknown-linux-gnu/bits/c++config.h(190): error: expected a ";"
/usr/local/gcc-4.8.2/include/c++/4.8.2/exception(63): error: expected a ";"
Hat jemand das gleiche Problem und wie man es beheben? Vielen Dank.
und nur ICC 15.0 wird von CUDA 7.5 offiziell unterstützt. – kangshiyin
Versuchen Sie, auf CUDA 8.0RC zu aktualisieren. –