小编Arj*_*K R的帖子

将类对象传递给内核

我们可以将对象传递给内核函数吗?

考虑我有一堂课

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)

c++ cuda

8
推荐指数
1
解决办法
8710
查看次数

项目属性中的 CUDA/C++ 选项卡

1 - 如何获得如图所示的 CUDA 选项卡

在此处输入图片说明

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

在此处输入图片说明

cuda visual-studio

2
推荐指数
1
解决办法
1756
查看次数

标签 统计

cuda ×2

c++ ×1

visual-studio ×1