【问题标题】:Estimating increase in speed when changing NVIDIA GPU model估计更改 NVIDIA GPU 模型时的速度增加
【发布时间】:2011-07-12 15:22:11
【问题描述】:

我目前正在开发一个 CUDA 应用程序,该应用程序肯定会部署在比我更好的 GPU 上。给定另一个 GPU 模型,我如何估计我的算法在它上运行的速度有多快?

【问题讨论】:

    标签: cuda gpu time-estimation


    【解决方案1】:

    你会遇到困难,原因有很多:

    1. 时钟频率和内存速度与代码速度的关系很微弱,因为几乎所有新硬件都在进行改进/更改的幕后工作(例如线程上下文切换)还有很多。

    2. 缓存已添加到新硬件(例如 Fermi)中,除非您对缓存命中/未命中率进行建模,否则您将很难预测这将如何影响速度。

    3. 浮点性能通常很大程度上取决于型号(例如:Tesla C2050 的性能优于“顶级”GTX-480)。

    4. 每个设备的注册使用情况可能会因不同设备而异,这也会影响性能;在许多情况下,入住率会受到影响。

    5. 可以通过针对特定硬件来提高性能,因此即使您的算法非常适合您的 GPU,如果您针对新硬件进行优化可能会更好。

    现在,也就是说,如果您通过其中一个分析器(例如 NVIDIA Compute Profiler)运行您的应用程序,并查看您的占用率和 SM 利用率,您可能可以做出一些预测。如果您的 GPU 有 2 个 SM,而您最终将在其上运行的那个有 16 个 SM,那么您几乎可以肯定会看到改进,但并不是因为这个。

    因此,不幸的是,要做出您想要的预测类型并不容易。如果您正在编写开源代码,您可以发布代码并要求其他人使用更新的硬件对其进行测试,但这并不总是一种选择。

    【讨论】:

    • 除非您在谈论双精度浮点性能,否则 GTX480 比 C2050 快得多 - 它具有更多内核和更高的内存带宽
    【解决方案2】:

    这对于某些硬件更改可能非常难以预测,而对于其他更改则微不足道。 突出显示您正在考虑的两张卡之间的差异

    例如,这种变化可能微不足道——如果我购买了其中一款 EVGA 水冷庞然大物,它的性能会比标准 GTX 580 好多少?这只是计算限制时钟速度(内存或 gpu 时钟)差异的练习。当我想知道我是否应该对我的卡进行超频时,我也遇到了这个问题。

    如果你要类似的架构,从 GTX 580 到 Tesla C2070,你可以做一个类似的时钟速度差异案例,但你必须小心单/双精度问题。

    如果您正在做一些更激烈的事情,比如从移动卡 - GTX 240M - 到顶级线卡 - Tesla C2070 - 那么你可能不会在全部。

    注意:Chris 的回答非常正确,但我想强调这一点,因为我设想了这种常见的工作路径:

    一个人对老板说:

    1. 所以我听说过这个 CUDA 东西...我认为它可以使函数 X 更加高效。
    2. 老板说你可以有 0.05% 的工作时间来测试 CUDA ——嘿,我们已经有了这张移动卡,用它
    3. 一年后...所以 CUDA 可以让我们获得三倍的加速。我可以买一张更好的卡来测试一下吗? (一台 GTX 580 只需 400 美元——比那次实习生惨败还便宜……)
    4. 您花费 $$,购买卡,然后您的 CUDA 代码运行更慢
    5. 你的老板现在很不高兴。你浪费了时间和金钱

    那么发生了什么?在旧卡上开发,想想 8800、9800,甚至是具有类似 30 核的移动 GTX 2XX,导致人们以与有效利用具有 512 核的卡的方式截然不同的方式优化和设计您的算法。 Caveat Emptor 你得到了你所支付的 - 那些很棒的卡片 很棒 - 但你的代码可能不会运行得更快

    已发出警告,走开消息是什么?当您获得更好的卡时,请务必花时间进行调整、测试,并可能从头开始重新设计您的算法

    好的,也就是说,经验法则? GPU 的速度每六个月提高一倍。因此,如果您要从两年前的卡片升级到顶级卡片,请向您的老板声称它的运行速度会快 4 到 8 倍(如果您获得了 16 倍的完整改进,好样的! !)

    【讨论】:

    • 感谢您的回答 M. Tibbits。你说'一定要花时间调整'我的算法。为了执行此调整,我应该寻找哪些作为 GPU 模型之间差异的东西?
    • 内存容量、块大小、寄存器计数和可能个并发内核。
    猜你喜欢
    • 1970-01-01
    • 2022-12-25
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多