7
カーネル関数にオブジェクトを渡すことはできますか? クラスオブジェクトをカーネルに渡す
は、私はクラス
class MyClass
{
public :
int value;
float rate;
MyClass()
{
value = 0; rate = 0;
}
MyClass(int v,float r)
{
value = v; rate = r;
}
};
を持っており、私のカーネルは、MyClassの
__global__ void MyKernel(MyClass * mc)
{
//Some Calculation
}
のオブジェクトの配列を受け取り、私は配列を渡すことはできますか?考えてみましょう
どのようにメモリを割り当てるのですか?今、私は次のコードは、すべての直接あなたが見ているものは何でもエラーに関連していない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
エラーは何ですか? –