据我所知,CUDA 支持 C 和 C++。但是我不能在我的内核中使用 C++。
我尝试这样一个简单的例子
__global__ void simple(){
cout<<"abc";
}
Run Code Online (Sandbox Code Playgroud)
那是错误。但如果我改变printf("abc");它是对的。
你能帮我解释一下吗?非常感谢!
来自 CUDA 7.5 nvidia 幻灯片:
C++11 支持的特性:
C++ 不支持的功能
std::cout在 C++ 标准库中定义,CUDA 不支持。使用 Cprintf
从 CUDA 6.5 开始,“compute_11?”、“compute_12?”、“compute_13?”、“sm_11?”、“sm_12?”和“sm_13? 架构已被弃用。所以nvcc会默认编译为 CC 2.0 启用printf支持。