关于人工智能:单机GPU云服务器的深度学习训练和预测模型分析

50次阅读

共计 3204 个字符,预计需要花费 9 分钟才能阅读完成。

得益于 GPU 弱小的计算能力,深度学习近年来在图像处理、语音辨认、自然语言解决等畛域获得了重大突 GPU 服务器简直成了深度学习减速的标配。

阿里云 GPU 云服务器在私有云上提供的弹性 GPU 服务,能够帮忙用户疾速用上 GPU 减速服务,并大大简化部署和运维的复杂度。如何提供一个适合的实例规格,从而以最高的性价比提供给深度学习客户,是咱们须要思考的一个问题,本文试图从 CPU、内存、磁盘这三个角度对单机 GPU 云服务器的深度学习训练和预测的性能模型做了初步的剖析,心愿能对实例规格的抉择提供一个迷信的设计模型。

上面是咱们应用支流的几个开源深度学习框架在 NVIDIA GPU 上做的一些深度学习的测试。波及 NVCaffe、MXNet 支流深度学习框架,测试了多个经典 CNN 网络在图像分类畛域的训练和推理以及 RNN 网络在自然语言解决畛域的训练。

咱们应用 NVCaffe、MXNet 支流深度学习框架测试了图像分类畛域和自然语言解决畛域的训练模型。

图像分类

咱们应用 NVCaffe、MXNet 测试了图像分类畛域的 CNN 网络的单 GPU 模型训练。

NVCaffe 和 MXNet 测试应用 ImageNet ILSVRC2012 数据集,训练图片 1281167 张,蕴含 1000 个分类,每个分类蕴含 1000 张左右的图片。

CPU+Memory

NVCaffe

NVCaffe 是 NVIDIA 基于 BVLC-Caffe 针对 NVIDIA GPU 尤其是多 GPU 减速的开源深度学习框架。LMDB 格局的 ImageNet 训练集大小为 240GB,验证集大小为 9.4GB。

咱们应用 NVcaffe 对 AlexNet、GoogLeNet、ResNet50、Vgg16 四种经典卷积神经网络做了图像分类工作的模型训练测试。别离比照了不同 vCPU 和 Memory 配置下的训练性能。性能数据单位是 Images/Second(每秒解决的图像张数)。图中标注为 10000 指的是迭代次数 10000 次,其它都是测试迭代次数为 1000 次。

MXNet

MXNet 的数据集应用 RecordIO 格局,ImageNet 训练集 93GB,验证集 3.7GB。

咱们应用网络 Inception-v3(GoogLeNet 的升级版)做了图像分类的训练测试。别离比照了不同 vCPU 和 Memory 配置下的训练性能。数据单位是 Samples/Second(每秒解决的图像张数)。

磁盘 IO

咱们在阿里云 GN5(P100) 实例上应用 NVCaffe 测试了 GoogLeNet 网络模型在 NVMe SSD 本地盘、SSD 云盘和高效云盘上的训练性能,测试后果如下(性能数据单位是 Images/Second):

自然语言解决

咱们应用 MXNet 测试了 RNN 网络的 LSTM 模型的训练,应用 PennTreeBank 自然语言数据集。PennTreeBank 数据集的文本语料库蕴含近 100 万个单词,单词表被限定在 10000 个单词。别离比照了不同 vCPU 和 Memory 配置下的训练性能:

推理测试

图像分类

咱们应用 NVCaffe 测试了图像分类畛域的 CNN 网络的模型推理。

测试应用 ImageNet ILSVRC2012 数据集,验证测试图片 50000 张。

CPU+Memory

咱们应用 NVcaffe 对 AlexNet、GoogLeNet、ResNet50、VGG16 四种经典卷积神经网络做了图像分类的推理测试。别离比照了不同 vCPU 和 Memory 配置下的训练性能。数据单位是 Images/Second(每秒解决的图像张数)。

磁盘 IO

咱们应用 NVCaffe 测试了 GoogLeNet 网络在 NVMe SSD 本地盘、SSD 云盘和高效云盘上的图像分类推理性能,测试后果如下(数据单位是 Images/Second):

数据预处理测试

在训练模型之前,往往要对训练数据集做数据预处理,对立数据格式,并做肯定的归一化解决。

咱们应用 NVCaffe 对 ImageNet ILSVRC2012 数据集做了数据预处理的测试,别离比照了 NVMe SSD 本地盘、SSD 云盘和高效云盘的数据预处理工夫,数据单位是秒,数据如下:

数据分析

训练

图像分类

从 NVCaffe 和 MXNet 的测试后果来看,图像分类场景单纯的训练阶段对 CPU 要求不高,单 GPU 只须要 4vCPU 就能够。而内存需要则取决于深度学习框架、神经网络类型和训练数据集的大小:测试中发现 NVCaffe 随着迭代次数的增多,内存是一直增大的,然而内存需要增大到肯定水平,对性能就不会有什么晋升了,其中 NVCaffe AlexNet 网络的训练,相比其它网络对于内存的耗费要大得多。相比之下 MXNet 的内存占用则要小的多(这也是 MXNet 的一大劣势),93G 预处理过的训练数据集训练过程中内存占用不到 5G。

对于磁盘 IO 性能,测试显示训练阶段 NVMe SSD 本地盘、SSD 云盘性能根本靠近,高效云盘上的性能略差 1%。因而训练阶段对 IO 性能的要求不高。

自然语言解决

从 MXNet 的测试后果来看,对于 PennTreeBank 这样规模的数据集,2vCPU 1GB Mem 就能满足训练需要。因为自然语言解决的原始数据不像图像分类一样是大量高清图片,自然语言解决的原始数据以文本文件为主,因而自然语言解决对内存和显存的要求都不高,从咱们的测试来看,4vCPU 30GB 1GPU 规格根本满足训练阶段需要。

推理

图像分类

从 NVCaffe 的图像分类推理测试来看,除 AlexNet 2vCPU 刚刚够用外,其它网络 2vCPU 对性能没有影响,而 9.4GB 的验证数据集推理过程中内存占用大略是 7GB 左右,因而对大部分模型来看,2vCPU 30GB 1GPU 规格根本满足图像分类推理的性能需求。

对于磁盘 IO 性能,推理性能 NVMe SSD 本地盘、SSD 云盘很靠近,但高效云盘差 15%。因而推理阶段至多应该应用 SSD 云盘保障性能。

自然语言解决

对于自然语言解决,参考训练性能需求,咱们应该能够揣测 2vCPU 30GB 1GPU 规格应该也能满足需要。

从 MXNet 的测试后果来看,对于 PennTreeBank 这样规模的数据集,2vCPU 1GB Mem 就能满足训练需要。

因为自然语言解决的原始数据不像图像分类一样是大量高清图片,自然语言解决的原始数据以文本文件为主,因而自然语言解决对内存和显存的要求都不高,从咱们的测试来看,4vCPU 30GB 1GPU 规格根本满足训练阶段需要。

推理

图像分类

从 NVCaffe 的图像分类推理测试来看,除 AlexNet 2vCPU 刚刚够用外,其它网络 2vCPU 对性能没有影响,而 9.4GB 的验证数据集推理过程中内存占用大略是 7GB 左右,因而对大部分模型来看,2vCPU 30GB 1GPU 规格根本满足图像分类推理的性能需求。

对于磁盘 IO 性能,推理性能 NVMe SSD 本地盘、SSD 云盘很靠近,但高效云盘差 15%。因而推理阶段至多应该应用 SSD 云盘保障性能。

自然语言解决

对于自然语言解决,参考训练性能需求,咱们应该能够揣测 2vCPU 30GB 1GPU 规格应该也能满足需要。

数据预处理

从 NVCaffe 对 ImageNet ILSVRC2012 数据集做数据预处理的测试来看,数据预处理阶段是 IO 密集型,NVMe SSD 本地盘比 SSD 云盘快 25%,而 SSD 云盘比高效云盘快 10%。

总结:

深度学习框架泛滥,神经网络类型也是品种繁多,咱们选取了支流的框架和神经网络类型,尝试对单机 GPU 云服务器的深度学习性能模型做了初步的剖析,论断是:

深度学习训练阶段是 GPU 运算密集型,对于 CPU 占用不大,而内存的需要取决于深度学习框架、神经网络类型和训练数据集的大小;对磁盘 IO 性能不敏感,云盘根本可能满足需要。

深度学习推理阶段对于 CPU 的占用更小,然而对于磁盘 IO 性能绝对较敏感,因为推理阶段对于提早有肯定的要求,更高的磁盘 IO 性能对于升高数据读取的延时进而升高整体提早有很大的帮忙。

深度学习数据预处理阶段是 IO 密集型阶段,更高的磁盘 IO 性能可能大大缩短数据预处理的工夫。

正文完
 0