你有没有遇到过这种情况:写了个深度学习模型,在CPU上跑一个 epoch 要等半小时?其实你的NVIDIA显卡一直在旁边闲着。2026年的MATLAB已经完美支持GPU加速,改一行代码,训练时间从小时级压到分钟级。下面教你4步配置,外加一个真实案例的速度对比。
不是所有显卡都能跑CUDA。MATLAB要求NVIDIA显卡且计算能力在3.0以上。
打开MATLAB,敲一行命令:
gpuDeviceCount如果返回0,说明没识别到显卡。返回1或2,恭喜,显卡在待命。
再详细看一下:
gpuDevice它会显示显卡型号、显存大小、计算能力。比如我这台是RTX 3060,显存12GB,计算能力8.6。
一个坑:笔记本上的某些N卡是“Optimus”双显卡切换,MATLAB可能只认到集显。去NVIDIA控制面板里,把MATLAB的exe强制设为“高性能NVIDIA处理器”。
MATLAB 2026a对CUDA版本要求是11.8以上,cuDNN对应8.6以上。版本不匹配,gpuDevice能检测到,但运行深度学习函数会报错。
安装步骤(以Windows为例):
验证是否成功:
deeplearningtoolbox.supportcode.nvidia.cudnnVersion返回类似 {'cuDNN Version', '8.9'} 就对了。

硬件和驱动装好后,MATLAB会自动使用GPU吗?不会。你需要手动指定。
方法一(推荐):代码里直接改执行环境
gpu = gpuDevice(1); % 选择第1块GPU然后你的数据要搬到GPU上:
X_gpu = gpuArray(X_cpu);Y_gpu = gpuArray(Y_cpu);训练时,网络参数也会自动转移到GPU。
方法二(全局设置):Preferences里点选
两种方法都行。我习惯用代码控制,因为有时候想对比CPU/GPU速度,动态切换方便。
用一个经典手写数字识别任务测一下。数据集MNIST(6万张28×28灰度图),网络LeNet-5。
CPU代码:
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];options = trainingOptions('sgdm', 'MaxEpochs',10, 'Plots','training-progress');net = trainNetwork(X_train, Y_train, layers, options);GPU代码:只有两处改动
X_train_gpu = gpuArray(X_train);Y_train_gpu = gpuArray(Y_train);net = trainNetwork(X_train_gpu, Y_train_gpu, layers, options);速度对比(同一台机器:i7-12700K + RTX 3060):

| 硬件 | 单个epoch耗时 | 10个epoch总耗时 |
|---|---|---|
| CPU (12线程) | 52秒 | 8分40秒 |
| GPU (RTX 3060) | 6.3秒 | 63秒 |
GPU快了 8.2倍。而且随着模型变大,这个差距会更明显。试过ResNet-50训练,CPU跑一个epoch要7分钟,GPU只要45秒,接近10倍提升。
问题1:gpuDevice返回“无法找到兼容的GPU”
问题2:显存不足(Out of memory on device) 减小batch size。原来64改成32或16。也可以用reset(gpuDevice)清理缓存。
问题3:训练时GPU利用率很低(<20%) 通常是数据加载瓶颈。把数据预处理也搬到GPU上,或者用augmentedImageDatastore配合'DispatchInBackground'选项异步加载。
% 检查GPUif gpuDeviceCount == 0 error('没有检测到NVIDIA GPU');endgpu = gpuDevice(1);fprintf('使用GPU: %s, 显存: %.1f GB\n', gpu.Name, gpu.TotalMemory/1e9);% 加载数据(假设已有X_train, Y_train)X_train_gpu = gpuArray(X_train);Y_train_gpu = gpuArray(Y_train);% 定义网络(省略)layers = [...];% 训练选项options = trainingOptions('adam', ... 'MaxEpochs',20, ... 'MiniBatchSize',64, ... 'Verbose',true, ... 'Plots','training-progress', ... 'ExecutionEnvironment','auto'); % auto会自动选GPU% 开始训练net = trainNetwork(X_train_gpu, Y_train_gpu, layers, options);% 预测时也要把数据搬到GPUX_test_gpu = gpuArray(X_test);Y_pred = classify(net, X_test_gpu);最后总结一下 MATLAB用GPU加速深度学习只需4步:确认显卡、装CUDA+cuDNN、配置环境、代码里加gpuArray。实测LeNet训练提速8倍,ResNet接近10倍。2026年的今天,没有GPU的深度学习就像骑自行车上高速。赶紧按上面的步骤配起来,把你的模型训练时间压到原来十分之一。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。