首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GPU的性能取决于元素的数量(problem_size)

GPU的性能取决于元素的数量(problem_size)
EN

Stack Overflow用户
提问于 2016-07-07 10:10:29
回答 1查看 123关注 0票数 1

我正在用CUDA开发计算流体力学(CFD)代码。由于我正在单个Tesla K40 GPU (与Intel Xeon E5 v2 CPU相比)上进行不同问题大小的加速测试,GPU通过增加问题大小显示出更高的加速比。例如,1百万元素的加速比为1.5倍,而1千万元素的加速比为11倍。

我不知道理论上是什么导致了大问题的高性能?实际上,这也是我在GPU上运行的许多科学(特别是流体力学)应用程序中看到的情况。(我想知道内核开销、延迟等是否会受到影响?)

谢谢您的回复或评论!

PS:所谓加速,是指GPU代码的执行时间与CPU版本的执行时间的比率。实际上,我增加了两个版本中的问题大小(当然,在每个比较测试中都适用相同的问题大小),并重新计算相应问题大小的加速比。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 12:22:16

原因是运行GPU内核通常带有恒定时间的开销(可能不是常数,但我们可以考虑常量情况),例如内核启动开销、PCIe数据传输等。

假设这个恒定的GPU开销花费t秒,GPU速度是每秒g百万元素,CPU速度是每秒c百万元素。这两种速度都是恒定的(可能不是@havogt所表示的那样)。CPU上没有开销。你有方程

代码语言:javascript
运行
复制
(t + 1 / g) * 1.5 = 1 / c
(t + 10 / g) * 11 = 10 / c

然后你就可以

代码语言:javascript
运行
复制
g / c = 37.125
t = 0.640 / c

这意味着

  1. 对于足够大的数据元素(>100 m),GPU速度接近CPU速度的37.125倍;
  2. 恒定的开销时间等于CPU上处理0.640M元素的时间。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38242826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档