什么运算速度可以达至一般四核心CPU的100倍以上?
NVIDIA 26 日于美国圣荷西举行的 NVISION 08 论坛上, NVIDIA 首席科学家 David Kirk 讲述未来 CUDA 技术发展方向,认为 GPU 不只是为了视觉运算而生,未来角色将会进一步强化,不仅针对财经、科学及设计模拟运算领域,更能针对一般主流应用软件进行加速, NVIDIA GPU 将可协助 CPU 运算加速,并成为未来 PC 内部不可或缺的组件。
David Kirk 指出 CUDA 技术正在高速成长,其 CUDA Compiler ( 翻译器 ) 由 2007 年 7 月仅有 ~ 2000 次下载,提升至 2008 年 4 月的 ~ 55,000 次,证明有更多程序设计师正在考虑采用 CUDA 技术,并以 GPU 进行运算单元取代统传的单纯 CPU 运算模式。
事实上, GPU 拥有大量的运算单元,而且可以作平行运算 ( Parallel Execution ) , CUDA 线程是极之轻型并且不会出现大量的 Overhead ,加上拥有实时切换的特性,令 GPU 同一时间可以处理超过 1000 个以上的 CUDA 线程,并且效率十分之高,指令周期可以达至一般四核心 CPU 的 100 倍以上。
此外, CUDA 程序是采用业界主流语言的 C Language ,并与 CPU 所采用的 C Language 完全相同,因此现有的程序设计师要为 CUDA 编写程序并不困难,只是程序设计师要顾及平行运算应用,由比较直述的 Standard C Code 改为能同一时间进行多个线程的 Parallel C Code ,才能完全发挥 GPU 拥有大量运算单元的优势。
很多人会把 NVIDIA 的 CUDA 与 AMD 的 GPGPU 混为一谈,但其实两者并不一样, AMD 的 GPGPU 是以 GPU 的现有绘图架构,并采用 OpenCL 接口让 GPU 进行绘图以外的运算,而 NVIDIA 则是 GPU 拥有两个模式,一个是 GPU Mode ,另一个是 Computing Mode ;在 Computing Mode 下 GPU 并不需要 OpenCL 接口,能直接执行 C 程序,因此效率相比对手更高。
David Kirk 以 Folding@Home 为例,虽然现时只有 2.43 万台 PC 采用 CUDA 版本的 Folding@home ,所占比例不到 1% ,但却拥供了 1.4 Petaflops 的运算能力,这相等于由 CPU 运算的 5 倍,不少研究人员相信未来将会有更多科学运算应用采用 GPU 作运算加速,令研究速度大幅提升,超级计算机服务器将会由单纯 CPU 架构,变成 CPU + GPU 架构,现时更有超过 40 家美国大学教授如何使用 CUDA 进行平行运算,前景令人乐观。
值得注意的是,一般消费者会以为 CUDA 仅会应用于科学应用上,但其实 CUDA 已经开始进入一般主流应用软件进行加速,包括影像编码程序 BadaBOOM Media Converter ,另外刚发布的 CUDA 2.0 套件中,拥有支持 CUDA 的 Adobe Photoshop 影像过滤及变更的 plug-in 套件,未来 6 个月将会有约 20 ~ 30 个应用软件加入 CUDA 运加速支持。
为了让 CUDA 应用更见普及, David Kirk 透露未来 CUDA 除了支持 C Language 外,将进一步支持 C++ 及 Fortran Language 这些都是业界中最广泛应用的程序语言。 CUDA 2.1 版本更会支持 Many-Core + Multi-Core 运算,让系统效能可进一步强化。
David Kirk 认为,如果 CUDA 仅拥比 CPU 快 2-3x ,这其实并不多,根本无需要去为它而重新编写,如果是比 CPU 快 5-10x ,部份程序可能只会为部份程序重写以引入 CUDA 的好处,但 CUDA 所带来的是比 CPU 快 100x+ 的速度,程序设计师是无法抵挡 CUDA 带来的好处, NVIDIA 的最目标是 CUDA Everywhere 。
有 PC 业者指出,在 Intel 与 AMD 的平台化政策下, NVIDIA 的确处于劣势,而 CUDA 正好是它的最佳武器,亦是唯一出路,如果 CUDA 成功冲出处理器双雄的包围,的确未来每一台 PC 也会内建 NVIDIA GPU 也未必没可能,因此 CUDA 的成功关键将是它普及至一般主流应用软件的时间先机,能否在 Intel Larrabee 推出前抢先卡位。