我的程序需要最大限度地使用 GPU。
那么,blockDim.x * blockIdx.x + threadIdx.x; 是吗?是否能够访问所有线程?或者也必须使用 .y 和 .z ?这是强制性的吗?
CUDA 线程层次结构只是一种方便的抽象,不需要使用一维、二维或三维,如果只使用一维而不是全部三个维度,也不会损失性能。只要指定了正确的网格尺寸,您就可以使用通过一组索引启动的所有线程。
2.2. 线程层次结构
为了方便起见,threadIdx是一个3分量向量,这样可以使用一维、二维或三维线程索引来标识线程,形成一维、二维或三维线程块。这提供了一种自然的方式来调用域中元素(例如向量、矩阵或体积)的计算。
阅读更多信息:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#thread-hierarchy
归档时间: |
|
查看次数: |
235 次 |
最近记录: |