二、一些基础
上接: cuda并行编程基础(一)
(二)cuda基础:gridBlock.cu
4.总计算量与block、grid的关系
假设一维数组总计算量为total_c,怎么确定block与grid呢?
一维数组:
int cal_array[XX];
int thd_num=16;
dim3 block(thd_num);//一般block.x * block.y * block.z <=1024,1024这个值根据显卡性能确定
dim3 grid((XX + thd_num -1)/thd_num);//这里为何这么计算呢?
之所以grid.x = XX + thd_num - 1 /thd_num,原因是要保证block*grid >=XX
二维数组:
int cal_array[XX][YY];
int thd_x_num=16,thd_y_num=32;
dim3 block(thd_x_num,thd_y
上接: cuda并行编程基础(一)
(二)cuda基础:gridBlock.cu
4.总计算量与block、grid的关系
假设一维数组总计算量为total_c,怎么确定block与grid呢?
一维数组:
int cal_array[XX];
int thd_num=16;
dim3 block(thd_num);//一般block.x * block.y * block.z <=1024,1024这个值根据显卡性能确定
dim3 grid((XX + thd_num -1)/thd_num);//这里为何这么计算呢?
之所以grid.x = XX + thd_num - 1 /thd_num,原因是要保证block*grid >=XX
二维数组:
int cal_array[XX][YY];
int thd_x_num=16,thd_y_num=32;
dim3 block(thd_x_num,thd_y