Я новичок в cuda. Я хочу добавить два массива 2d в третий массив. Я использую следующий код:
cudaMallocPitch((void**)&device_a, &pitch, 2*sizeof(int),2);
cudaMallocPitch((void**)&device_b, &pitch, 2*sizeof(int),2);
cudaMallocPitch((void**)&device_c, &pitch, 2*sizeof(int),2);
теперь моя проблема в том, что я не хочу использовать этот массив как сплющенный 2-мерный массив все в моем коде ядра я хочу, чтобы di использовал два цикла for и поместил результат в третий массив, например
__global__ void add(int *dev_a ,int *dev_b,int* dec_c)
{
for i=0;i<2;i++)
{
for j=0;j<2;j++)
{
dev_c[i][j]=dev_a[i][j]+dev_b[i][j];
}
}
}
Как я могу это сделать в CUDA? скажите, пожалуйста, как использовать 2-мерный массив таким образом?
Каким должен быть вызов ядра для использования 2d-массива? Если возможно, объясните, используя образцы кода.