matlab gpu程序效率,请问Jacket和GPUMAT以及Matlab自带的并行计算工具性能对比如何?...

如果你要评估用于GPU计算且支持Matlab的软件,AccelerEyes将会提供以下信息作为比较的起点。每个用户必须评估基于个人应用需求的要求。随着不同种类的有Matlab支持的GPU计算软件大量涌入市场,越来越难以追踪到所需的工具。为了帮助你有组织性的进行,AccelerEyes制作了这些比较表格,他们都列出了这两种方法的重点,包括:1)来自AccelerEyes的Jacket 1.5版;2)来自Mathworks的 Matlab2010B并行计算工具包一个利用Matlab核心代码的案例研究是可用于博客发帖及语音的。在更高的层次,有大量的支持Matlab的GPU计算的能力存在,很多应用的执行都要这些计算能力,这些应用程序只适用于Jacket,不适用于其他系统。下列表格表明了每种技术是如何与相对应的能力的比较结果。

[table=432]

[tr][td=199][/td][td=106]Jacket[/td][td=127]MATLAB 2010B[/td][/tr]

[tr][td=199]索引支持[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]支持旋转函数[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]线性代数支持[/td][td=106]Y[/td][td=127]最小化[/td][/tr]

[tr][td=199]生成随机数[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]图像处理功能[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]单个处理功能[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]支持所有CUDA[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]支持以往的Matlab版本[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]无需PCT就能工作[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]编译程序选项(见 Jacket JMC)[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]循环数据并行[/td][td=106]Y[/td][td=127]N[/td][/tr]

[tr][td=199]支持Mac OS X[/td][td=106]Y[/td][td=127]N[/td][/tr]

[/table]

所支持的函数:除了第一张表格所表明的那些高度支持的函数外,关注一下那些“被支持的”函数,它们能提供更多的关于系统如何被用于执行GPU计算,或者是如何转换系统进行GPU计算。Jacket包含了可用于产品的任何语言的最大的函数库。

[table=420]

[tr][td=219][/td][td=92]Jacket[/td][td=109]MATLAB 2010B[/td][/tr]

[tr][td=219]FFT, FFT2[/td][td=92]Y[/td][td=109]Y[/td][/tr]

[tr][td=219]MLDIVIDE (on square matrices)[/td][td=92]Y[/td][td=109]Y[/td][/tr]

[tr][td=219]MLDIVIDE (on non-square matrices)[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]MTIMES[/td][td=92]Y[/td][td=109]Y[/td][/tr]

[tr][td=219]SVD[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]EIG[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]INV[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]CONV, CONV2, FILTER, FILTER2[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]SUM, MIN, MAX (with one output)[/td][td=92]Y[/td][td=109]Y[/td][/tr]

[tr][td=219]SUM, MIN, MAX (with two outputs)[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]SUBSREF, SUBSASGN[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]FIND[/td][td=92]Y[/td][td=109]N[/td][/tr]

[tr][td=219]SORT[/td][td=92]Y[/td][td=109]N[/td][/tr]

[/table]

最全面的支持Jacket的函数能在Jacket Documentation Wiki.网站里找到。基准点:下面的表格表明的是使用1024矩阵的平行计算工具盒和Jacket相比较的基准结果。时间以秒为单位,Jacket的性能改善被认为是超过R2010B 相同版本的加倍器。由于在R2010B的最小函数设置,我们不能用R2010B运行真正的函数,转而我们只能使用基准的个人函数以及简单的代码片段,例如Horner Example。系统的结构曾经是CPU的配置: Intel Core2 Quad CPU Q9400 @ 2.66GHz and a GPU: NVIDIA TESLA C1060,如下所示,

[table=520]

[tr][td=215][/td][td=106]Jacket (秒)[/td][td=127]R2010B (秒)[/td][td=72]速度加倍[/td][/tr]

[tr][td=215]单个ARRAYFUN (R2010B Horner Example)[/td][td=106]0.002486[/td][td=127]0.108176[/td][td=72]43.5 X[/td][/tr]

[tr][td=215]两个RRAYFUN (R2010B Horner Example):[/td][td=106]0.002939[/td][td=127]0.131536[/td][td=72]44.8 X[/td][/tr]

[tr][td=215]FFT (R2010B Example)单个[/td][td=106]0.228456[/td][td=127]0.377829[/td][td=72]1.7 X[/td][/tr]

[tr][td=215]FFT (R2010B Example)两个[/td][td=106]0.334914[/td][td=127]0.465493[/td][td=72]1.4 X[/td][/tr]

[tr][td=215]FFT2 (R2010B Example),单个[/td][td=106]0.356915[/td][td=127]0.41715[/td][td=72]1.2 X[/td][/tr]

[tr][td=215]FFT2 (R2010B Example), 两个[/td][td=106]0.463763[/td][td=127]0.481616[/td][td=72]1.04 X[/td][/tr]

[tr][td=215]MLDIVIDE (1023x1023 square matrix), 单个[/td][td=106]0.033292[/td][td=127]0.034138[/td][td=72]1.003 X[/td][/tr]

[tr][td=215]MLDIVIDE (1023x1023 square matrix), 两个[/td][td=106]0.049236[/td][td=127]0.0614[/td][td=72]1.25 X[/td][/tr]

[tr][td=215]TRIG,单个[/td][td=106]0.000256[/td][td=127]0.001207[/td][td=72]4.7 X[/td][/tr]

[tr][td=215]TRIG,两个[/td][td=106]0.000897[/td][td=127]0.00214[/td][td=72]2.4 X[/td][/tr]

[tr][td=215]CTRANSPOSE单个[/td][td=106]0.000341[/td][td=127]0.000772[/td][td=72]2.3 X[/td][/tr]

[tr][td=215]CTRANSPOSE, 两个[/td][td=106]0.000362[/td][td=127]0.001008[/td][td=72]2.8 X[/td][/tr]

[tr][td=215]MTIMES (1023x1023 square matrix), 单个[/td][td=106]0.008923[/td][td=127]0.009342[/td][td=72]1.05 X[/td][/tr]

[tr][td=215]MTIMES (1023x1023 square matrix), 两个[/td][td=106]0.030628[/td][td=127]0.03073[/td][td=72]1.03 X[/td][/tr]

[tr][td=215]POWER, 单个[/td][td=106]0.000517[/td][td=127]0.001594[/td][td=72]3.1 X[/td][/tr]

[tr][td=215]POWER,两个[/td][td=106]0.000507[/td][td=127]0.004957[/td][td=72]9.8 X[/td][/tr]

[tr][td=215]RESHAPE,单个[/td][td=106]8.6E-05[/td][td=127]0.000953[/td][td=72]11.1 X[/td][/tr]

[tr][td=215]RESHAPE, 两个[/td][td=106]8.5E-05[/td][td=127]0.001162[/td][td=72]13.7 X[/td][/tr]

[tr][td=215]TIMES单个[/td][td=106]0.000192[/td][td=127]0.001288[/td][td=72]6.7 X[/td][/tr]

[tr][td=215]TIMES两个[/td][td=106]0.000192[/td][td=127]0.001704[/td][td=72]8.9 X[/td][/tr]

[/table]

由于缺少支持R2010B的函数,我们不能建立真正的应用程序基准点。还有值得提出的一点就是对于JIT的编辑,R2010B缺少执行技术,根据我们的经验,JIT的编辑引擎的缺少会严重影响真正应用程序的执行。其他的基点也同样能在Jacket Documentation Wiki.网站里找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值