Nvidia GTX 1050 4GB GPU 可以启动多少个线程?例如:内核<<<1,32>>>(args); 可以启动 32 个线程。那么可能的最大线程数是多少?我知道这篇文章nvidia GTS 450 有多少线程
这个问题可能经常源于对 GPU 执行行为的误解。但是根据您给出的提示限制:
例如:内核<<<1,32>>>(args); 可以启动 32 个线程。
最新的 CUDA 工具包(即计算能力为 3.0 到 8.6 的 GPU,其中包括您的 GTX 1050)支持的 GPU 之间没有变化。这些限制在文档中以及通过运行时查询给出,例如deviceQuery示例代码。
这些限制是一个线程块(第二个内核启动配置参数)被限制为总共1024 个线程,这是 3 个维度 x、y、z 的乘积,并且这些维度中的每一个都有各自的限制:
x y z
threadblock 1024 1024 64
grid 2^31-1 65535 65535
Run Code Online (Sandbox Code Playgroud)
同样,如上所述,网格(第一个内核启动配置参数)对每个维度都有单独的限制,但对产品没有限制。
因此,当前可以在内核启动中指定的最大线程数是网格尺寸和线程块限制的乘积:
total = (2^31-1)*65535*65535*1024
Run Code Online (Sandbox Code Playgroud)
该产品为 9,444,444,733,164,249,676,800
请注意,在大多数 GPU 上,启动如此大的内核,即使内核为空,也需要很长时间才能完成。(*)
该文档涵盖了线程层次结构以及如何指定多维网格和线程块。
(*) 为了娱乐,<<<dim3(1,65535,65535),1024>>>在 GTX960 上处理空内核大约需要 1 分钟。因此,在该 GPU 上启动“最大”空内核需要大约 2^31 分钟(超过 4000 年)。
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |