得益于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性能可能大大缩短数据预处理的工夫。