转贴: NVIDIA CUDA —— GPU计算的革命 - 一碗鸡蛋壳
转贴: NVIDIA CUDA —— GPU计算的革命
AMD的相关技术叫Brook+,去官网也没找到相关的文章,看它也没什么底气,所以就不关心了。CUDA是啥?最近尝试优化浮点运算的时候找到了CUDA,看后顿觉心中刺痛——OGL D3D 打了这么多年,如今又跑出个CUDA,额滴神啊!你要干啥!?!? 仔细以看,其实CUDA不是API...
原来CUDA主要是弥补CPU的浮点运算在密集运算环境中的缺陷的,就是通过CUDA编译器让你的C程序能够直接使用GPU进行普通运算,尤其适合大规模密集运算任务,体现强大的并行浮点运算能力! 《GPU让桌面型超级计算机不再是梦想 》提到一个实测,一个星期的工作只要一小时! 仔细感觉下, 好像也不算夸张, 可是:
假设要构建一个具有100万亿次规模的数据中心,如果完全采用基于CPU 的1U服务器,需要用到1429台四核服务器,成本高达310万美元,功耗571KW;而如果采用CPU+GPU的异构模式,则仅需要25台CPU服务器 和25台Telsa系统,仅需31万美元,功耗只有27KW。
于是觉得有必要下来几个sample耍一耍, 顺便转个文~~
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支持 为程序开发和优化提供硬件调试的性能测试的支持
转自 开发者在线 Builder.com.cn 更新时间:2008-07-03作者:physdev 来源:PhysDev论坛
再记几个:
http://server.it168.com/a2008/0728/198/000000198815_1.shtml
http://www.hardspell.com/doc/hard/76964.htm
