前言:前些年DIY玩家群体里曾经有个讨论,就是未来显卡或许也可用于计算,那么装机应该把钱投到CPU上多一点,还是投到GPU上多一点?时至今日,AMD和Intel的CPU里面都已经整合了支持用于计算的GPU核心,到底这种把GPU用于计算的技术,“通用计算”,是不是能够为电脑处理加速呢?其实用性有多大?限制又在何处?今天我们就来用简单的实例分析,给大家一个更清晰的通用计算了解。
●越加速越慢,从一个有趣的案例开始说起 在很多人的认识里,通用计算就是CPU+GPU一起用,用GPU协助CPU进行计算,从而得到“1+1”等于或者约等于2的性能提升,加速电脑的计算速度。然而实际是这样么?我们就以一个对比测试来展开今天的话题。 我们今天使用LuxMark来作测试参考,LuxMark是一款由Jromang编写的OpenCL通用计算测试工具,基于开源的LuxRender引擎,能够有效地测试GPU和CPU的OpenCL运算性能,并且还支持CPU+GPU一起运算的加速模式,专业性、可参考性非常强,上面是HD7850单卡的测试成绩:590。 大家不用点开大图就可以看到这张图的成绩,475,比上面的图低很多,难道笔者是换了一张低端的显卡?点开大图大家就可以看到,其实笔者不仅没有换卡,还添加了A6-3670K处理器来协助计算!没错,这是CPU+GPU加速后的成绩,它比GPU单卡成绩还低100分有多——也就是我们今天要说的,越加速反而越慢。 到底这是怎么回事呢?通用计算不应该是用来加速的吗?为何还变慢了?下面我们先来从通用计算的知识讲起。 ●重新认识“通用计算” 通用计算是一个很广泛的概念,我们电脑DIY玩家一般说的“通用计算”指的是“GPU通用计算”,意思就是用显卡GPU来处理一些原本CPU可以处理的计算,又常被称为“异构计算”。 目前通用计算规范主要有三种,NVIDIA独家的CUDA,微软主导的DirectCompute,苹果等多家厂商支持的OpenCL。近期有消息指出Intel下一代核显会大幅强化OpenCL性能,因此我们今天要讲的,主要就是其中的OpenCL。 ----------------------------------------------------------------------------- 小提示:上图这个是Intel出的独显? 上图是Intel的Xeon至强Phi处理器,具备多达60个核心,和一般的CPU相比,它不仅外观而且内部设计都更像GPU,但是又不是严格意义上的GPU,它是Intel设计给服务器等场合使用的从处理器,能够和服务器CPU搭配发挥惊人的计算能力,可以说是一款很好地体现通用计算理念的产品。 ----------------------------------------------------------------------------- ●为什么需要通用计算 虽然我们已经喊“CPU性能过剩”已经好几年了,但是实际上有些时候电脑的处理速度还不能让我们满意,因此我们需要通用计算。为什么要用显卡来加速处理呢?我们看看上图就懂了,目前一般的CPU就2~4个核心,高端的6~8个,而GPU轻轻松松就有240个,悬殊的设计差异让显卡能在一些CPU处理得慢的应用中取得更高的效率,而这些应用场合就是通用计算的优势,比如文件压缩、视频转码就是典型。 回到我们开头的问题,LuxMark的图形渲染操作是不是GPU处理更有优势呢?答案是肯定的,但是为什么CPU+GPU一起来运算,效率比单独让GPU去运算还底呢?下面我们就深入浅出给大家解析一下。 ----------------------------------------------------------------------------- 1、8楼,敢把单卡跑分时的cpu写出来么? PConline编辑回复:笔者的确有测跑分,不过这分数有点……不解释。 2、12楼,三大通用,到底哪个强一点? PConline编辑回复:就效率而言,NVIDIA的CUDA是最好的,毕竟它只要针对自家的显卡优化好就行了,而OpenCL和DirectCompute,由于面向非常广泛的硬件,实际编程起来要相对难一些,而且不可能针对所有硬件都有很好的性能优化。 -----------------------------------------------------------------------------
|
正在阅读:越加速反而越慢?通用计算实用性浅析越加速反而越慢?通用计算实用性浅析
2012-12-17 00:15
出处:PConline原创
责任编辑:liganlin
键盘也能翻页,试试“← →”键
本文导航 | ||
|