最近在看cuda编程想关,对于block和grid的关系一直搞不清楚,尤其是代码的调用,此处做一个简单总结。
int nElem = 6; //定义数据维度为一维,6*1的矩阵
dim3 block(3); //block中有3个线程
dim3 grid((nElem + block.x - 1)/block.x); //根据数据大小和块大小计算网格大小
kernel_name<<<3, 6>>>(argument, list); // 生成一个grid,grid包含3个block,每个block包含6个线程。即此函数可以并行处理3*6个数据。