我有几个结构,它们的总大小超过了允许在内核调用中作为参数传递的 256 字节大小。
这两个结构都已分配并复制到设备全局内存。
1)如何在同一个内核中使用这些结构而不将其作为参数传递?
更多细节。这些结构可以单独作为参数传递。例如,在不同的内核中。但:
2)如何在同一个内核中使用这两个结构?
如果您的数据结构已经在全局内存中,那么您只需将指针作为内核参数传递即可。
与此相关的是,对于计算能力 2.x 及更高版本的设备,内核参数的限制为 4KB:
global函数参数传递给设备:
- 通过共享内存,在计算能力 1.x 的设备上限制为 256 字节,
- 通过恒定内存,在计算能力 2.x 及更高的设备上限制为 4 KB。
device and global函数不能有可变数量的参数。
(c.f. http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#function-parameters http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#function-parameters)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)