5

如何在cuda. 我有一个struct

template<typename T> mystruct{ T d1; T d2[10];}

我想使用上面的常量变量struct并使用类似下面的代码(此时代码可能不正确)

template<typename T> __constant__ mystruct<T> const_data;

在此之后我想复制一些

  mystruct<float> data; 

进入const_data 并最终在设备代码中访问它。如果有人指出如何实现这一点,那就太好了。提前致谢。

4

1 回答 1

5

在 CUDA 中,__constant__变量具有隐含的静态存储。从您的问题中不清楚您希望在什么时候实例化常量内存变量,但鉴于常量内存变量是静态的并且需要在标准编译模型的同一翻译单元中声明和使用,您的选择是相当有限。

没有什么可以阻止您定义模板类型,然后在常量内存中静态定义该类型的特定实例,例如:

template<typename T> struct mystruct{ T d1; T d2[10]; };

__constant__ mystruct<float> const_data;

但是,据我所知,这就是你所能做的。

于 2013-08-06T12:48:46.863 回答