二、Jacket Engine for Matlab——把并行计算和可视化转移到GPU平台
1.Jacket Engine介绍
Jacket Engine 是专门针对MATLAB基于GPU的计算引擎,由AccelerEyes公司开发,其1.0版本已经发布。AccelerEyes成立于2007年,致力于将GPU科技引入高性能计算(HPC)当中,需要一个强劲的工具连接软件开发人员和GPU硬件之间。当硬件开发者致力于底层的软件工具(如CUDA),以支持他们的设备时,AccelerEyes 开发了高层的接口,完全屏蔽了底层硬件的复杂性。
AccelerEyes的第一个产品——Jacket,适用于很多行业的HPC应用,如:汽车制造、金融、医疗以及地质等行业。此外,Jacket的图形工具包能做到真正的视觉计算,能准确的将计算机的CUDA与OpenGL可视化进行融合。
2.Jacket Engine运行
Jacket是MATLAB代码在GPU上运行的插件。Jacket使标准的MATLAB代码能够在GPU上运行,并给用户提供MATLAB的友好界面,带来GPU可视化计算的速度。
Jacket不仅提供了GPU API(应用程序接口),而且还集成了GPU MEX功能。在一定程度说,Jacket是一个完全对用户透明的系统,能够自动的进行内存分配和自动优化。Jacket使用了一个叫“on-the-fly”的编译系统,使MATLAB交互式格式的程序能够在GPU上运行。
3.图形化工具包
Jacket同样包含有MATLAB开发的图形化工具包(支持目前的所有操作系统)。Jacket集成的图形化工具包的计算引擎能够完全发挥GPU 的全部OpenGL功能。这种计算和可视化的集成使您能做到开发真正的视觉计算。
4.Matlab计算——移植到GPU平台非常简单,功能更强大
Jacket是Matlab的GPU插件。Jacket能够使标准的MATLAB代码运行在任何NVIDIA的支持CUDA的GPU上,从Geforce 8400到Tesla C1060。用法很简单——Jacket为MATLAB引入了新的数据类型,这使得您能将您的数据移植到GPU上运算。
MATLAB代码例子:
>> G = gones( 3 ); % 创建一个 GPU矩阵
>> G = fft( G ); % 执行一个 GPU FFT
>> G = G * G; % GPU 矩阵乘法
>> C = double( G ); % 返回到CPU模式
仅仅只需更改数据类型,就能开始使用GPU的强大运算能力了,NVIDIA Tesla C1060 GPU具有240个流处理器(内核)。现在您可以把以前巨大的集群系统抛弃了,来享受带有Jacket的个人超级计算机吧。
Jacket图形工具包极大的改善了MTLAB的可视化计算。想法同样很简单——使数据在GPU中进行可视化计算而不需要将数据返回至CPU。