楼主: 图腾部落

第二期有奖讨论:CUDA你知道多少

[复制链接]
论坛徽章:
0
151#
发表于 2009-12-24 23:19 | 只看该作者

CUDA在专业音频处理上的应用

GPU Impulse Reverb一定会在电脑音乐发展历史上记下一笔,它是目前第一款可以利用显卡来运算的效果器插件,这意味着你可以用它来得到高精度的卷积混响效果,而不费CPU一丝一毫之力!
GPU Impulse Reverb利用NVidia显卡的CUDA运算技术,可运行在NVIDIA的显卡上,推荐使用G80系列显卡(G8xxx及以上型号的显卡),并使用最新的支持CUDA的驱动。
GPU Impulse Reverb很简单,就是读取一个8-32bit的立体声wav文件,将它作为脉冲响应来运算卷积混响效果。    难道它的声音就比其它卷积混响效果器软件要好吗?目前还没有详细对比,但可以肯定的是:你完全解放了CPU资源(虽然GPU Impulse Reverb也需要消耗1%的CPU资源,但几乎可以忽略不计)理论上你可以得到音质更好的混响效果,因为卷积是一种非常复杂的算法,目前的卷积混响效果器软件都会在运算精度上有所妥协。
GPU Impulse Reverb只是实验的第一步,这虽然只是一小步,但确实是电脑音乐发展历史上的一大步!

使用道具 举报

回复
论坛徽章:
0
152#
发表于 2009-12-24 23:20 | 只看该作者

CUDA应用:生命科学的研究

CUDA能否带来高性能计算、企业计算的革命,而革命其实已经在某些领域发生。最为著名的是在生命科学领域,NVIDIA GPU带来的几十上百倍的计算速度让很多研究工作从不可能变成了现实。例如,在癌症研究中重碳酸盐跟踪数据工作,便是很好的例子。
我们知道在人体中平衡酸碱度的重碳酸盐,可被癌变组织分解成二氧化碳,从而使癌变部位的酸度比周围部位高。研究人员说,重碳酸盐的这一特性可用来帮助检测癌症。核磁共振成像技术能追踪重碳酸盐在人体中发生的化学变化,因此能在早期帮助诊断癌症。参与研究的凯文·布林德尔教授说,核磁共振成像技术能帮助标出患者体内PH(酸碱度)值不正常的部位,从而确定病灶部位。
为了跟踪这些数据,如果使用原有CPU运算,以常见项目为例可能需要一周左右时间,而这还必须是高性能计算机多个CPU集群完成,如果使用普通PC,那这个研究根本没有意义。而GPU可以成百倍的速度来完成整个工作,相对现有HPC来说,占地面积极小(不可能让医院拥有一个HPC机房),一个8GPU的1U大小基于Tesla的服务器显然空间占用上更合理。同时,从运算速度和能耗来说,也绝对优于CPU为主的HPC。

使用道具 举报

回复
论坛徽章:
0
153#
发表于 2009-12-24 23:27 | 只看该作者

CUDA,让你梦想成真

CUDA,如今这个名词越来越多的出现在了我们的眼里。虽然说,目前来看,CUDA可能和我们目前的电脑应用并没有太明显的关系,不过相信随着未来越来越多的软件支持,CUDA最终将会走入我们每个人的电脑应用当中。前面我们说的那个例子,虽然现时来看并不太可能实现,不过,我们却很有可能在下一代的PhotoShop当中看到这一功能付诸实践。
在Photoshop Creative Suite Next上通过GPU、物理加速的支持。Photoshop打开一个2GB、4.42亿像素的图像文件将非常简单,对图片进行缩放、旋转也不会存在任何延迟。这就是GPU的强大运算能力的体现,而想要实现这一功能,则需要借助于一个接口——CUDA。
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。

  在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。

  CUDA诞生的意义以及CUDA的应用领域

  ◆CUDA诞生的意义:

  在传统的发展路线中,电脑显示卡一直在为游戏和3D应用程序服务,但是竞争的激烈、技术的飞速前进客观的成就了GPU的爆炸式发展。GPU的运算能力已经达到了非常高的水平,甚至在浮点运算能力上已经大幅度超越最高级别的处理器产品。

  研究表明,从1993年开始,GPU的性能以每年2.8倍的速度增长,这个数字大大超过了PC其他子系统的发展速度。一块工作频率为3.0GHz的Pentium 4处理器,其晶体管数目为1.25亿个,即使算上SSE指令集的SIMD(单指令并发多数据流,这种情况是浮点吞运算下吐能力的最理想状况),也只有6GFlops的峰值浮点处理能力,而同期的一块NV40 GPU就有2.22亿个晶体管,峰值浮点运算能力很轻易超过40GFlops,而时间发展的今日,GPU的峰值浮点运算能力已经接近甚至超过了TFlops(1000GFlops)级别,GPU的性能可想而知。
『早在G80时代NVIDIA就已经提出了CUDA的概念』

  而想要实现这些功能,必然需要显卡与应用程序之间有一个良好的程序接口,这就是CUDA。其时早在G80时代,NVIDIA就提出了CUDA的概念,只不过因为那时候CUDA还未成型,所以没有公布,而现在,基于CUDA的应用程序越来越多,因此到了GTX200系列芯片的发布,CUDA才同时正式大范围的推广并介绍给普通消费者。

  ◆CUDA的应用范围:

  由于GPU的特点是处理密集型数据和并行数据计算,因此CUDA非常适合需要大规模并行计算的领域。目前CUDA除了可以用C语言开发,也已经提供FORTRAN的应用接口,未来可以预计CUDA会支持C++、Java、Python等各类语言。虽然现在更多的应用在游戏、图形动画、科学计算、地质、生物、物理模拟等领域,但是由于GPU本身的通用特性和CUDA提供的方便的开发环境,我们可以放开思维的束缚,想象几种可能的应用场景:

  搜索引擎中的排序、文本分类等相关算法的应用

  数据库、数据挖掘

  电信、金融、证券数据分析

  数理统计分析

  生物医药工程

  导航识别

  军事模拟

  无线射频模拟

  图像语音识别

  这些领域内的计算都是属于大规模的数据密集型计算,因此我们完全有理由相信,在CUDA的驱动下,GPU能够在这些领域建立一个属于自己的新时代。

  应用开发很简单,CUDA的软硬件需求

  CUDA是一个全新的软硬件架构,可以将GPU视为一个并行数据计算的设备(通俗来讲,我们可以把它简单的看做是一个用途专一的CPU阵列),对所进行的计算进行分配和管理。

  并且,CUDA最大的优势在于,无需像传统GPGPU那样必须将计算映射到API接口上(也就是显卡名词当中常见的OpenGL或者Direct 3D),开发人员只需要懂得C语言,就可以开始对CUDA的软件进行开发了。而对于用户而言,更加简单,只要安装好驱动程序,然后就可以运行基于CUDA开发的程序了。

我们来看看对于CUDA的卡发者和用户群来说,都需要哪些硬件设施。CUDA支持的GPU (CUDA-enabled GPU)包含GeForce、Quadro和Tesla三个系列:GeForce是NVIDIA公司面向消费市场的GPU产品;Quadro是面向专业图形市场的GPU产品;而Tesla则是专门面向GPU计算的产品,它不具备图形输出的功能,因此不能作为图形卡来使用。这三个产品面向不同的应用领域,因此建议在开发和部署CUDA应用的时候需要考虑到产品的应用决定采用不同的GPU。
NVIDIA的CUDA-enabled GPU具有一个完整的产品线,各种用户都可以从中选择到合适自己的产品。对于有高密度计算能力需求的用户来说,Quadro和Tesla则是必须的选择。诸如Quadro Plex 1000 Model S4和Tesla S870在一个1U高度的标准服务器机架机箱内装备了四个GPU,每个GPU具备128个stream processor以及1.5GB的存储器,每个1U装置总共具备512个stream processor和6GB存储器,非常适合于有高密度、大规模数据计算需求的用户。CUDA-enabled GPU的家族还在不断地扩大之中,随着NVIDIA新一代GPU的发布,更多的产品也将加入到这个行列中来。

  另外,CUDA对于GPU产品线还涵盖了从笔记本电脑到高性能多GPU的系统中。也就是说,对于普通用户来讲,我们使用的普通笔记本或者台式电脑,只要拥有一块NVIDIA的GeForce 8以上级别的显卡都能够支持CUDA。

  ◆软件需求:

  对于普通的应用者来说,对于软件方面,只要安装了一款能够支持CUDA的驱动程序,就可以了。接下来需要做的就是使用那些能够支持CUDA的软件。对于目前来说,能够支持CUDA的软件还是有些偏少,不过随着越来越多的软件开发者加入CUDA的行列,日后能够支持CUDA的软件将会逐渐完善起来。

而对于CUDA的开发者来说,开发CUDA的软件也非常简单。开发者只要会运用C语言编程,就能够顺利的学会CUDA。因为CUDA就是基于C语言为基础的,CUDA可以支持多种运行在Windows XP和Linux操作系统下的C开发系统诸如Microsoft Visual C++等。CUDA工具集的核其实心是一个C语言编译器,CUDA开发环境的具体内容包括:

  · nvcc C语言编译器

  · 适用于GPU(图形处理器)的CUDA FFT和BLAS库

  · 分析器

  · 适用于GPU(图形处理器)的gdb调试器(在2008年3月推出alpha版)

  · CUDA运行时(CUDA runtime)驱动程序(目前在标准的NVIDIA GPU驱动中也提供)

  · CUDA编程手册

  除了编译器外,NVIDIA提供了一些非常实用的函数库。目前有两个数字计算库包含在已经发布的软件包里面,分别是CUDA FFT和CUDA BLAS子程序库。CUDA FFT是快速傅立叶变换(Fast Fourier Transform, FFT)的子程序库,快速傅立叶变换是信号处理之类应用的基本算法。BLAS是基本线性代数的子程序库,提供了高效率的线性代数计算子程序。CUDA FFT和BLAS都是针对GPU高度优化的高性能数学函数库,在CUDA程序中可以方便调用,节省大量的代码编写时间。

  另外,CUDA所有软件包都可以从NVIDIA公司的网站上免费下载。NVIDIA还专门建立了一个针对CUDA的名为CUDA Zone社区,网址是 http://www.nvidia.com/object/cuda_home.html。它包含各种程序、文档的下载,并且有几个针对开发者的论坛,里面有专人为各位开发者进行服务,解答各种疑问。

除此以外,NVIDIA提供了开发指南和大量的第三方应用实例,所有这些资料均可以从NVIDIA CUDA Zone里面下载。

  为何使用CUDA?CUDA都有哪些优势

  首先要说明的一点是,CUDA尤其擅长的是某一方面,而并不是面面俱到。CUDA的开发是基于NVIDIA GPU平台的,因此发挥GPU的并行优势才是最主要的目的。

  理论上讲,CUDA对于非图形的计算并没有什么限制,不过它还是相对比较适合高度并行的计算,毕竟这是它的长处。这里所谓的高度并行的数量级为上千个,相对于CPU来讲,双核的CPU也许几个线程就能充满它整个的计算单元,然而CUDA-enabled GPU却能够容纳上千个线程(也就是GPU中数百个SP单元的功力),所以常遇到的高性能计算领域的问题就特别适用于CUDA,而之前通常采用计算机集群的方式来进行计算。

  而目前GPU已经发展到十分强大的地步,从GeForce6开始,就能够支持比较复杂的控制指令,比如条件转移、分支、循环和子程序调用等。而到了新一代的显卡,GPU的程序控制能力又增强了很多,支持的程序长度也得到了更大的扩展,也就是说利用GPU还是可以写一些比较复杂的程序。

  当然CUDA也有其弱势的地方,其还是主要去做那些能够分成很多个独立线程的数值计算。比如说矩阵的乘法计算,矩阵相对应的元素的计算是没有什么联系的,可以很多个线程同时送入很多个处理器进行并行处理,这就非常适合于用CUDA来解决。当然并不是所有的事情CUDA都能够很好地解决,比如像操作系统这样复杂的指令和纷繁的分支循环而又用很少的线程来处理,这显然就不是CUDA的强项了。高度并行的计算是CUDA的技术特性之一。

『GPU的架构非常合适进行大规模的并行计算』

  CUDA已经应用在很多领域,包括在通用计算中的一些GPU加速,游戏中的物理模拟等等,而在科学计算中,CUDA可发挥的功效就更大了。比如有限元的计算、神经元的研究计算、地质分析等等科学研究的领域;当然目前GPU计算的应用还是处于一个早期的阶段,大部分CUDA应用都是专业人员和相关的程序员在开发,随着CUDA的广泛推行,以后会有实际的基于CUDA的程序,更多的程序员能够加入进来,并且开发一些可以给大家日常应用带来好处的程序,只要有支持CUDA的GPU就能够利用到GPU计算的好处。

  最后来说明一下某些读者对于CUDA的误解,可能有人认为“有了GPU之后CPU就不需要了”,这也是不对的。显然,GPU和CPU还是做不同的工作的,GPU的计算主要集中在高效率低成本的高性能并行计算,所以事实上在一个系统里面,一个高效的GPU配合一个高效的CPU,整体的效率还是会有明显提升的。

  目前能够支持CUDA的应用软件介绍(一)在我们了解了CUDA的需求之后,对于本文的绝大多数读者来说,他们更想要了解的应该就是CUDA对于我们普通用户究竟是否有实际意义,并且,目前真的又能够支持CUDA的应用程序么?这些程序是否如同前面所描述的那么好?下面我们就先来简单了解一下目前常见的几款能够支持CUDA的应用软件:

  ◆ Google earth需要3D加速

  Google earth是一款3D地图显示软件,它能够将地球上某一区域的地貌,以3D图像的形式展现出来。这款软件读者都很熟悉,早期的Google earth从2D起步,但是随着深入发展和商业应用,这款软件也进入了3D化,很显然,这类软件将会逐渐成为我们今后生活的必备软件。

目前能够支持CUDA的应用软件介绍(二)

  ◆ 连PDF都需要GPU加速

  随着计算机的发展,图形、图像的显示成为越来越重要的工作。现在连阅读传统的PDF文件,都离不开GPU的加速了。早在2007年,Adobe就与NVIDIA展开合作,推出了支持GPU加速的PDF版本。

整个从起点到终点都是3D显示周围的实物,其中包括耸立的建筑物、街道等等,如果有NVIDIA GPU的图形加速,可以让这个过程非常流畅。

  实际检验GPU能力——视频编码:Badaboom

  进行视频编码的操作我们平时经常用到,例如我们要将从网络上下载或者从DVD上获得的视频文件进行重新的编码压缩,才能传到我们手机、IPOD、iPhone以及PSP中观看。一般情况下视频编码完全是由CPU进行计算处理,CPU性能越强,编码速度越快。

  不过在应用CUDA技术的GeForce GTX280上,我们可以使用GPU的强大性能来进行视频编码。经过实测,其速度要比CPU编码超出数倍。

使用道具 举报

回复
论坛徽章:
0
154#
发表于 2009-12-25 09:25 | 只看该作者
从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动(表2)。
开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库——CUFFT(离散快速傅立叶变换)和 CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。
由于目前存在着多种GPU版本的NVIDIA显卡,不同版本的GPU之间都有不同的差异,因此驱动部分基本上可以理解为是CUDA-enable的GPU 的设备抽象层,提供硬件设备的抽象访问接口。CUDA提供运行期环境也是通过这一层来实现各种功能的。目前基于CUDA开发的应用必须有NVIDIA CUDA-enable的硬件支持,NVIDIA公司GPU运算事业部总经理Andy Keane在一次活动中表示:一个充满生命力的技术平台应该是开放的,CUDA未来也会向这个方向发展。由于CUDA的体系结构中有硬件抽象层的存在,因此今后也有可能发展成为一个通用的GPGPU标准接口,兼容不同厂商的GPU产品

使用道具 举报

回复
论坛徽章:
0
155#
发表于 2009-12-25 09:27 | 只看该作者
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动(表2)。
开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库——CUFFT(离散快速傅立叶变换)和 CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。
由于目前存在着多种GPU版本的NVIDIA显卡,不同版本的GPU之间都有不同的差异,因此驱动部分基本上可以理解为是CUDA-enable的GPU 的设备抽象层,提供硬件设备的抽象访问接口。CUDA提供运行期环境也是通过这一层来实现各种功能的。目前基于CUDA开发的应用必须有NVIDIA CUDA-enable的硬件支持,NVIDIA公司GPU运算事业部总经理Andy Keane在一次活动中表示:一个充满生命力的技术平台应该是开放的,CUDA未来也会向这个方向发展。由于CUDA的体系结构中有硬件抽象层的存在,因此今后也有可能发展成为一个通用的GPGPU标准接口,兼容不同厂商的GPU产品

使用道具 举报

回复
论坛徽章:
0
156#
发表于 2009-12-25 09:30 | 只看该作者
CUDA引领未来并行计算

GPU超强的计算能力让它在通用计算领域大有可为,而CUDA则让它变成可能,简单易用的开发环境让CUDA主导起GPU计算的革命。
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主要有采用统一渲染架构的显示核心。

使用道具 举报

回复
论坛徽章:
0
157#
发表于 2009-12-25 10:54 | 只看该作者
GPU超强的计算能力让它在通用计算领域大有可为,而CUDA则让它变成可能,简单易用的开发环境让CUDA主导起GPU计算的革命。
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主要有采用统一渲染架构的显示核心。

CUDA的未来
首先我们从GPU的处理能力来看,现在的显卡和游戏是互相推动的发展,游戏需要更强劲的GPU,GPU为了满足游戏的需求也必须要不断的升级,可以预计未来GPU计算能力还会继续不断的增加。那么现在对于CUDA的开发者来说,CUDA学习还有CUDA的软件能够随着GPU的性能提升而获利。
目前已发布软件众多的CUDA技术的软件,比如鼎鼎大名的PhotoShop CS4,根据NVIDIA表示在未来一段时间里也将会有不少其他方面的CUDA软件将出现。
视频功能的日渐丰富是当今计算机发展的主流趋势,这些软件通过GPU 的提升可以明显的得到更快、更连贯的显示效果。而这些性能的改变单靠提升CPU的运算性能,是无法完全实现的。可以说,CUDA将GPU强大的浮点运算能力转化为全新的应用方式更加简单,将成为PC机正在经历的一场全新变革;我们的数字生活也将会因CUDA开发GPU强大运算能力而步入全新的视觉时代。未来随着更多的软件开发人员加入CUDA开发GPU强大的运算能力,CUDA会带给我们更多的惊喜。未来CUDA带来一个新的GPU使用方式。

使用道具 举报

回复
论坛徽章:
0
158#
发表于 2009-12-25 10:56 | 只看该作者
CUDA开发者软件开发包(SDK)提供了一些范例(附有源代码),以帮助使用者开始CUDA编程。这些范例包括:
· 并行双调排序
· 矩阵乘法
· 矩阵转置
· 利用计时器进行性能评价
· 并行大数组的前缀和(扫描)
· 图像卷积
· 使用Haar小波的一维DWT
· OpenGL和Direct3D图形互操作示例
· CUDA BLAS和FFT库的使用示例
· CPU-GPU C—和C++—代码集成
· 二项式期权定价模型
· Black-Scholes期权定价模型
· Monte-Carlo期权定价模型
· 并行Mersenne Twister(随机数生成)
· 并行直方图
· 图像去噪
· Sobel边缘检测滤波器
· MathWorks MATLAB® 插件 (点击这里下载)
新的基于1.1版CUDA的SDK 范例现在也已经发布了。要查看完整的列表、下载代码,请点击此处。
技术功能
· 在GPU(图形处理器)上提供标准C编程语言
· 为在支持CUDA的NVIDIA GPU(图形处理器)上进行并行计算而提供了统一的软硬件解决方案
· CUDA兼容的GPU(图形处理器)包括很多:从低功耗的笔记本上用的GPU到高性能的,多GPU的系统。
· 支持CUDA的GPU(图形处理器)支持并行数据缓存和线程执行管理器
· 标准FFT(快速傅立叶变换)和BLAS(基本线性代数子程序)数值程序库
· 针对计算的专用CUDA驱动
· 经过优化的,从中央处理器(CPU)到支持CUDA的GPU(图形处理器)的直接上传、下载通道
· CUDA驱动可与OpenGL和DirectX图形驱动程序实现互操作
· 支持Linux 32位/64位以及Windows XP 32位/64位 操作系统
· 为了研究以及开发语言的目的,CUDA提供对驱动程序的直接访问,以及汇编语言级的访问

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
4
生肖徽章2007版:鸡
日期:2009-03-10 21:23:53生肖徽章2007版:蛇
日期:2009-04-03 09:07:53ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22ITPUB社区千里马徽章
日期:2013-06-09 10:15:34
159#
发表于 2009-12-25 11:24 | 只看该作者
确实是个好东西,刚刚从网上找了相关资料查看,个人认为,再好再优的技术,一定要得到市场的推广,要应用起来,形成实际的产品,并能持续一段时间,这才有含金量。

使用道具 举报

回复
论坛徽章:
12
秀才
日期:2015-11-30 09:13:06秀才
日期:2016-04-21 14:08:532016猴年福章
日期:2016-02-23 09:58:34秀才
日期:2016-02-18 10:08:142016猴年福章
日期:2016-02-18 09:31:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-01-21 13:42:39秀才
日期:2016-01-05 09:35:58秀才
日期:2015-12-14 15:02:13秀才
日期:2015-12-14 14:56:09
160#
发表于 2009-12-25 12:30 | 只看该作者
CUDA既然是并行的,那么多个CPU之间该如何调配呢?
谁有CUDA的源代码,给看看,呵呵

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表