深度学习训练,选择P100就对了

本文对比了NVIDIA Tesla P100与P40在深度学习训练上的性能。P40虽单精度计算力更强,但受制于显存带宽,实测显示P100训练性能至少高20%。
部署运行你感兴趣的模型镜像

1.背景

去年4月,NVIDIA推出了Tesla P100加速卡,速度是NVIDIA之前高端系统的12倍。同年9月的GTC China 2016大会,NVIDIA又发布了Tesla P4、P40两款深度学习芯片。Tesla P100主攻学习和训练任务,而Tesla P4&P40主要负责图像、文字和语音识别。

同为Pascal架构且运算能力接近的P100和P40常常被拿来对比,单看Spec上运算能力,似乎P40比P100的深度学习性能更好,但实际上呢?本文就通过使用NVCaffe、MXNet、TensorFlow三个主流开源深度学习框架对P100和P40做性能实测来揭晓答案吧。

2.初步分析

我们先来看下P100和P40的Spec参数指标。从参数来看,的确是P40的单精运算能力强于P100,而深度学习训练普遍使用单精度浮点类型,是衡量深度学习性能的一个重要指标。P40支持IN8类型,所以非常适合精度要求不高的推理场景,24G的显存也非常适合在线处理大数据量的图像等。但是P100搭载的是HBM2高速显存,而P40只搭载了GDDR5的显存,这使得P100的显存带宽达到了P40的2倍多,而这是影响深度学习训练的另一个重要指标,在训练中会有大量的显存操作,对显存带宽要求很高。这一点很可能会制约P40的训练性能。当然这需要实测的数据来验证,下一节是我们的实测数据。

3.实测数据

3.1 NVCaffe:GoogLeNet

使用ImageNet ILSVRC2012数据集,其中训练图片1281167张, 验证测试图片 5万张,数据单位是Images/Second(每秒处理的图像张数),OOM表示Batch Size太大导致GPU显存不够。

测试数据如下:

不同Batch Size单卡性能对比:

最大性能对比:

3.2 MXNet:Inception-v3

使用Benchmark模式测试Imagenet训练,数据单位samples/sec,测试数据如下:

3.3 TensorFlow:AlexNet

TensorFlow使用AlexNet Benchmark模式测试单GPU Forward和Forward-backward作为比较参考,数据单位sec/ batch,越小性能越好。

P100与P40比较的单GPU测试数据如下:

4 测试结论

通过实测NVCaffe、MXNet、TensorFlow三个主流深度学习框架的图像分类训练性能,验证了我们前面的分析,P40虽然计算力优于P100,但是受限于显存带宽,在深度学习训练上性能是不如P100的,通过实测数据,我们可以得出结论:P100比P40训练性能至少高出20%以上。

深度学习训练,选择P100就对了。

阿里云上提供的GN5系列GPU实例,可搭载最多8块P100 GPU,可大大加速深度学习训练,搭载最新V100 GPU的GN6实例近期也已经上线公测,我们后续也会给出GN6实例的性能评测报告。


阅读原文

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

李宏毅2020机器学习深度学习 P1. Machine Learning 2020_ Course Introduction P2. Rule of ML 2020 P3. Regression - Case Study P4. Basic Concept P5. Gradient Descent_1 P6. Gradient Descent_2 P7. Gradient Descent_3 P8. Optimization for Deep Learning 1_2 选学 P9. Optimization for Deep Learning 2_2 选学 P10. Classification_1 P11. Logistic Regression P12. Brief Introduction of Deep Learning P13. Backpropagation P14. Tips for Training DNN P15. Why Deep- P16. PyTorch Tutorial P17. Convolutional Neural Network P18. Graph Neural Network 1_2 选学 P19. Graph Neural Network 2_2 选学 P20. Recurrent Neural Network Part I P21. Recurrent Neural Network Part II P22. Unsupervised Learning - Word Embedding P23. Transformer P24. Semi-supervised P25. ELMO, BERT, GPT P26. Explainable ML 1_8 P27. Explainable ML 2_8 P28. Explainable ML 3_8 P29. Explainable ML 4_8 P30. Explainable ML 5_8 P31. Explainable ML 6_8 P32. Explainable ML 7_8 P33. Explainable ML 8_8 P34. More about Explainable AI 选学 P35. Attack ML Models 1_8 P36. Attack ML Models 2_8 P37. Attack ML Models 3_8 P38. Attack ML Models 4_8 P39. Attack ML Models 5_8 P40. Attack ML Models 6_8 P41. Attack ML Models 7_8 P42. Attack ML Models 8_8 P43. More about Adversarial Attack 1_2 选学 P44. More about Adversarial Attack 2_2 选学 P45. Network Compression 1_6 P46. Network Compression 2_6 P47. Network Compression 3_6 P48. Network Compression 4_6 P49. Network Compression 5_6 P50. Network Compression 6_6 P51. Network Compression 1_2 - Knowledge Distillation .flv P52. Network Compression 2_2 - Network Pruning 选学 P53. Conditional Generation by RNN & Attention P54. Pointer Network P55. Recursive P56. Transformer and its variant 选学 P57. Unsupervised Learning - Linear Methods P58. Unsupervised Learning - Neighbor Embedding P59. Unsupervised Learning - Auto-encoder P60. Unsupervised Learning - Deep Generative Model Part.flv P61. Unsupervised Learning - Deep Generative Model Part.flv P62. More about Auto-encoder 1_4 P63. More about Auto-encoder 2_4 P64. More about Auto-encoder 3_4 P65. More about Auto-encoder 4_4 P66. Self-supervised Learning 选学 P67. Anomaly Detection 1_7 P68. Anomaly Detection 2_7 P69. Anomaly Detection 3_7 P70. Anomaly Detection 4_7 P71. Anomaly Detection 5_7 P72. Anomaly Detection 6_7 P73. Anomaly Detection 7_7 P74. More about Anomaly Detection 选学 P75. Generative Adversarial Network1_10 P76. Generative Adversarial Network2_10 P77. Generative Adversarial Network3_10 P78. Generative Adversarial Network4_10 P79. Generative Adversarial Network5_10 P80. Generative Adversarial Network6_10 P81. Generative Adversarial Network7_10 P82. Generative Adversarial Network8_10 P83. Generative Adversarial Network9_10 P84. Generative Adversarial Network10_10 P85. SAGAN, BigGAN, SinGAN, GauGAN, GANILLA, NICE-GAN(选学.flv P86. Transfer Learning P87. More about Domain Adaptation 1_2 选学 P88. More about Domain Adaptation 2_2 选学 P89. Meta Learning – MAML 1_9 P90. Meta Learning – MAML 2_9 P91. Meta Learning – MAML 3_9 P92. Meta Learning – MAML 4_9 P93. Meta Learning – MAML 5_9 P94. Meta Learning – MAML 6_9 P95. Meta Learning – MAML 7_9 P96. Meta Learning – MAML 8_9 P97. Meta Learning – MAML 9_9 P98. More about Meta Learning 选学 P99. More about Meta Learning 选学 P100. Life Long Learning 1_7 P101. Life Long Learning 2_7 P102. Life Long Learning 3_7 P103. Life Long Learning 4_7 P104. Life Long Learning 5_7 P105. Life Long Learning 6_7 P106. Life Long Learning 7_7 P107. Deep Reinforcemen Learning3_1 P108. Deep Reinforcemen Learning3_2 P109. Deep Reinforcemen Learning3_3 P110. RL Advanced Version_1_Policy Gradient P111. RL Advanced Version_2_ Proximal Policy Optimizatio.flv P112. RL Advanced Version_3_Q-Learning P113. RL Advanced Version_4_Q-Learning Advanced Tips P114. RL Advanced Version_5_Q-Learning Continuous Action.flv P115. RL Advanced Version_6_Actor-Critic P116. RL Advanced Version_7_Sparse Reward P117. RL Advanced Version_8_Imitation Learning
在阿里云平台上进行深度学习模型训练,通常需要完成服务器配置、环境搭建、代码上传与执行等多个步骤。以下是一个完整的流程说明。 ### 3.1 配置GPU计算服务器 首先,选择合适的阿里云GPU实例类型。例如NVIDIA Tesla V100或P100等高性能GPU型号,适用于深度学习任务。创建实例时建议选择Ubuntu系统,便于后续安装依赖库和开发工具[^1]。 服务器创建完成后,通过SSH方式连接到远程主机。如果使用Windows本地环境,可以通过`ssh username@ip_address`命令实现连接;若希望更高效地操作,可使用VSCode的Remote-SSH插件实现远程开发环境搭建[^3]。 ### 3.2 环境配置 为了简化依赖管理,推荐使用Conda虚拟环境。通过Miniconda或Anaconda安装后,创建独立的Python环境并激活: ```bash conda create -n tf_gpu python=3.8 conda activate tf_gpu ``` 随后安装TensorFlow GPU版本或PyTorch等深度学习框架,并确保CUDA驱动版本兼容。 例如,安装TensorFlow-GPU: ```bash pip install tensorflow-gpu ``` 此外,如果训练过程中涉及图像生成或数据处理,可能还需要安装额外的依赖包,如`captcha`用于验证码生成[^4]: ```bash pip install captcha ``` ### 3.3 使用Jupyter Notebook或VSCode进行训练 为了提升开发效率,可以安装Jupyter Notebook并配置远程访问权限。启动服务后,通过浏览器访问指定端口即可编写和运行训练代码[^1]。 另一种方式是使用VSCode结合Remote-SSH插件,在本地IDE中直接编辑远程服务器上的文件,并通过终端运行训练脚本。这种方式更加贴近本地开发体验,适合复杂项目的调试与优化。 ### 3.4 模型训练与调优 在实际训练过程中,可能会遇到过拟合问题。为缓解这一情况,可以采用以下策略: - **调整批量大小(Batch Size)**:尝试增大batch size以提高训练稳定性,但需注意内存限制; - **早停机制(Early Stopping)**:监控验证集性能,当其不再提升时停止训练; - **保存最佳模型**:定期将当前最优模型权重保存至磁盘,便于后续恢复; - **交叉验证(Cross Validation)**:对于小样本数据集,可使用k折交叉验证来增强模型泛化能力[^2]。 示例代码片段如下,展示了如何在PyTorch中实现模型保存与加载: ```python # 训练过程中保存最佳模型 if val_loss < best_val_loss: torch.save(model.state_dict(), 'best_model.pth') best_val_loss = val_loss # 加载最佳模型 model.load_state_dict(torch.load('best_model.pth')) ``` ### 3.5 测试与评估 训练结束后,应使用独立的测试集对最终模型进行评估,确保其在未见过的数据上仍能保持良好表现。常用指标包括准确率、F1分数、AUC-ROC曲线等,具体取决于任务类型(分类、回归、检测等)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值