Cuda 块中的哪些线形成扭曲?

Cuda 块中的哪些线形成扭曲?,cuda,gpu,Cuda,Gpu,在2-d或3-d CUDA块中,如何将线程分组为翘曲?我的假设是,它们先按x迭代,然后按y迭代,然后按z迭代。例如,在具有的线程中,是扭曲,因此也是扭曲。这是否正确?是,这是正确的。创建扭曲时,线程首先按X、Y、Z(线程坐标)进行分组(32个线程组成的组一起执行)。这对良好的合并有影响:您需要在矩阵下标中安排线程坐标的使用,以便扭曲相邻线程(即通常在X坐标中)将访问矩阵中的相邻元素(通过使用threadIdx.X或变化最快的矩阵维度的导数。我们通常需要data[z][y][x] ,而不是数据[x

在2-d或3-d CUDA块中,如何将线程分组为翘曲?我的假设是,它们先按x迭代,然后按y迭代,然后按z迭代。例如,在具有
的线程中,
是扭曲,因此
也是扭曲。这是否正确?

是,这是正确的。创建扭曲时,线程首先按X、Y、Z(线程坐标)进行分组(32个线程组成的组一起执行)。这对良好的合并有影响:您需要在矩阵下标中安排线程坐标的使用,以便扭曲相邻线程(即通常在X坐标中)将访问矩阵中的相邻元素(通过使用threadIdx.X或变化最快的矩阵维度的导数。我们通常需要
data[z][y][x] 
,而不是
数据[x][y][z]

谢谢!是的,这就是我问这个问题的原因。如果运行内核内存分析操作,尝试通过合并优化我的性能。visual profiler还可以帮助指示内存利用率。