分析:NVIDIA、CUDA与x86到底是何关系
2010-10-12 ZDnet
[导读]调研机构John Peddie Research近日撰文,对Nvidia日前宣布的CUDA-x86编译器进行了分析和评论,并探讨了CUDA、x86技术的彼此关系,特别是Nvidia究竟为什么要这么做。
著名市场调研机构John Peddie Research近日撰文,对Nvidia日前宣布的CUDA-x86编译器进行了分析和评论,并探讨了CUDA、x86技术的彼此关系,特别是Nvidia究竟为什么要这么做。
其实事情并没有现象得那么简单。Nvidia上周在GTC 2010图形技术大会上宣布的CUDA-x86编译器与其获取x86知识产权并没有任何关系。虽然这种说法在过去今年中从来没有停止过。事实上,这个所谓的CUDA-x86跨平台编译器只是用于在x86架构硬件上运行CUDA编写的应用程序。
乍一看,这似乎和Nvidia的长期策略相抵触。Nvidia一直在努力将应用程序的运行从x86 CPU转移到GPU上,那么为什么又要将自家硬件专属的CUDA程序移植到x86平台上呢?
其实,Nvidia此番并不是要帮助CUDA开发人员,而是有新的目标。
Nvidia官方宣称,CUDA-x86编译器的目的是降低开发人员CUDA入门的难度。现在绝大部分的计算基础架构都是基于x86处理器的,想一下子转入GPU并行计算并没有那么简单,CUDA-x86就在两者中间搭建了这么一座桥梁。通过帮助程序员们首先在x86平台上开发、调试和运行CUDA程序,或者提供第二辅助平台,可能就会有越来越多的人对GPU CUDA感兴趣,并为之投入更多资源。
随着更多的开发人员投身于GPU计算,Nvidia也只要让CUDA程序在x86平台上能够正常工作即可,没必要针对性地专门优化。举个例子,Intel Sandy Bridge、AMD Bulldozer新架构处理器都会支持双倍浮点性能的SIMD AVX指令集,可大幅提升程序性能,但是Nvidia就用不着支持它——当然不是说Nvidia肯定不会支持,只是说这么做会有违其初衷。
归根到底,CUDA-x86程序会比那些不支持CUDA但针对x86架构优化的程序要慢,甚至可能会慢很多,于是开发人员分别在x86 CPU、Nvidia GPU上运行CUDA程序就会看到明显的差距,而这种提速正好证明了Nvidia的观点:在浮点密集型应用上GPU要比CPU快得多。
所以说,转到GPU上就可以看到十倍甚至上百倍的性能提升,这不仅会让越来越多的开发人员青睐Nvidia硬件,更有利于Nvidia的GPU计算优势市场宣传。这,才是所谓CUDA-x86编译器的真正意图。