matlab gpu 编程,实战:使用MATLAB进行GPU高级编程

在GPU上执行能够加快我的应用程序吗?

GPU能够对符合以下标准的应用程序进行加速:

大规模并行—计算能够被分割成上百个或上千个独立的工作单元。

计算密集型—计算消耗的时间显著超过了花费转移数据到GPU内存以及从GPU内存转移出数据的时间。

不满足上述标准的应用程序在GPU上运行时可能会比CPU要慢。

使用MATLAB进行GPU编程

FFT,IFFT以及线性代数运算超过了100个内置的MATLAB函数,通过提供一个类型为GPUArray(由并行计算工具箱提供的特殊数组类型)的输入参数,这些函数就能够直接在GPU上运行。这些启用GPU的函数都是重载的,换句话说,这些函数根据传递的参数类型的不同而执行不同的操作。

例如,以下代码使用FFT算法查找CPU上伪随机数向量的离散傅里叶变换:

A = rand(2^16,1);

B = fft (A);

为在GPU上执行相同的操作,我们首先使用gpuArray命令将数据从MATLAB工作空间转移至GPU设备内存。然后我们能够运行重载函数fft:

A = gpuArray(rand(2^16,1));

B = fft (A);

fft操作在GPU上而不是在CPU上执行,因为输入参数(GPUArray)位于GPU的内存中。

结果B存储在GPU当中。然而,B在MATLAB工作空间中依旧可见。通过运行class(B),我们看到B是一个GPUArray。

class(B)

ans =

parallel.gpu.GPUArray

我们能够使用启用GPU的函数继续对B进行操作。例如,为可视化操作结果,plot命

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值