Мне нужно скопировать трёхмерный массив из host-памяти в device-память.
Массив в host-памяти представляет собой указатель float*:
float *hostData;
// инициализация
Кроме того, в переменной
dim3 size;
Вот я хочу его скопировать в device-память. Для этого сделал вот такой код:
cudaExtent extent = make_cudaExtent(size.x*sizeof(float),size.y,size.z);
cudaPitchedPtr pitchedDevData;
cudaMalloc3D(&pitchedDevData,extent);
cudaMemcpy3DParms memcpy3DParms = {0};
memcpy3DParms.dstPtr = pitchedDevData;
cudaMemcpy3D(&memcpy3DParms);
Вместо d надо поставить hostData, а вот вместо остальных трёх переменных что? %) никакой не догоняю. Я наверное плохо понимаю, что такое этот pitch - если дословно переводить «смола» =) никак не пойму, о чём речь.