GPU云服务器深度学习性能模型初探

云栖君导读:本文根据实测数据,初步探讨了在弹性GPU云服务器上深度学习的性能模型,可帮助科学选择GPU实例的规格。


一、背景


得益于GPU强大的计算能力,深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突GPU服务器几乎成了深度学习加速的标配。


阿里云GPU云服务器在公有云上提供的弹性GPU服务,可以帮助用户快速用上GPU加速服务,并大大简化部署和运维的复杂度。如何提供一个合适的实例规格,从而以最高的性价比提供给深度学习客户,是我们需要考虑的一个问题,本文试图从CPU、内存、磁盘这三个角度对单机GPU云服务器的深度学习训练和预测的性能模型做了初步的分析,希望能对实例规格的选择提供一个科学的设计模型。


下面是我们使用主流的几个开源深度学习框架在NVIDIA GPU上做的一些深度学习的测试。涉及NVCaffe、MXNet主流深度学习框架,测试了多个经典CNN网络在图像分类领域的训练和推理以及RNN网络在自然语言处理领域的训练。


二、训练测试


我们使用NVCaffe、MXNet主流深度学习框架测试了图像分类领域和自然语言处理领域的训练模型。


2.1 图像分类


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

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

2.1.1 CPU+Memory


2.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次。


640?wx_fmt=png 640?wx_fmt=png 640?wx_fmt=png 640?wx_fmt=png


2.1.1.2 MXNet


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


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


640?wx_fmt=png


2.1.2 磁盘IO

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


640?wx_fmt=png


2.2 自然语言处理


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


640?wx_fmt=png


三、推理测试


3.1 图像分类


我们使用NVCaffe测试了图像分类领域的CNN网络的模型推理。


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


3.1.1 CPU+Memory


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


640?wx_fmt=png


3.1.2 磁盘IO


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


640?wx_fmt=png


四、数据预处理测试


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


我们使用NVCaffe对ImageNet ILSVRC2012数据集做了数据预处理的测试,分别对比了NVMe SSD本地盘、SSD云盘和高效云盘的数据预处理时间,数据单位是秒,数据如下:


640?wx_fmt=png


五、数据分析


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%。


六、总结
  

深度学习框架众多,神经网络类型也是种类繁多,我们选取了主流的框架和神经网络类型,尝试对单机GPU云服务器的深度学习性能模型做了初步的分析,结论是:


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

  2. 深度学习推理阶段对于CPU的占用更小,但是对于磁盘IO性能相对较敏感,因为推理阶段对于延迟有一定的要求,更高的磁盘IO性能对于降低数据读取的延时进而降低整体延迟有很大的帮助。

  3. 深度学习数据预处理阶段是IO密集型阶段,更高的磁盘IO性能能够大大缩短数据预处理的时间。


end


阿里巴巴千亿交易背后的0故障发布

阿里巴巴6大行业报告免费分享啦!

七本书籍带你打下机器学习和数据科学的数学基础

Logtail 从入门到精通:开启日志采集之旅

更多精彩

640?wx_fmt=jpeg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于服务器部署深度学习模型,您可以按照以下步骤进行操作: 1. 选择服务提供商:首先,您需要选择一个服务提供商,如阿里、腾讯或亚马逊AWS等。不同的服务提供商可能会有不同的服务和定价方案,您可以根据自己的需求选择最适合的。 2. 创建虚拟机实例:在所选的服务提供商中,您需要创建一个虚拟机实例作为您的服务器。在创建实例时,您需要选择适当的配置,包括计算资源、存储容量和操作系统等。 3. 安装深度学习框架:在您的服务器上安装所需的深度学习框架,如TensorFlow、PyTorch或Keras等。您可以通过命令行或者包管理器来安装这些框架。 4. 数据和模型上传:将您的深度学习模型和训练数据上传到服务器。您可以使用SCP或者SFTP等工具进行文件传输。 5. 配置环境和依赖项:根据您的深度学习模型的需求,安装所需的依赖项和库。这些依赖项可能包括GPU驱动、CUDA和cuDNN等。 6. 运行深度学习模型:在您的服务器上运行深度学习模型。您可以使用命令行或者编写脚本来执行训练或推理任务。 7. 监控和优化:监控您的服务器性能和资源利用情况。根据需要,您可以进行调优和优化,以提高模型的训练速度或推理性能。 请注意,具体的步骤可能因服务提供商和深度学习框架的不同而有所差异。此外,还需要确保您有足够的计算资源和存储空间来支持您的深度学习任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值