CUDA内核不支持strncpy吗

CUDA内核不支持strncpy吗,cuda,nvidia,Cuda,Nvidia,我遇到以下错误: error: calling a host function("strcpy") from a __device__/__global__ function("doDecompression") is not allowed error: calling a host function("strlen") from a __device__/__global__ function("doDecompression") is not allowed error: calling

我遇到以下错误:

error: calling a host function("strcpy") from a __device__/__global__ function("doDecompression") is not allowed
error: calling a host function("strlen") from a __device__/__global__ function("doDecompression") is not allowed
error: calling a host function("strlen") from a __device__/__global__ function("doDecompression") is not allowed

这是真的还是我的编译器的行为很滑稽?

否。内核代码不支持标准C库中的函数(如strcpy)


这些函数是为在CPU上工作而设计和编写的,要让它们在大量线程的设备上工作是非常困难的。

否。内核代码不支持标准C库中的函数(如strcpy)


这些函数是为在CPU上工作而设计和编写的,要让它们在大量线程的设备上工作是非常困难的。

是的,这是事实。参见静止,CUDA标准库记录在CUDA编程指南的附录中。你所看到的正是你所支持的。不支持找不到的内容。在/中定义的所有函数都属于后一类。是的,这是正确的。参见静止,CUDA标准库记录在CUDA编程指南的附录中。你所看到的正是你所支持的。不支持找不到的内容。在/中定义的所有函数都属于后一类。那么如何比较GPU上的两个字符串呢。我们可以在C库中使用strcmp函数并将设备放在它前面吗?程序员:不,那不行。你要么需要一个GPU字符串库,要么就写你自己的内核来做比较。你能帮我写一个吗??我已经试了4个小时了,但就是没有work@Programmer:Internet上肯定有成百上千的strcmp实现——包括BSD、GNU和Microsoft libc版本。当然你会找到一些东西来帮助你选择的搜索引擎吗?那么你会如何比较GPU上的两个字符串呢。我们可以在C库中使用strcmp函数并将设备放在它前面吗?程序员:不,那不行。你要么需要一个GPU字符串库,要么就写你自己的内核来做比较。你能帮我写一个吗??我已经试了4个小时了,但就是没有work@Programmer:Internet上肯定有成百上千的strcmp实现——包括BSD、GNU和Microsoft libc版本。你肯定能找到一些东西来帮助你选择的搜索引擎吗?