想要在GPU跑MATLAB,首先得查看你的电脑是否支持了。
先来了解一个概念——CUDA:是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
说白了,就是你用显卡进行深度学习等的运算必须要安装cuda包(你可以了理解为一个软件),用GPU跑MATLAB代码也必须要用到cuda包,每一个显卡只能安装对应版本的cuda包。
依次打开:控制面板==>NVIDIA控制面板==>帮助==>系统信息==>组件==>NVCUDA.DLL==>产品名称
可以看到我的电脑支持cuda 10.1版本
此时就需要在你电脑安装对应版本的cuda版本,可以查看往期教程:
tips:如果有深度学习相关的cudnn也建议安装
安装好之后需要确认MATLAB版本与cuda版本对应才行,比如我的cuda10.1,只能使用MATLAB2019b与2020a
到此你已经安装好了cuda了,MATLAB版本也对,就可以打开MATLAB查看GPU了,若是你没有安装cuda,会提示错误的。
在命令行输入
gpuDevice
正常情况会出现:
使用gpu跑代码首先需要了解几个函数
gpuArray | 存储在 GPU 上的数组 |
gather | 将分布式数组或 gpuArray 传输到本地工作空间 |
gpuDevice | 查询或选择 GPU 设备 |
arrayfun | 将函数应用于 GPU 上数组的每个元素 |
最主要的就是前两个了,在运算时,必须将数组等定义为gpuArray类型,代码才会在gpu运行。
若是想把gpuArray对象转为普通数组,就要用到gateer函数了。
举例:
G = gpuArray(X)将数组复制 X到 GPU 并返回一个gpuArray对象。G就是一个可以在gpu运行的数组
测试速度
输入如下代码在cpu运行并显示时间
ticG=randn(1e4);toc
输入如下代码在gpu运行并显示时间
ticG=randn(1e4,'gpuArray');toc
还是快了不少。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删