分配给 GPU 中的 sqrt 的 FLOPS 以衡量性能和全局效率

发布于 2024-11-05 20:30:08 字数 238 浏览 0 评论 0原文

在 GPU 实现中,我们需要根据 GLOPS 来估计其性能。代码非常基本,但我的问题是我应该为“sqrt”或“mad”操作提供多少 FLOPS,无论是 1 还是更多。

此外,如果这些操作为 1 FLOP,我的代码将获得 50 GFLOPS,而该 GPU 的理论最大值为 500GFLOPS。如果我用百分比来表达,我会得到 10%。就加速而言,我得到了 100 倍。所以我觉得很好,但是10%的收益率似乎有点低,你觉得怎么样?

谢谢

In a GPU implementation we need to estimate its performance in terms of GLOPS. The code is very basic, but my problem is how many FLOPS should I give to the operations "sqrt" or "mad", whether 1 or more.

Besides, I obtain 50 GFLOPS for my code if 1 say 1 FLOP for these operations, while the theoretical maximum for this GPU is 500GFLOPS. If I express it in precentages I get 10 %. In terms of speedup I get 100 times. So I think it is great, but 10% seems to be a bit low yield, what do you think?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凹づ凸ル 2024-11-12 20:30:08

正确的答案可能是“视情况而定”。

为了纯粹比较不同平台上运行的代码之间的性能,我通常将超越、sqrt、mads 算作一项操作。在这种情况下,关键性能指标是代码运行所需的时间。几乎不可能以任何其他方式进行比较 - 您将如何比较需要 25 个周期才能退出的超越硬件指令的“FLOP”计数与数学库生成的 fmad 指令节(也需要 25 个周期)周期来完成?在这种情况下,对指令或 FLOP 进行计数变得毫无意义,尽管表面上的 FLOP 计数不同,但它们都以相同数量的时钟周期执行所需的操作。

另一方面,对于给定硬件上的一段代码的分析和性能调整,FLOP 计数可能是一个有用的指标。在 GPU 中,通常会查看 FLOP 或 IOP 计数以及内存带宽利用率来确定给定代码的性能瓶颈所在。掌握这些数字可能会为您指明有用的优化方向。

The right answer is probably "it depends".

For pure comparative performance between code run on different platforms, I usually count transcendentals, sqrt, mads, as one operation. In that sort of situation, the key performance metric is how long the code takes to run. It is almost impossible to do the comparison any other way - how would you go about comparing the "FLOP" count of a hardware instruction for a transcendental which takes 25 cycles to retire, versus a math library generated stanza of fmad instructions which also takes 25 cycles to complete? Counting instructions or FLOPs becomes meaningless in such a case, both performed the desired operation in the same amount of clock cycles, despite a different apparent FLOP count.

On the other hand, for profiling and performance tuning of a piece of code on given hardware, the FLOP count might be a useful metric to have. In GPUs, it is normal to look at FLOP or IOP count and memory bandwidth utilization to determine where the performance bottleneck of a given code lies. Having those numbers might point you in the direction of useful optimizations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文