登录论坛

查看完整版本 : [文章]Matlab超强GPU运算------Jacket


marvinshang
2009-03-16, 14:12
一、CUDA介绍:
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。 将来还会支持其它语言,包括FORTRAN以及C++。
目前,支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。 目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。
技术特点:
 用于GPU并行应用开发的标准C语言
 快速傅里叶转换(FFT)以及基本线性代数子程序(BLAS)的标准数字库
 专用CUDA驱动器,用于GPU和CPU之间快速数据传输计算
 CUDA驱动程序与OpenGL和DirectX图形驱动程序可以实现互操作
 支持Linux 32/64位,Windows XP 32/64位以及Mac 操作系统

二、NVIDIA Tesla
Tesla 架构
• 强大的并行多核架构
• 每颗GPU具备240个标量处理器核心
• 整数、单精度以及双精度浮点操作
• 硬件线程执行管理器让每颗GPU能够同时运行数以千计的线程。
• 并行共享内存让众多处理器核心能够以本地高速缓存的性能在共享信息方面进行合作。
• 显存存取速度超快,每颗GPU峰值带宽可达102 GB/秒
• IEEE 754单精度以及双精度浮点性能
• Each Tesla C1060 GPU delivers 933 GFlops Single Precision and 78 GFlops Double Precision performance
软件开发工具
• C语言编译器、调试器、分析器以及用于调试的仿真模式
• 可用于FFT(快速傅里叶变换)、BLAS(基本线性代数子程序)以及CuDPP(CUDA数据并行基元)的标准数值库
NVIDIA® Tesla™ C1060 可将工作站转变成一个性能远超小型集群的高性能计算机。它的计算能力甚至超过了一个小的计算机集群。这在技术专业人员的桌边为他们提供了一个专用的计算资源,与在数据中心中的共享计算机集群相比,NVIDIA®(英伟达TM) Tesla™ C1060性能更强,消耗的能源更少。Tesla C1060基于大规模并行的多核Tesla处理器。该处理器与标准的CUDA C语言编程环境紧密结合以简化多核心编程。







满足HPC产业对性能无休止的追求,努力满足对计算能力要求最苛刻的应用的需求,这些应用领域包括药物研究、油气开采以及计算金融。
多核心架构在HPC(HPC是高性能计算的缩写)应用中提供最理想的扩展能力。有些应用程序的复杂性已经超出了CPU的处理能力,Tesla多核架构能满足这些程序对计算能力的需求。





为重视节约能源的组织提供了一个高效率的计算平台。更高的性能和计算密度,能够使用更少的资源和能源,解决复杂的问题。
NVIDIA CUDA™ 技术充分发挥Tesla多核计算产品的性能。独一无二的C语言环境,充分发挥GPU(图形处理器)的多核处理能力,来解决世界上对计算能力要求最迫切的问题。

特性 优势
大规模并行多核架构,有240个处理核心 在您的工作站上即可解决以前需要用大型计算机集群来运算的计算难题
4 GB高速存储器 支持更大数据集的本地存储,充分利用存储器高达102GB/s的传输速度,把系统中的数据移动需求降到最低。
广为接受,易于学习的CUDA C语言编程环境 简洁高速的应用程序并行机制可充分利用GPU(图形处理器)的多核架构
可扩展到多个GPU(图形处理器)以及达到上千个处理器内核的性能 通过扩展到多个GPU(图形处理器)上的数千个核心,来解决大规模的问题
IEEE 754单精度和双精度浮点单元 在一块芯片上获得最高的浮点运算性能,同时满足你的程序对精确度的需求
异步传输能力 可以在计算的同时进行数据传输,从而进一步提高系统性能
从GPU(图形处理器)到板载显存可达512位显存位宽 高速GDDR3显存、512位显存位宽以及102 GB/秒的显存带宽可实现超高的数据传输速度
共享数据内存 利用低延迟的存储器,各处理器内核群组可以紧密合作
高速、PCI-Express 2.0数据传输 CPU与GPU(图形处理器)之间的通信速度快、带宽高
Tesla GPU(图形处理器)产品拥有多种规格 Tesla工作站和1U系统可以适应很广泛的部署环境

三、Jacket
1、是Jacket?
MATLAB的GPU 处理引擎,由AccelerEyes开发,其1.0版本已经发布。AccelerEyes成立于2007年,致力于将GPU科技引入高性能计算(HPC)当中,需要一个强劲的工具连接软件开发人员和GPU硬件之间。当硬件开发者致力于底层的软件工具(如CUDA),以支持他们的设备时,AccelerEyes 开发了高层的接口,完全屏蔽了底层硬件的复杂性。
AccelerEyes的第一个产品——Jacket,适用于很多行业的HPC应用,如:汽车制造、金融、医疗以及地质等行业。此外,Jacket的图形工具包能做的真正的视觉计算,能准确的将计算机的CUDA OpenGL可视化进行融合。
2、Jacket介绍
Jacket是MATLAB®代码在GPU上运行的插件。Jacket使标准的MATLAB代码能够在GPU上运行,并给用户提供MATLAB的友好界面,带来GPU可视化计算的速度。
Jacket不仅提供了GPU API(应用程序接口),而且还集成了GPU MEX功能。在一定程度说,Jacket是一个完全对用户透明的系统,能够自动的进行内存分配和自动优化。Jacket使用了一个叫“on-the-fly”的编译系统,使MATLAB交互式格式的程序能够在GPU上运行。目前,Jacket只是基于NVIDIA的CUDA技术。

3、图形化工具包
Jacket also includes the Graphics Toolbox for MATLAB (now available for ALL operating systems)。Jacket同样包含有MATLAB开发的图形化工具包(支持目前的所有操作系统)。Jacket集成的图形化工具包的计算引擎能够完全发挥您的GPU 的全部OpenGL功能。这种计算和可视化的集成是您能做到开发真正的视觉计算。




4、 MATLAB®的Jacket引擎
Jacket is the GPU Engine for. Jacket enables standard MATLAB code to run on any
Jacket是MATLAB®的GPU插件。Jacket能够使标准的MATLAB代码能够运行在任何NVIDIA的支持CUDA的GPU上,从Geforce8400到Tesla C1060。想法很简单——Jacket为MATLAB引入了新的数据类型,这使得您能将您的数据移植到GPU上运算。
例如:
>> G = gones( 3 ); % Create a GPU matrix
>> G = fft( G ); % Perform a GPU FFT
>> G = G * G; % GPU Matrix Multiply
>> C = double( G ); % Bring back to CPU

很简单吧!仅仅只需更改数据类型,就能开始使用GPU的强大运算能力了,NVIDIA Tesla C1060具有240个GPU处理器(核)。现在您可以把以前巨大的集群系统抛弃了,来享受带有Jacket的个人超级运算计算机吧!
Jacket 图形工具包
Jacket图形图形工具包极大的改善了MTLAB的可视化计算。想法同样很简单——使数据在GPU中进行可视化计算而不需要将数据返回至CPU。








5、 应用实例
比较:
CPU 计算 (蓝色箭头) ,MATLAB程序在CPU集群或CPU上进行并行计算
GPU 计算 (绿色箭头) ,MATLAB程序通过Jacket 在GPU/GPU集群上计算















GPU、CPU对比










视觉计算


SGEMM变换





快速傅立叶变换(FFT)



限于篇幅有限,有对AccelerEyes Jacket,Nvida Tesla感兴趣的读者,或者需要了解更多信息,更多视频的读者,请于作者联系,MSN/E-mail:[email protected], 15801056870,Beijing SUN HPC Applications Center。

lastmore
2009-03-17, 12:16
不错,等待技术成熟

紫气东来
2009-03-22, 22:01
IT技术变化真快,不错