matlab 中使用 GPU 加速运算

为了提高大规模数据处理的能力,matlab 的 GPU 并行计算,本质上是在 cuda 的基础上开发的 wrapper,也就是说 matlab 目前只支持 NVIDIA 的显卡。

1. GPU 硬件支持

首先想要在 matlab 中使用 GPU 加速运算,需要计算机配备有 NVIDIA 的显卡,可在 matlab 中运行:

>> gpuDevice

如果本机有 GPU 支持,会列出 CUDADevice 的相关属性。

2. GPU 和 CPU 之间的数据传递

  • gpuArray:将定义在 CPU 上的矩阵转换为 GPU 模式;

    X=rand(10,'single'); 
    GX=gpuArray(X);      
    GX2=GX.*GX;         
  • gather:将 GPU 内存中的数据拷贝到 CPU 内存中

  • 在一些函数中通过相关参数进行 GPU 支持;

    • rand(10, ‘gpuArray’)

3. tips

  • 有时候 GPU 受限于硬件架构,单精度的计算远快于双精度。这时候可以考虑在拷贝的时候顺便转换一下精度 A = gpuArray(single(B)) 以进一步提高运算速度 。

  • 对于一些代码结构较为复杂的程序,除了 matlab 提供的内置函数进行 GPU 加速外,matlab 还可调用 .cu 文件

    • matlab + c/c++ 的混合编程能把 .c, .cc, .cpp 等文件编译为可供使用的 mex 文件,
    • 对于 cuda 程序(.cu),matlab 则可调用相关编译工具,将其编译为 .ptx 文件;

Matlab之GPU加速方法

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值