C++ 在cuda中定义模板化常量变量
如何在C++ 在cuda中定义模板化常量变量,c++,visual-studio-2010,templates,cuda,C++,Visual Studio 2010,Templates,Cuda,如何在cuda中实现模板化常量变量。我有一个struct template<typename T> mystruct{ T d1; T d2[10];} 在这之后,我想复制一些 mystruct<float> data; mystruct数据; 进入const_data并最终在设备代码中访问它。如果有人指出如何做到这一点,那将是一件好事。提前谢谢 在CUDA中,常量变量包含静态存储。您的问题不清楚您希望在什么时候实例化常量内存变量,但鉴于常量内存变量是静态的,
cuda
中实现模板化常量变量。我有一个struct
template<typename T> mystruct{ T d1; T d2[10];}
在这之后,我想复制一些
mystruct<float> data;
mystruct数据;
进入
const_data
并最终在设备代码中访问它。如果有人指出如何做到这一点,那将是一件好事。提前谢谢 在CUDA中,常量变量包含静态存储。您的问题不清楚您希望在什么时候实例化常量内存变量,但鉴于常量内存变量是静态的,需要在标准编译模型中的同一转换单元中声明和使用,您的选项非常有限
没有什么可以阻止您定义模板化类型,然后在常量内存中静态定义该类型的特定实例,例如:
template<typename T> struct mystruct{ T d1; T d2[10]; };
__constant__ mystruct<float> const_data;
模板结构mystruct{td1;td2[10];};
__常量常量数据;
但是,据我所知,这就是你所能做的 您忘记初始化常量数据结构。您还忘记了struct
及其终止分号。这是我代码中唯一的错误吗?也就是说,如果我初始化数据结构,它会工作吗?请再解释一下,我是cuda的新手。
template<typename T> struct mystruct{ T d1; T d2[10]; };
__constant__ mystruct<float> const_data;