C++ 当英特尔编译器和-std=c++;使用11个标志

C++ 当英特尔编译器和-std=c++;使用11个标志,c++,c++11,cuda,intel,nvcc,C++,C++11,Cuda,Intel,Nvcc,我正在尝试用英特尔编译器作为主机编译器编译cuda程序。CUDA程序是用C++编写的,使用C++ 11个功能。如果我使用默认的主机编译器g++,那么它工作得很好。但我想试试英特尔编译器,因为g++中可能存在性能问题 我使用的编译器是CUDA 7.5和Intel 16.0.3。它们是最新的编译器,因此都支持c++11特性 下面是我用一个小测试文件尝试的内容: nvcc -std=c++11 -ccbin=icpc -Xcompiler=-std=c++11 test.cu -o test 以下是

我正在尝试用英特尔编译器作为主机编译器编译cuda程序。CUDA程序是用C++编写的,使用C++ 11个功能。如果我使用默认的主机编译器g++,那么它工作得很好。但我想试试英特尔编译器,因为g++中可能存在性能问题

我使用的编译器是CUDA 7.5和Intel 16.0.3。它们是最新的编译器,因此都支持c++11特性

下面是我用一个小测试文件尝试的内容:

nvcc -std=c++11 -ccbin=icpc -Xcompiler=-std=c++11 test.cu -o test
以下是输出:

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 ";"

是否有人有相同的问题以及如何解决?谢谢。

CUDA 7.5不支持您尝试执行的操作。CUDA 7.5目前不支持使用icc作为主机编译器的C++11语法,CUDA 7.5也不支持icc 16


CUDA 8.0RC支持将ICC用作带有std=c++11标志的主机编译器(也支持ICC 16.0)

,CUDA 7.5仅正式支持ICC 15.0。请尝试更新到CUDA 8.0RC。