CUDA程序在特斯拉K20上的运行速度比GTX 965慢

时间:2015-04-29 13:40:58

标签: c performance cuda gpu tesla

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

我在GPU上运行了相同的Canny Edge Detection cuda代码,发现gtx 965比Tesla K20快得多(200%)。此外,我观察到特斯拉C2075的运行与特斯拉K20相同。

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

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

另外,我们可以使用任何程序或理论计算来检查图形卡消耗的功率吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

  • 内存带宽更大,
  • 一般来说内存要多得多,
  • 更高的内存时钟。

因此,总而言之,考虑到硬件限制,很容易“定制”CUDA应用以更好地适应一个GPU。只需要考虑内核启动参数这样简单的事情,即网格大小和块大小。

此外,根据规范,C2075同样如此,其核心时钟为1.15GHz,因此优于K20和GTX965。