我正在做一个项目,我必须比较各种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架构。
我做错了什么或硬件部分有什么不同导致了这个问题?
另外,我们可以使用任何程序或理论计算来检查图形卡消耗的功率吗?
答案 0 :(得分:2)
许多核心并不一定意味着更短的执行时间。如果您的CUDA应用程序只使用单线程,您将运行您的应用程序:
...显然GTX965 可以更快地工作。从理论上讲,只要您的应用程序使用少于1024个内核,GTX就可以胜过K20,以防内存不是K20实际存在的瓶颈:
因此,总而言之,考虑到硬件限制,很容易“定制”CUDA应用以更好地适应一个GPU。只需要考虑内核启动参数这样简单的事情,即网格大小和块大小。
此外,根据规范,C2075同样如此,其核心时钟为1.15GHz,因此优于K20和GTX965。