Я новичок в программировании OpenCL, и мой ввод представляет собой трехмерный массив. Я рассчитываю индекс как:3D-массивы в OpenCL
int gidX = get_global_id(0)?1:get_global_id(0);
int gidY = get_global_id(1)?1:get_global_id(1);
int gidZ = get_global_id(2)?1:get_global_id(2);
int index = gidX + (gidY*SizeX) + (gidZ*SizeY*SizeZ);
Это правильный способ сделать это? Как использовать локальные идентификаторы потоков с 3D-массивами? Я использовал его с 2d массивов как:
int tid = get_local_id(0);
int gid = get_global_id(0);
int index = tid + gid*width;
И есть ли способ, которым я мог бы использовать тип image3d_t для моего 3D объема?
Спасибо,
Саян