Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在cuda中定义模板化常量变量_C++_Visual Studio 2010_Templates_Cuda - Fatal编程技术网

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;