我们可以将对象传递给内核函数吗?
考虑我有一堂课
class MyClass
{
public:
int value;
float rate;
MyClass()
{
value = 0; rate = 0;
}
MyClass(int v,float r)
{
value = v; rate = r;
}
};
Run Code Online (Sandbox Code Playgroud)
我的内核获取了MyClass对象的数组
__global__ void MyKernel(MyClass * mc)
{
//Some Calculation
}
Run Code Online (Sandbox Code Playgroud)
我可以通过阵列吗?如何分配内存?现在我尝试使用以下代码得到CudaMemcpy错误
cudaError_t cudaStatus;
MyClass darr[10] ;
cudaStatus = cudaMalloc((void**)&darr, size * sizeof(MyClass));
if (cudaStatus != cudaSuccess) {
fprintf(stderr, "cudaMalloc failed!");
goto label1;
}
cudaStatus = cudaMemcpy(darr, arr, size * sizeof(MyClass), cudaMemcpyHostToDevice);
//arr is a host array
Run Code Online (Sandbox Code Playgroud) 1 - 如何获得如图所示的 CUDA 选项卡

2 - 当我将 .cu 文件添加到项目时,如何停止 Visual Studio 以红色突出显示 CUDA 关键字,如下所示?
