笔者用的是华硕飞行堡垒电脑,自带2G的GPU
软件:MATLAB 2020a (当前最新的matlab版本,提供了很多关于深度学习(常见的卷积神经网络和循环神经网络)的接口)
据说matlab现在只支持NVIDIA系列的显卡,matlab 2018a Neural Network Toolbox关于深度神经网络在GPU上的加速计算有以下要求:
Using a GPU requires a CUDA® enabled NVIDIA® GPU with compute capability 3.0 or higher.
即需要一个计算能力在3.0以上的带CUDA驱动的NVIDIA系列GPU才能实现GPU加速, 在matlab命令行窗口内通过‘gpuDevice’查看显卡是否具备加速功能,
笔者的显卡的计算能力是5.0,满足要求。
关于GPU的基本信息和基本测试流程在这里可以找到:https://ww2.mathworks.cn/help/parallel-computing/gpu-computing.html
本篇的目的主要是如何实现GPU对深度神经网络训练过程的加速计算。为实现GPU的加速过程,不同版本的matlab对GPU的计算能力有不同的要求:
CUDA-enabled NVIDIA GPUs with compute capability 3.0 or higher. For releases 17b and earlier, compute capability 2.0 is sufficient. For releases 14a and earlier, compute capability 1.3 is sufficient.
以Create Simple Deep Learning Network for Classification示例程序为例,https://ww2.mathworks.cn/help/deeplearning/examples/create-simple-deep-learning-network-for-classification.html;jsessionid=b3ffae289605ec143885daccfff2
options = trainingOptions('sgdm', ...
'InitialLearnRate',0.01, ...
'MaxEpochs',4, ...
'Shuffle','every-epoch', ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',30, ...
'Verbose',false, ...
'ExecutionEnvironment','cpu',...
'Plots','training-progress');
'ExecutionEnvironment'可以设置为cpu、gpu或者auto
示例程序以CPU进行网络训练的过程如下图所示,费时45 sec
笔者以GPU进行加速训练的过程如下图所示,费时21 sec
GPU加速了计算,相比较于CPU解决了一半时间