NVIDIA发布的CUDA 2.0开发包中蕴含了PhysX物理加速技术,NVIDIA的意向是使用GPU通过CUDA架构来实现物理加速.....
不得不提 CUDA并行计算的应用
在大部分非专业人士面前,CUDA显得有些神秘,简单地说,CUDA其实是基于NVIDIA显卡的一个C语言环境,是计算标准设备架构,是一个基础性可用于开发的架构;对于开发人员来说,可以用其发展衍生,处理一系列密集型数据,可以用在工业,农业,图形多媒体,经融学分析等很多方面。在CUDA的专门网站上(http://cuda.csdn.net/)我们可以看到CUDA运用到终端的大量实际案例,在地质学,医学,气象,经济学分析……包涵各个方面。
基于NVIDIA GPU的CUDA,主要在大规模并行计算上有天然的优势,何谓并行计算:同时使用多种计算资源解决计算问题的过程。这就决定了,要利用CUDA更好地计算,必须是那些可以分成很多个独立线程的计算,在这方面,NVIDIA GPU拥有远远超越CPU的能力。这样说不是贬低CPU的作用,而是说GPU和CPU擅长做的不一样,GPU更擅长于并行计算,尤其是多线程并行计算。CPU和GPU是并存的,分工协助的,而不是谁来取代谁。GPU拥有强大的并行计算的能力,这是CPU无发比拟的,当然CPU也有它的优势,总之,GPU是并行计算耀眼的明星。
随着显卡的发展,GPU越来越强大,目前中高端统一渲染架构的GeForce GPU拥有64-240个单独的ALU,因此非常适合并行计算,而且浮点处理能力也远远优于目前的多核CPU,加上GPU为显示图像做了优化。在众多计算领域上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。CUDA(Compute Unified Device Architecture)工具包是一种针对支持CUDA功能的GPU(图形处理器)的C语言开发环境,未来还将发布Fortran语言版本。
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。跟以往的GPGPU概念不同的是,CUDA是一个完整的解决方案,包含了API、C编译器等,能够利用显卡核心的片内L1 Cache共享数据,使数据不必经过内存-显存的反复传输,shader之间甚至可以互相通信。对数据的存储也不再约束于以往GPGPU的纹理方式,存取更加灵活,可以充分利用stream out特性。以上几点都将大大提高GPGPU应用的效率。例如,在游戏中我们可以使用CUDA来让GPU承担整个物理计算,而玩家将会获得另他们感到惊奇的性能和视觉效果。另外,用于产品开发和巨量数据分析的商业软件也可以通过它来使用一台工作站或者服务器完成以前需要大规模的计算系统才能完成的工作。这一技术突破使得客户可以任何地方进行实时分析与决策。同时,一些以前需要很先进的计算技术来达到的强大计算能力的科学应用程序,也不再受限在计算密度上;使用CUDA的计算可以在现有的空间里为平台提供更强大的计算性能。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
CUDA工具包推出已有1年,它的推出马上受到了众多软件/游戏开发商以及科研机构和程序爱好者的欢迎,NVIDIA方面也将发布最新的CUDA 2.0版本。相信在未来,CUDA将会受到越来越多的领域的支持。目前,支持CUDA环境的GPU主要有采用统一渲染架构的显示核心。
网友评论