我有一块 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 个线程)。
那么我的问题是:为什么我要创建大小大于每个多处理器内核数的块(只要我没有达到每个维度的最大块数)?