一、概述

想要在GPU跑MATLAB,首先得查看你的电脑是否支持了。

先来了解一个概念——CUDA:是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

说白了,就是你用显卡进行深度学习等的运算必须要安装cuda包(你可以了理解为一个软件),用GPU跑MATLAB代码也必须要用到cuda包,每一个显卡只能安装对应版本的cuda包。

二、查看cuda版本并安装

依次打开:控制面板==>NVIDIA控制面板==>帮助==>系统信息==>组件==>NVCUDA.DLL==>产品名称

可以看到我的电脑支持cuda 10.1版本

matlab深度学习如何使用GPU matlab怎么用gpu跑_MATLAB

 此时就需要在你电脑安装对应版本的cuda版本,可以查看往期教程:

tips:如果有深度学习相关的cudnn也建议安装


……

三、确认MATLAB版本与cuda版本对应

安装好之后需要确认MATLAB版本与cuda版本对应才行,比如我的cuda10.1,只能使用MATLAB2019b与2020a

GPU Support by Release- MATLAB & Simulink- MathWorks 中国

matlab深度学习如何使用GPU matlab怎么用gpu跑_数组_02

四、在MATLAB查看GPU版本

到此你已经安装好了cuda了,MATLAB版本也对,就可以打开MATLAB查看GPU了,若是你没有安装cuda,会提示错误的。

在命令行输入

gpuDevice

正常情况会出现:

matlab深度学习如何使用GPU matlab怎么用gpu跑_深度学习_03

五、测试gpu跑代码 

使用gpu跑代码首先需要了解几个函数

gpuArray

存储在 GPU 上的数组

gather

将分布式数组或 gpuArray 传输到本地工作空间

gpuDevice

查询或选择 GPU 设备

arrayfun

将函数应用于 GPU 上数组的每个元素

最主要的就是前两个了,在运算时,必须将数组等定义为gpuArray类型,代码才会在gpu运行。

若是想把gpuArray对象转为普通数组,就要用到gateer函数了。

gpuArrary支持的函数:参考列表- MATLAB & Simulink- MathWorks 中国

举例:

G = gpuArray(X)
将数组复制 X到 GPU 并返回一个gpuArray对象。
G就是一个可以在gpu运行的数组

测试速度

输入如下代码在cpu运行并显示时间

tic
G=randn(1e4);
toc

输入如下代码在gpu运行并显示时间

tic
G=randn(1e4,'gpuArray');
toc

matlab深度学习如何使用GPU matlab怎么用gpu跑_深度学习_04

 还是快了不少。