一般我看到的做法都是創建host、device的結構再把device的結構傳到kernel中去使用
但是想把結構的初始化、H2D、D2H都寫成一個函式來處理減化主程式的程式碼,所以想把host、device的指標都包在一起
我找了相關的資料似乎沒有看到有人這樣用,我想請教一下
我宣告一個結構包含host、device的指標,配置好記憶體後在device的kernel中只使用d_data的指標不使用h_data
以下是我的虛擬碼
struct data
{
float *h_data; //or sruct *h_struct
float *d_data; //or sruct *d_struct
};
__global__ void kernel(data in)
{
in.data[idx] = ... ;
}
int main()
{
data test;
malloc(data.h_data);
cudamalloc(data.d_data);
initial(data.h_data);
cudaMemcpy(data.h_data -> data.d_data);
kernel<<<>>>(data);
}