我知道非POD类型通常不能作为参数传递给CUDA内核启动。 但是我可以在这里找到解释,我的意思是像书,CUDA手册等可靠来源。
答案 0 :(得分:5)
这个问题的整个前提是不正确的。 CUDA内核参数不限于POD类型。
您可以通过引用或值将任何完整类型作为参数传递。根据您编译的体系结构,参数列表的总大小限制为255个字节或4kb,但这是对内核参数的唯一限制。将类的实例传递给CUDA内核时,必须遵循许多简单的限制,包括:
__device__
函数CUDA内核代码中C ++支持的所有特性和限制在CUDA Programming Guide中描述,其副本随CUDA工具包的每个版本一起提供。您需要做的就是阅读它。