Я вычисляю интеграл 2D-изображения, и мне нужно pad моего 2D-изображения с нулями в первом столбце и первой строке, как я нарисовал на этом рисунке:
.
Я написал этот код, который выполняет свою работу:
cudaMemset(d_pSlice, 0, 5*4 * sizeof(float));
float* d_pVolume_tmp; // Thats a temporary pointer wich runs on the columns of d_pVolume
float* d_pSlice_tmp; // Thats a temporary pointer wich runs on the columns of d_pSlice
for (int c = 1; c < 4; c++) {
d_pVolume_tmp = d_pVolume + ((c - 1)*4);
d_pSlice_tmp = d_pSlice + (c *5 + 1);
cudaMemcpy((void *)d_pSlice_tmp, (void *)d_pVolume_tmp, 4 * sizeof(float), cudaMemcpyDeviceToDevice);
}
однако, я думаю, что это медленно.Я прочитал этот вопрос о тональной памяти, но я не совсем понимаю его роль.
Мой вопрос: существует ли другой способ, которыйбыстрее, делать это?