[外链图片转存失败(img-zO6KRx2W-1563170516690)(https://devblogs.nvidia.com/wp-content/uploads/2017/01/cuda_indexing.png)]
常见变量
gridDim.x:grid中包含的线程块的索引(上图包含4096个线程块)blockIdx.x:grid中包含当前线程块的索引(上图每个线程块的索引从0-255)blockDim.x:线程块中线程数量(上图线程块中的线程数为256)threadIdx.x:线程块中的线程的索引(上图的中橙色3的线程索引为3)
线程索引:index = blockIdx.x * blockDim.x + threadIdx.x
# 线程块大小
int blockSize = 256;
# N表示需要处理的元素个数
int numBlocks = (N + blockSize - 1) / blockSize;
# 每个时钟处理blocksize个线程,需要至少numBlock个线程块处理
add<<<numBlocks, blockSize>>>(N, x, y);
CUDA工具
- nvprof:探测cu程序运行统计信息
- nvcc:cuda程序编译器

13万+

被折叠的 条评论
为什么被折叠?



