【发布时间】:2019-12-01 12:18:05
【问题描述】:
我有一块 Nvidia GeForce GTX 960M 显卡,其规格如下:
- 多处理器:5 个
- 每个多处理器的内核数:128(即 5 x 128 = 总共 640 个内核)
- 每个多处理器的最大线程数:2048
- 最大块大小(x、y、z):(1024、1024、64)
- 翘曲尺寸:32
如果我运行 1 个 640 个线程块,那么单个多处理器将获得 640 个线程的工作负载,但一次只能并发运行 128 个线程。但是,如果我运行 5 个 128 个线程的块,那么每个多处理器都会获得一个块,并且所有 640 个线程都同时运行。因此,只要我创建 128 个线程的块,那么每个多处理器的线程分布就可以尽可能均匀(假设总共至少 640 个线程)。
然后我的问题是:我为什么要创建大小大于每个多处理器内核数的块(只要我没有达到每个维度的最大块数)?
【问题讨论】: