1
我正在编写一个CUDA内核,其中我正在使用C++中的string
数据类型。但是,编译器会抛出以下错误:可以在C++ CUDA内核中使用字符串数据类型吗?
error: calling a host function("std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator =") from a __device__/__global__ function("doDecompression") is not allowed
是否在内核中不允许使用字符串?如果没有,在内核中为char数组分配空间的解决方法是什么?
在内核函数中使用C字符串 – 2012-03-28 15:26:29
@PaulR:假设我传递一个C++字符串数组到我的内核。 CUDA不会抱怨这一点。我如何将其转换为内核中的C字符串。请举例 – Programmer 2012-03-28 15:32:50
您只需将基础数据传递给内核 - 使用'string :: c_str()'方法提取指向主机代码中C数据的指针并将它们传递给内核函数 – 2012-03-28 15:44:38