结构类型的CUDA设备
CUDA专家,如果我在主机代码中定义了新类型:结构类型的CUDA设备,cuda,Cuda,CUDA专家,如果我在主机代码中定义了新类型: struct float_3{ float x; float y; float z; }; 我已经将这种类型的一些数据传输到设备,我可以创建这种新类型的\uuuu设备\uuuu调用吗,即: __device__ float_3 foo(float_3 r,float b,int a){ } 我们可以创建任何类型的\uuuuuuuuuuuuuuuuuuu设备吗?或者只是int,float,dlouble,void,等等。。。 有可能返回设备
struct float_3{
float x;
float y;
float z;
};
我已经将这种类型的一些数据传输到设备,我可以创建这种新类型的\uuuu设备\uuuu
调用吗,即:
__device__ float_3 foo(float_3 r,float b,int a){
}
我们可以创建任何类型的\uuuuuuuuuuuuuuuuuuu设备吗?或者只是int
,float
,dlouble
,void
,等等。。。
有可能返回设备上的指针吗?即
\uuuuuuuuuuuuuuuuu设备\uuuuuuuuuuuuu3*foo(){}
是的,您可以创建任何类型的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu设备。它只是一个限定符,使该函数可以编译以在设备上运行,并且可以从设备上调用
顺便说一下,CUDA有一个float3
类型。我从未使用过它,但如果我没记错的话,它提供了与您的float_3
相同的功能,还附带了一个构造函数
我们能创造吗
\uuuuuuuuuuuuuuuuuuuu设备
任何类型
简而言之,答案是肯定的。答案很长,是的,如果它是用户定义的类型,如float\u3
,您可以定义\uuuuuu设备\uuuuu
变量指针,并使用cudamaloc
在设备中分配内存
是否可以在上返回指针
装置
是的,你能做到 CUDAfloat3类型还具有正确的对齐声明,这是另一个优势。