使用GPU加速MATLAB代码的指南

一、概述

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

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

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

二、查看cuda版本并安装

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

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

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

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


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

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


四、在MATLAB查看GPU版本

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

在命令行输入

gpuDevice

正常情况会出现:



五、测试gpu跑代码

使用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

还是快了不少。





免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空