在阅读有关CUDA编程的教程时,有很多优化(例如循环展开,预取,平铺,指令混合)和调优技术(动态分区,线程粒度等)。如#34;编程大规模并行处理器"由Kirk和Hwu。对于试图说明GPU比CPU更快的人来说,他们可能会大量优化他们的GPU代码,而不是那么多地优化他们的CPU代码。代码优化的差异对GPU和CPU之间的性能差异有多大影响?
答案 0 :(得分:1)
未优化的CPU代码和优化的GPU代码之间的差异几乎可以任意大,但最近报道的1000x并不少见。
你可能会发现“揭开100X GPU与CPU的神话:对CPU和GPU吞吐量计算的评估”(http://dx.doi.org/10.1145/1816038.1816021)相关阅读。
NVIDIA论坛也讨论了这个主题:https://devtalk.nvidia.com/default/topic/469491/intel-paper-debunking-the-100x-gpu-vs-cpu-myth/。
我写了几篇比较CPU和GPU实现的论文(http://dx.doi.org/10.1109/SAAHPC.2011.28,http://pubs.acs.org/doi/abs/10.1021/ct100584w)。当我展示这项工作时,我会通过一个简单但准确的相关算法性能模型引导观众,该模型为GPU所见的加速建立了正确的期望。
任何CPU与GPU的比较必须包括算法的完整描述和两种处理器类型之间的实现差异,并将观察到的相对性能与某种形式的性能模型进行比较,以便可信。