use*_*986 5 c++ templates cuda visual-studio-2010
如何在中实现模板化常量变量cuda。我有一个struct
template<typename T> mystruct{ T d1; T d2[10];}
Run Code Online (Sandbox Code Playgroud)
我想要上面有一个常量变量,struct并使用类似下面的代码(此时代码可能不正确)
template<typename T> __constant__ mystruct<T> const_data;
Run Code Online (Sandbox Code Playgroud)
在主要之后,我想复制一些
mystruct<float> data;
Run Code Online (Sandbox Code Playgroud)
到const_data 最终设备代码中访问它。如果有人指出如何实现这一目标,将是一种好感。提前致谢。
在CUDA中,__constant__变量隐含静态存储。从您的问题尚不清楚,您想在什么时候实例化常量存储变量,但是鉴于常量存储变量是静态的,需要在标准编译模型的同一转换单元中声明和使用,因此您的选择是相当有限。
没有什么可以阻止您定义模板化类型,然后在常量内存中静态定义该类型的特定实例,例如:
template<typename T> struct mystruct{ T d1; T d2[10]; };
__constant__ mystruct<float> const_data;
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,这就是您所能做的。
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |