gpt4 book ai didi

cuda - 了解入住率计算器

转载 作者:行者123 更新时间:2023-12-01 01:16:36 25 4
gpt4 key购买 nike

我无法理解占用计算器。我遇到了一些开发代码的问题,其中 512 个线程工作正常,但 1024 个线程给出了糟糕的数字。

我在 Windows 7 上运行 Tesla C2050,在 Matlab(这不是我的错,我必须使用 Matlab)和 Mexfunction 中开发。

我想我会使用占用计算器来尝试找到影响结果的代码中的任何其他限制。

当我每块输入 1024 个线程时,占用率为 0%。 512 个线程,占用率为 33%。我原以为我至少会得到 1024 个线程的东西。我注意到代码和占用率计算器对最多 704 个线程给出了很好的结果(这是一个不代表任何真实的数字)。

我相信我对这方面缺乏了解是我无法纠正我在代码中看到的错误的原因。谁能解释为什么我得到这些结果?

数字是:

  • 计算能力 2.0
  • 共享内存大小 49152
  • 每个块的线程数 512 或 1024
  • 每个线程的寄存器 44
  • 每个块 0 的共享内存

  • ptxas info : 使用了 44 个寄存器,232 字节 cmem[0],144 字节 cmem[2],28 字节 cmem[16]

    最佳答案

    每个块的寄存器总数为 32768(您可以使用 SDK 中的 deviceQuery 进行检查)。
    现在根据您的内核,它使用 44 个寄存器/线程。如果您以每块 1024 个线程启动内核,您将获得总共 44*1024 = 45056 个超出限制的寄存器。
    为了以每块 1024 个线程运行它,您需要优化内核,使每个线程使用不超过 32 个寄存器。

    关于cuda - 了解入住率计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11735035/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com