2012-08-22 41 views
8

Tôi không thể tìm thấy phiên bản/khái niệm nào của C++ được/được hỗ trợ bởi CUDA 5.0. Tôi không thể tìm thấy bất kỳ thông tin nào trong Hướng dẫn lập trình hoặc Hướng dẫn tham khảo được cung cấp cùng với CUDA 5.0 RC. Đặc biệt là tôi tự hỏi nếu CUDA 5.0 hỗ trợ C++ 11. Ai đó có thể chỉ cho tôi một nơi để tìm kiếm thông tin này?Phiên bản C++ được hỗ trợ bởi cuda 5.0

+0

Bạn có hỏi về mã hỗ trợ thiết bị hoặc mã máy chủ C++ không? – talonmies

Trả lời

1

Nó không hỗ trợ gcc 4.7 nên some of the c++11 features không có sẵn:

- Non-static data member initializers 
- Template aliases :(
- Delegating constructors 
- User-defined literals 
- Extended friend declarations 
- Explicit virtual overrides 
+0

Xin lỗi vì đã chấp nhận điều đó muộn, tôi hy vọng lần đầu tiên được tham khảo tài liệu cuda nhưng danh sách đó là một khởi đầu tuyệt vời. – soriak

4

Các ghi chú phát hành chứa một danh sách các nền tảng hỗ trợ bao gồm cả phiên bản của GCC được hỗ trợ, các 5.0 Release Candidate release notes cho thấy hỗ trợ GCC gần đây nhất là 4.6 cho một số bản phân phối (và cũ hơn cho các bản phân phối khác).

Khi bạn biết phiên bản GCC nào được hỗ trợ, hãy so sánh với GCC C++0x/C++11 feature list.

+1

Chỉ mã máy chủ được biên dịch bằng GCC. – Dude

+0

@Dude: nvcc tách một cách hiệu quả một tệp đơn để biên dịch bởi trình biên dịch máy chủ (trong trường hợp này là GCC) và trình biên dịch thiết bị. Trình liên kết cuối cùng liên kết các đối tượng thiết bị và các đối tượng lưu trữ với nhau. Tôi không thực sự hiểu những gì bạn có nghĩa là chỉ nói mã máy chủ được biên dịch với GCC, không có ai nói bất cứ điều gì khác nhau nhưng nvcc chỉ hỗ trợ các phiên bản nhất định (xem ghi chú phát hành). Không chắc chắn nó bảo đảm một downvote! – Tom

+0

OP yêu cầu các tính năng của C++ 11. Bạn có chắc chắn rằng trình biên dịch thiết bị thực hiện tất cả chúng? – Dude

7

Không có các tính năng C++ 11 có sẵn trong 5.0 RC. nvcc vẫn không hiểu C++ 11 cú pháp được sử dụng trong tiêu chuẩn bao gồm các gcc 4.6 (xem 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 

...

0

ngay bây giờ nếu bạn hỏi về Cuda/C++ hoặc thư viện THRUST. thư viện lực đẩy rất giống với stl C++ liên quan đến các thùng chứa, các vòng lặp và các thuật toán, nhưng nó không phải là C++ 11.

nvcc biên dịch mã gpu. hỗ trợ nvcc (Cuda C và Cuda C++/lực đẩy) mã cpu biên dịch gcc. gcc (hỗ trợ C và C++).

Các vấn đề liên quan