正在阅读:越加速反而越慢?通用计算实用性浅析越加速反而越慢?通用计算实用性浅析

2012-12-17 00:15 出处:PConline原创 作者:Valest 责任编辑:liganlin

  前言:前些年DIY玩家群体里曾经有个讨论,就是未来显卡或许也可用于计算,那么装机应该把钱投到CPU上多一点,还是投到GPU上多一点?时至今日,AMD和IntelCPU里面都已经整合了支持用于计算的GPU核心,到底这种把GPU用于计算的技术,“通用计算”,是不是能够为电脑处理加速呢?其实用性有多大?限制又在何处?今天我们就来用简单的实例分析,给大家一个更清晰的通用计算了解。

通用计算
越加速反而越慢?通用计算实用性浅析

●越加速越慢,从一个有趣的案例开始说起

  在很多人的认识里,通用计算就是CPU+GPU一起用,用GPU协助CPU进行计算,从而得到“1+1”等于或者约等于2的性能提升,加速电脑的计算速度。然而实际是这样么?我们就以一个对比测试来展开今天的话题。

通用计算测试
不加速的测试成绩(HD7850)

  我们今天使用LuxMark来作测试参考,LuxMark是一款由Jromang编写的OpenCL通用计算测试工具,基于开源的LuxRender引擎,能够有效地测试GPU和CPU的OpenCL运算性能,并且还支持CPU+GPU一起运算的加速模式,专业性、可参考性非常强,上面是HD7850单卡的测试成绩:590

通用计算测试
加速后的测试成绩(A6-3670K + HD7850)

  大家不用点开大图就可以看到这张图的成绩,475,比上面的图低很多,难道笔者是换了一张低端的显卡?点开大图大家就可以看到,其实笔者不仅没有换卡,还添加了A6-3670K处理器来协助计算!没错,这是CPU+GPU加速后的成绩,它比GPU单卡成绩还低100分有多——也就是我们今天要说的,越加速反而越慢

  到底这是怎么回事呢?通用计算不应该是用来加速的吗?为何还变慢了?下面我们先来从通用计算的知识讲起。

●重新认识“通用计算”

通用计算
通用计算:用GPU来处理CPU的任务

  通用计算是一个很广泛的概念,我们电脑DIY玩家一般说的“通用计算”指的是“GPU通用计算”,意思就是用显卡GPU来处理一些原本CPU可以处理的计算,又常被称为“异构计算”。

  目前通用计算规范主要有三种,NVIDIA独家的CUDA,微软主导的DirectCompute,苹果等多家厂商支持的OpenCL。近期有消息指出Intel下一代核显会大幅强化OpenCL性能,因此我们今天要讲的,主要就是其中的OpenCL。

-----------------------------------------------------------------------------

小提示:上图这个是Intel出的独显?

  上图是Intel的Xeon至强Phi处理器,具备多达60个核心,和一般的CPU相比,它不仅外观而且内部设计都更像GPU,但是又不是严格意义上的GPU,它是Intel设计给服务器等场合使用的从处理器,能够和服务器CPU搭配发挥惊人的计算能力,可以说是一款很好地体现通用计算理念的产品。

-----------------------------------------------------------------------------

●为什么需要通用计算

通用计算
CPU 4核 VS GPU 240核

  虽然我们已经喊“CPU性能过剩”已经好几年了,但是实际上有些时候电脑的处理速度还不能让我们满意,因此我们需要通用计算。为什么要用显卡来加速处理呢?我们看看上图就懂了,目前一般的CPU就2~4个核心,高端的6~8个,而GPU轻轻松松就有240个,悬殊的设计差异让显卡能在一些CPU处理得慢的应用中取得更高的效率,而这些应用场合就是通用计算的优势,比如文件压缩、视频转码就是典型。

  回到我们开头的问题,LuxMark的图形渲染操作是不是GPU处理更有优势呢?答案是肯定的,但是为什么CPU+GPU一起来运算,效率比单独让GPU去运算还底呢?下面我们就深入浅出给大家解析一下。

-----------------------------------------------------------------------------

1、8楼,敢把单卡跑分时的cpu写出来么?

  PConline编辑回复:笔者的确有测跑分,不过这分数有点……不解释。

A6 A6
A6-3670K纯CPU / CPU+自带显示核心:195分 / 294分

2、12楼,三大通用,到底哪个强一点?

  PConline编辑回复:就效率而言,NVIDIA的CUDA是最好的,毕竟它只要针对自家的显卡优化好就行了,而OpenCL和DirectCompute,由于面向非常广泛的硬件,实际编程起来要相对难一些,而且不可能针对所有硬件都有很好的性能优化。

-----------------------------------------------------------------------------

键盘也能翻页,试试“← →”键

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
热门排行

DIY论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品