GCD 和 OpenCL 为软件性能带来显著提升

根据来自 MacRumors 的消息,虽然还要过一段时间才能看到 OpenCL 和新近开源的 GCD (Grand Central Dispatch)所带来的影响,但是目前的进展已经让人颇为惊喜了。

MovieGate 是一款用来编码视频和创建 DVD 的软件,开发者克里斯托弗·迪科曼利用了雪豹中新增入的 OpenCL 和 GCD 功能来优化软件,并与运行在 Leopard 上的旧版软件做对比。测试机是一台2007 年版的 Mac Pro ,配置是英特尔四核酷睿2处理器,运行速率 2.66GHz 以及 Geforce 8800 GT 显卡。

结果编码速度大约提高了 50% ,同时由于部分工作交由显卡执行,CPU 占用率也随之下降了。在雪豹中,MPEG-2 编码速度是 150 帧每秒,在 Leopard 中的编码速度则为 104帧每秒,编解码环境中 CPU 的负载对比图见下。

cpuload_chart.jpg

也许是由于 GCD 的作用,CPU 在编码的时候被压榨到滴水不剩,负载率达到了 130% 。另一个想法,能否把解码中剩余的 30% 的处理能力利用起来,而进一步提高速度呢?

虽然 GCD 与 OpenCL 进一步提高了编写程序的复杂度,短时间看起来很难大范围推广,但我们很高兴看到终于有人迈开了实质化的一步。