NVDIA CUDA
---------GPU计算的革命
NVIDIA CUDA技术是基础的新的计算架构,这个架构将使用GPU来解决一些消费、商业和技术工业领域复杂的计算问题。CUDA(计算标准设备架构)技术将通过革命性的计算架构来使用NV的gpu的强大的处理能力,从而给数据密集型的应用提供了完全不受限制的全新的计算能力。该架构将通过标准的c语言来提供大量的高性能指令以及简洁的程序开发方式,从而允许开发者创建一个解决办法,该办法将消耗更少的时间为数据密集型的处理提供足够精确的解答。
什么是CUDA?
使用了CUDA的GPU计算通过标准的C语言将下一代NV GPU的总多计算特性结合到一起。在这之前的GPU是基于“流式着色程序”的,CUDA则使用C语言,通过“线程”来创建应用程序,这类似于CPU上的多线程程序。相比较于仅能有很少线程同时工作的多核CPU的而言,NV GPU的特性可以让CUDA同时执行数千个线程,这将令我们的应用能处理更多的信息流。
CUDA所提供的最重要的创新在于,它使得工作在GPU上的线程可以协作解决问题。在线程间通讯实现以后,CUDA将允许应用程序更加高效的执行。由NV GPUs的支持,CUDA有一个直接在GPU上的并行计算缓存,它用于保存频繁使用的信息。在GPU上保存信息可以让计算线程即刻得到共享数据而不是去漫长的等待off-chip的DRAM上的数据。它能让用户实时的计算出复杂问题的答案。
通过CUDA应用程序所能获得的好处
CUDA GPU运算广泛适用于需要处理大量数据的应用。例如,在游戏中我们可以使用CUDA来让GPU承担整个物理计算,而玩家将会获得另他们感到惊奇的性能和视觉效果。另外,用于产品开发和巨量数据分析的商业软件也可以通过它来使用一台工作站或者服务器完成以前需要大规模的计算系统才能完成的工作。这一技术突破使得客户可以任何地方进行实时分析与决策。同时,一些以前需要很先进的计算技术来达到的强大计算能力的科学应用程序,也不再受限在计算密度上;使用CUDA的计算可以在现有的空间里为平台提供更强大的计算性能。
为何使用CUDA?
性能:NV GPU为数据密集型的应用提供了超乎想象的性能。CUDA给了我们一个标准的、广泛使用的解决方案来给予新的应用前所未有的计算能力。
兼容性:使用CUDA C-Compiler开发的程序将向后兼容NV的GPU。开发人员在GPU计算方面所做的投资将立刻在现有GPU的性能上得到回报,同时也将一定会在NV以后的高性能技术中获得收益。
生产力:开发者现在可以使用工业化的标准的C语言来使用他们所希望获得的GPU的计算能力。CUDA提供了完整的开发解决方案,这一方案整合了CPU和GPU,这将令开发人员非常迅速地为他们的客户提供最新的特征和更多的价值。
伸缩性:使用CUDA开发的应用程序在性能和特性上可以应用于全线的NV的GPU,从嵌入式GPU到使用多GPU的高性能专业图形解决方案。CUDA事实上已经可以在从大型的计算设备到个人消费级产品的任何层次的系统中运行。
使用CUDA的软件开发
CUDA开发包是一个完整的使用GPU的软件开发方案。在SDK包含了标准的FFT和BLAS库、使用NV GPU的C编译器和运行时驱动。CUDA运行时驱动是与常用的同DX和GL协同工作的驱动独立的。同时CUDA对Linux和XP的支持也是相同的。
技术特性
CUDA为线程计算提供了一个统一的硬件和软件解决方案来使用支持CUDA的GPU
可支持CUDA的GPU为高性能计算提供并行数据缓冲和线程执行管理器的支持
可以在GPU上使用的标准C语言
提供了标准数值库FFT和BLAS
为计算提供了独立的CUDA驱动
优化了GPU和CPU之间的数据通信路径
CUDA驱动可以在图形设备之间互操作
支持 LINUX 与 XP 操作系统
从高性能的专业图形解决方案到移动和嵌入式GPU均能使用
为高计算密度程序内建多GPU支持
为程序开发和优化提供硬件调试的性能测试的支持