作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解占用计算器。我遇到了一些开发代码的问题,其中 512 个线程工作正常,但 1024 个线程给出了糟糕的数字。
我在 Windows 7 上运行 Tesla C2050,在 Matlab(这不是我的错,我必须使用 Matlab)和 Mexfunction 中开发。
我想我会使用占用计算器来尝试找到影响结果的代码中的任何其他限制。
当我每块输入 1024 个线程时,占用率为 0%。 512 个线程,占用率为 33%。我原以为我至少会得到 1024 个线程的东西。我注意到代码和占用率计算器对最多 704 个线程给出了很好的结果(这是一个不代表任何真实的数字)。
我相信我对这方面缺乏了解是我无法纠正我在代码中看到的错误的原因。谁能解释为什么我得到这些结果?
数字是:
最佳答案
每个块的寄存器总数为 32768(您可以使用 SDK 中的 deviceQuery 进行检查)。
现在根据您的内核,它使用 44 个寄存器/线程。如果您以每块 1024 个线程启动内核,您将获得总共 44*1024 = 45056 个超出限制的寄存器。
为了以每块 1024 个线程运行它,您需要优化内核,使每个线程使用不超过 32 个寄存器。
关于cuda - 了解入住率计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11735035/
我是一名优秀的程序员,十分优秀!