当NVIDIA 2007年发布CUDA时,也许所有人都没有想到一年后的现在无论在高性能计算的企业计算领域还是在个人身边的最为热门的软件,我们都可以利用GPU或者显卡来为其提速了。对于企业来说,这一场革命,我们可以看到上千个基于CUDA的包括地质勘探、医学、数学、生命科学、金融、流体力学等运算,因为CUDA通过GPU加速而比原来高性能PC CPU加速提速几十上百倍。我们也看到,使用GPU加速,让大家IPOD,MP4中的视频节目制造时间可以缩短5-10倍,这一切正因为NVIDIA CUDA和它的硬件——GPU这一年多来的惊人发展。
什么是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? 性能:NVNVIDIA GPU为数据密集型的应用提供了超乎想象的性能。CUDA给了我们一个标准的、广泛使用的解决方案来给予新的应用前所未有的计算能力。兼容性:使用CUDA C-Compiler开发的程序将向后兼容NVIDIA的GPU。
开发人员在GPU计算方面所做的投资将立刻在现有GPU的性能上得到回报,同时也将一定会在NVIDIA以后的高性能技术中获得收益。生产力:开发者现在可以使用工业化的标准的C语言来使用他们所希望获得的GPU的计算能力。CUDA提供了完整的开发解决方案,这一方案整合了CPU和GPU,这将令开发人员非常迅速地为他们的客户提供最新的特征和更多的价值。伸缩性:使用CUDA开发的应用程序在性能和特性上可以应用于全线的NNVIDIA的GPU,从嵌入式GPU到使用多GPU的高性能专业图形解决方案。CUDA事实上已经可以在从大型的计算设备到个人消费级产品的任何层次的系统中运行。