CUDA 程序 运行 在 Tesla K20 上比 GTX 965 慢

CUDA program running slower on Tesla K20 than GTX 965

我正在做一个项目,我必须比较各种 gpu 卡以进行性能分析。

我在两个 GPU 中都有 运行 用于 Canny 边缘检测的相同 cuda 代码,发现 gtx 965 比 Tesla K20 快得多 (200%)。我还观察到 Tesla C2075 运行 与 Tesla K20 相同。

据我所知K20有2496核,965有1024核,C2075有448核。 K20和C2075是NVIDIA Kepler架构,965是Maxwell架构

我哪里做错了,或者是硬件部分有什么不同导致了这个问题?

还有,我们可以通过程序或理论计算来查看显卡的功耗吗?

许多核心并不一定意味着更短的执行时间。如果您的 CUDA 应用仅使用单线程并且您将 运行 您的应用在:

  • K20,有很多706MHz频率的内核,
  • 与 GTX965 相比,GTX965 大约有一半,但工作频率为 944MHz

... 那么显然 GTX965 可以 工作得更快。理论上,只要您的应用程序使用的内核少于 1024 个,GTX 就可以胜过 K20,以防内存不是 K20 实际存在的瓶颈:

  • 更大的内存带宽,
  • 总的来说内存​​更多,
  • 稍微高一点的内存时钟。

因此,总而言之,考虑到硬件限制,"tailor" CUDA 应用程序很容易使一个 GPU 比其他 GPU 更适合。只需考虑内核启动参数这样简单的事情,即网格大小和块大小。

此外,C2075也是如此,根据规格,其核心时钟为1.15GHz,因此优于K20和GTX965。