Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

c++ version supported by cuda 5.0

Tags:

c++

c++11

cuda

I can't find which version/which concepts of c++ is/are supported by CUDA 5.0. I could not find any information in the Programming Guide or Reference Guide delivered with the CUDA 5.0 RC. Especially I'm wondering if CUDA 5.0 supports C++11. Could someone point me to a place to look for this information?

like image 373
soriak Avatar asked Aug 22 '12 13:08

soriak


3 Answers

Apperently no C++11 features are available in 5.0 RC. nvcc still does not understand C++11 syntax used in the standard includes of gcc 4.6 (see Error while using CUDA and C++11):

$ nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Tue_Jul_31_17:46:14_PDT_2012
Cuda compilation tools, release 5.0, V0.2.1221

$ cat test.cu

int main()
{
}

$ nvcc -Xcompiler "-std=c++0x" test.cu

/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: identifier "nullptr" is undefined

/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: expected a ";"

/usr/include/c++/4.6/bits/exception_ptr.h(93): error: incomplete type is not allowed

...

like image 160
user1487910 Avatar answered Sep 20 '22 18:09

user1487910


The release notes contain a list of support platforms including which versions of GCC are supported, the 5.0 Release Candidate release notes show that the most recent supported GCC is 4.6 for certain distributions (and older for other distributions).

Once you know which GCC version is supported, compare with the GCC C++0x/C++11 feature list.

like image 39
Tom Avatar answered Sep 17 '22 18:09

Tom


It does not support gcc 4.7 so some of the c++11 features are not available:

- Non-static data member initializers
- Template aliases :(
- Delegating constructors
- User-defined literals
- Extended friend declarations
- Explicit virtual overrides
like image 33
perreal Avatar answered Sep 20 '22 18:09

perreal