首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在特斯拉K40和特斯拉K80上的表现几乎相同。

我在特斯拉K40和特斯拉K80上的表现几乎相同。
EN

Stack Overflow用户
提问于 2016-07-06 16:05:42
回答 1查看 1.7K关注 0票数 1

我开发了两个CUDA内核。一个是内存绑定内核,另一个是计算绑定。内核,首先对特斯拉K40进行了优化,我现在正在特斯拉K40和特斯拉K80上进行性能测试,以比较它们的性能结果。然而,我真的很困惑,因为我在两块板上获得了几乎相同的性能,而K80提供了将近2倍的理论带宽和DP峰值性能。我还测试了每个块的不同线程数,但与特斯拉K80相比,我再次没有看到任何明显的性能改进(约2%)。

我使用以下标志编译代码:

在特斯拉K40上:

代码语言:javascript
复制
nvcc --cudart static --relocatable-device-code=false -gencode arch=compute_35,code=compute_35 -gencode arch=compute_35,code=sm_35 -link -o  "test"

在特斯拉K80上:

代码语言:javascript
复制
nvcc --cudart static --relocatable-device-code=false -gencode arch=compute_37,code=compute_37 -gencode arch=compute_37,code=sm_37 -link -o  "test"

理论上,我应该得到更高的性能在特斯拉K80,但我不知道为什么不工作。

谢谢您的回复或评论!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 16:10:59

然而,我真的很困惑,因为我在两块板上获得了几乎相同的性能,而K80提供了将近2倍的理论带宽和DP峰值性能。

特斯拉K80只有当你有一个可以利用多个GPU的代码时,才能提供这些好处。您似乎正在为测试运行单个内核(启动),而K80运行单个内核(启动)的速度不会比K40更快。

K80实际上是两个GPU捆绑在一个物理单元中。这两个GPU中的每一个都有一个K40的80%-90%的性能,因此捆绑在一起,它可以提供几乎两倍的性能,但只能在多GPU识别的代码上。

K80 (与K40相比)不会为单个内核(启动)的执行提供任何好处。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38228624

复制
相关文章

相似问题

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