网站开发和维护费用,社区电商网站设计,网站转化率,孟津网站建设摘要#xff1a; 本文根据实测数据#xff0c;初步探讨了在弹性GPU云服务器上深度学习的性能模型#xff0c;可帮助科学选择GPU实例的规格。1 背景得益于GPU强大的计算能力#xff0c;深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突破#xff0c;GP…摘要 本文根据实测数据初步探讨了在弹性GPU云服务器上深度学习的性能模型可帮助科学选择GPU实例的规格。
1 背景 得益于GPU强大的计算能力深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突破GPU服务器几乎成了深度学习加速的标配。 阿里云GPU云服务器在公有云上提供的弹性GPU服务可以帮助用户快速用上GPU加速服务并大大简化部署和运维的复杂度。如何提供一个合适的实例规格从而以最高的性价比提供给深度学习客户是我们需要考虑的一个问题本文试图从CPU、内存、磁盘这三个角度对单机GPU云服务器的深度学习训练和预测的性能模型做了初步的分析希望能对实例规格的选择提供一个科学的设计模型。 下面是我们使用主流的几个开源深度学习框架在NVIDIA GPU上做的一些深度学习的测试。涉及NVCaffe、MXNet主流深度学习框架测试了多个经典CNN网络在图像分类领域的训练和推理以及RNN网络在自然语言处理领域的训练。2 训练测试 我们使用NVCaffe、MXNet主流深度学习框架测试了图像分类领域和自然语言处理领域的训练模型。2.1 图像分类 我们使用NVCaffe、MXNet测试了图像分类领域的CNN网络的单GPU模型训练。 NVCaffe和MXNet测试使用ImageNet ILSVRC2012数据集训练图片1281167张包含1000个分类每个分类包含1000张左右的图片。2.1.1 CPUMemory2.1.1.1 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次。2.1.1.2 MXNet MXNet的数据集使用RecordIO格式ImageNet训练集 93GB 验证集 3.7GB。 我们使用网络Inception-v3GoogLeNet的升级版做了图像分类的训练测试。分别对比了不同vCPU和Memory配置下的训练性能。数据单位是Samples/Second每秒处理的图像张数。2.1.2 磁盘IO 我们在阿里云GN5(P100)实例上使用NVCaffe测试了GoogLeNet网络模型在NVMe SSD本地盘、SSD云盘和高效云盘上的训练性能测试结果如下性能数据单位是Images/Second2.2 自然语言处理 我们使用MXNet测试了RNN网络的LSTM模型的训练使用PennTreeBank自然语言数据集。PennTreeBank数据集的文本语料库包含近100万个单词单词表被限定在10000个单词。分别对比了不同vCPU和Memory配置下的训练性能3 推理测试3.1 图像分类 我们使用NVCaffe测试了图像分类领域的CNN网络的模型推理。测试使用ImageNet ILSVRC2012数据集验证测试图片 50000张。3.1.1 CPUMemory 我们使用NVcaffe对AlexNet、GoogLeNet、ResNet50、VGG16四种经典卷积神经网络做了图像分类的推理测试。分别对比了不同vCPU和Memory配置下的训练性能。数据单位是Images/Second每秒处理的图像张数。3.1.2 磁盘IO 我们使用NVCaffe测试了GoogLeNet网络在NVMe SSD本地盘、SSD云盘和高效云盘上的图像分类推理性能测试结果如下数据单位是Images/Second4 数据预处理测试 在训练模型之前往往要对训练数据集做数据预处理统一数据格式并做一定的归一化处理。 我们使用NVCaffe对ImageNet ILSVRC2012数据集做了数据预处理的测试分别对比了NVMe SSD本地盘、SSD云盘和高效云盘的数据预处理时间数据单位是秒数据如下5 数据分析5.1 训练5.1.1 图像分类 从NVCaffe和MXNet的测试结果来看图像分类场景单纯的训练阶段对CPU要求不高单GPU 只需要4vCPU就可以。而内存需求则取决于深度学习框架、神经网络类型和训练数据集的大小测试中发现NVCaffe随着迭代次数的增多内存是不断增大的但是内存需求增大到一定程度对性能就不会有什么提升了其中NVCaffe AlexNet网络的训练相比其它网络对于内存的消耗要大得多。相比之下MXNet的内存占用则要小的多这也是MXNet的一大优势93G预处理过的训练数据集训练过程中内存占用不到5G。对于磁盘IO性能测试显示训练阶段NVMe SSD本地盘、SSD云盘性能基本接近高效云盘上的性能略差1%。因此训练阶段对IO性能的要求不高。5.1.2 自然语言处理 从MXNet的测试结果来看对于PennTreeBank这样规模的数据集2vCPU 1GB Mem就能满足训练需求。由于自然语言处理的原始数据不像图像分类一样是大量高清图片自然语言处理的原始数据以文本文件为主因此自然语言处理对内存和显存的要求都不高从我们的测试来看4vCPU 30GB 1GPU规格基本满足训练阶段需求。5.2 推理5.2.1 图像分类 从NVCaffe的图像分类推理测试来看除AlexNet 2vCPU刚刚够用外其它网络2vCPU对性能没有影响而9.4GB的验证数据集推理过程中内存占用大概是7GB左右因此对大部分模型来看2vCPU 30GB 1GPU规格基本满足图像分类推理的性能需求。 对于磁盘IO性能推理性能NVMe SSD本地盘、SSD云盘很接近但高效云盘差15%。因此推理阶段至少应该使用SSD云盘保证性能。5.2.2 自然语言处理 对于自然语言处理参考训练性能需求我们应该可以推测2vCPU 30GB 1GPU规格应该也能满足需求。5.3 数据预处理 从NVCaffe对ImageNet ILSVRC2012数据集做数据预处理的测试来看数据预处理阶段是IO密集型NVMe SSD本地盘比SSD云盘快25%而SSD云盘比高效云盘快10%。6 总结 深度学习框架众多神经网络类型也是种类繁多我们选取了主流的框架和神经网络类型尝试对单机GPU云服务器的深度学习性能模型做了初步的分析结论是深度学习训练阶段是GPU运算密集型对于CPU占用不大而内存的需求取决于深度学习框架、神经网络类型和训练数据集的大小对磁盘IO性能不敏感云盘基本能够满足需求。深度学习推理阶段对于CPU的占用更小但是对于磁盘IO性能相对较敏感因为推理阶段对于延迟有一定的要求更高的磁盘IO性能对于降低数据读取的延时进而降低整体延迟有很大的帮助。深度学习数据预处理阶段是IO密集型阶段更高的磁盘IO性能能够大大缩短数据预处理的时间。原文链接干货好文请关注扫描以下二维码