深度学习

了解并使用深层学习网络

深入学习GPU和MATLAB

你好呀!虽然大多数的这个职位的信息是正确的,这是2017年从原来的职位和GPU的世界变化快。我会鼓励你看看这里在GPU上较新的资源:https://explore.mathworks.com/all-about-gpus

MATLAB用户问了我们很多关于gpu的问题,今天我就来回答其中的一些。我希望你能对如何选择GPU卡有一个基本的概念,以帮助你在MATLAB中进行深度学习。

我问奔Tordoff寻求帮助。我第一次见到本大约12年前,当他给图像处理工具箱开发的反馈了很多关于我们的功能。从那时起,他已经进入软件开发,他现在领导负责GPU的团队,分布,并在MATLAB和并行计算工具箱高大的阵列支持。金宝app

内容

获取有关您的GPU卡信息

功能gpuDevice告诉你你的GPU硬件。我要求本来走过我的产出gpuDevice在我的电脑。

gpuDevice
ANS = CUDADevice与属性:名称:“TITAN XP的索引:1个ComputeCapability: '6.1' SupportsDouble:1个Drive金宝apprVersion:9 ToolkitVersion:8 MaxThreadsPerBlock:1024 MaxShmemPerBlock:49152 MaxThreadBlockSize:[1024 1024 64] MaxGridSize:[2.1475e + 09 6553565535] SIMDWidth:32 TotalMemory:1.2885e + 10 AvailableMemory:1.0425e + 10 MultiprocessorCount:30 ClockRateKHz:1582000 ComputeMode: '默认' GPUOverlapsTransfers:1 KernelExecutionTimeout:1 CanMapHostMemory:1 DeviceSupported金宝app:1 DeviceSelected:1

奔:“这是一个泰坦XP的卡你已经有了一个不错的GPU有 - 很多比我已经得到了,至少对于深度学习更好。”(我会在下面解释此评论。)

“1个指指数是NVIDIA驱动程序,认为这GPU是最强大的一个安装在电脑上。而computEapability.是指由该卡支持计算能力的一代。金宝app第六代被称为帕斯卡。”作为R2017b释放的,GPU用MATLAB计算和并行计算工具箱需要computEapability.至少3.0。

提供的其他信息gpuDevice对于编写低级GPU计算例程或进行故障排除的开发人员来说主要是有用的。但是,在比较GPU时,还有一个其他号码对您有所帮助。这MultiprocessorCount即GPU上的芯片数量。“同一代的高端卡和低端卡之间的区别通常取决于可用芯片的数量。”

GPUBench

我和Ben讨论的下一件事是GPUBench的输出,这是Ben团队维护的GPU性能测量工具。你可以从MATLAB中央文件交换.以下是报告的一部分:

GFLOP.是计算速度的单位。1 GFLOP大约是每秒10亿个浮点运算。该报告测量了双精度和单精度浮点的计算速度。有些卡片擅长双精度,有些卡片擅长单精度。报告显示最好的双精度卡在顶部,因为这是最重要的通用MATLAB计算。

该报告包括三个不同的计算基准:MTimes(矩阵乘法),反斜杠(线性系统求解),和FFT。矩阵乘法基准是最好的测量纯运算速度,所以它具有最高GFLOP的数字。该FFT和反斜线基准,在另一方面,涉及更多的计算和I / O的混合物,所以报道GFLOP率较低。

我的Titan XP卡比我的CPU(上表中的“主机PC”更好),用于双精度计算,但它肯定比列出的顶部卡慢。那么,为什么Ben告诉我,我的卡对深度学习非常好?这是因为报告的右栏,专注于单精度计算.对于图像处理和深度学习,单精度速度比双精度速度更重要。

和泰坦XP的是极快在单精度计算,以高达11000个GFLOPS用于与大矩阵的矩阵乘法。如果你有兴趣,你可以深入到更多的细节,像这样的GPUBench报告:

NVIDIA GPU卡的类型

我请Ben帮助我理解NVIDIA制作的各种GPU卡。“对于深度学习,你可以只关注三行卡片:GeForce、Titan和Tesla。GeForce卡是最便宜的,具有良好的计算性能,但您必须记住,如果您使用远程桌面软件,它们就不能工作。Titan是GeForce的升级版,它支持远程桌面。金宝app特斯拉卡是为双精度应用的计算服务器设计的高性能卡。”

比较CPU和GPU速度深入学习

神经网络工具箱中的许多深度学习功能现在支持一个名为的选项下载188bet金宝搏金宝app'executionenvironment'.的选择是:'汽车''中央处理器''GPU'“multi-gpu”, 和“平行”.您可以使用此选项尝试一些网络训练和预测计算,以衡量GPU对您自己的计算机上的深度学习的实际影响。

我要用“训练卷积神经网络的回归”的例子.我只是要在这里做训练,而不是完整的例子。首先,我会用我的GPU。

选项=培训选项(“个”“InitialLearnRate”,0.001,......'maxepochs'15);净= trainNetwork(trainImages,trainAngles,层,选项);
单GPU训练。初始化图像正常化。|=========================================================================================| | 时代| |迭代时间| Mini-batch | Mini-batch |基地学习| | | | | |(秒)损失RMSE |率  | |=========================================================================================| | 1 | 1 | 0.01 | 352.3131 | 26.54 | 0.0010 | | 2| 50 | 0.75 | 114.6249 | 15.14 | 0.0010 | | 3 | 100 | 1.40 | 69.1581 | 11.76 | 0.0010 | | 4 | 150 | 2.04 | 52.7575 | 10.27 | 0.0010 | | 6 | 200 | 2.69 | 54.4214 | 10.43 | 0.0010 | | 250 | | 3.33 | 40.6091 | 9.01 | 0.0010 | | 300 | | 3.97 | 29.9065 | 7.73 | 0.0010 | | 350 | | 4.63 | 28.4160 | 7.54 | 0.0010 | | 400 | | 5.28 | 28.4920 | 7.55| 0.0010 | | 450 | | 5.92 | 21.7896 | 6.60 | 0.0010 | | 500 | | 6.56 | 22.7835 | 6.75 | 0.0010 | | 550 | | 7.20 | 24.8388 | 7.05 | 0.0010 | | 585 | | 7.66 | 17.7162 | 5.95 | 0.0010  | |=========================================================================================|

您可以在“经过的时间”列中看到这个简单示例的培训需要大约8秒钟。

现在让我们只使用CPU重复培训。

选项=培训选项(“个”“InitialLearnRate”,0.001,......'maxepochs'15,'executionenvironment''中央处理器');净= trainNetwork(trainImages,trainAngles,层,选项);
初始化图像正常化。| ==========================================================================================|时代|迭代|经过时间的时间迷你批量|迷你批量|基础学习|| | | (seconds) | Loss | RMSE | Rate | |=========================================================================================| | 1 | 1 | 0.17 | 354.9253 | 26.64 | 0.0010 | | 2 | 50 | 6.74 | 117.6613 | 15.34 | 0.0010 | | 3 | 100 | 13.31 | 92.0581 | 13.57 | 0.0010 | | 4 | 150 | 20.10 | 57.7432 | 10.75 | 0.0010 | | 6 | 200 | 26.66 | 50.4582 | 10.05 | 0.0010 | | 7 | 250 | 33.35 | 35.4191 | 8.42 | 0.0010 | | 8 | 300 | 40.06 | 30.0699 | 7.75 | 0.0010 | | 9 | 350 | 46.70 | 24.5073 | 7.00 | 0.0010 | | 11 | 400 | 53.35 | 28.2483 | 7.52 | 0.0010 | | 12 | 450 | 59.95 | 23.1092 | 6.80 | 0.0010 | | 13 | 500 | 66.54 | 18.9768 | 6.16 | 0.0010 | | 15 | 550 | 73.10 | 15.1666 | 5.51 | 0.0010 | | 15 | 585 | 77.78 | 20.5303 | 6.41 | 0.0010 | |=========================================================================================|

这比使用GPU训练要多花10倍的时间。对于现实的网络,我们预计差异会更大。有了更强大的深度学习网络,需要几个小时或几天的训练,你可以看到为什么我们推荐使用良好的GPU进行大量的深度学习工作。

我希望这些信息对您有所帮助。祝你好运建立自己的深度学习系统与MATLAB!

PS。谢谢,本!




发布与MATLAB®R2017b

|
  • 打印
  • 发电子邮件

注释

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。