我应该在 CUDA 中编写一个代码,它在递归循环中计算一个数组。有可能在它之前预先计算这个递归循环的一些中间步骤,即分配一些常量数组和标量,这将避免循环中的一些计算。
第一个想法是将常量数组存储在全局内存中,而标量参数每次都从 CPU 传递到 GPU(如这里建议的:CUDA 和不同全局函数之间的共享变量)。
我想尝试使用 GPU 常量内存,因为它应该更快。但是,我发现的几个示例代码说明了如何从主机分配常量内存。是否可以从 GPU 分配一些常量内存,即在那里计算它的值(就像我们对全局内存所做的那样)?你能提供一个示例代码吗?
编辑:因为我可以分配很多常量数组,所以在这种情况下可能会更好地使用纹理内存。是否有一些关于如何从 GPU 分配内存的示例代码?