Deepytorch Training是阿里云自研的AI加速器,面向传统AI和生成式AI场景,在模型训练过程中,可提供显著的训练加速能力。本文主要介绍安装并使用Deepytorch Training的操作方法。
关于Deepytorch Training的更多信息,请参见什么是Deepytorch Training(训练加速)。
前提条件
已创建阿里云GPU实例,且GPU实例需满足以下要求:
-
操作系统为Alibaba Cloud Linux、CentOS 7.x、Ubuntu 18.04或更高版本。
-
已安装NVIDIA Driver、CUDA且满足相应的版本要求。
创建GPU实例时,选择镜像后,建议您同时选中安装GPU驱动选项,然后依次选择CUDA版本、Driver版本以及cuDNN版本,具体操作,请参见创建GPU实例。
-
已安装PyTorch且满足相应的版本要求。
支持的版本列表
Deepytorch Training支持多种PyTorch、CUDA以及Python版本。版本对应关系如下:
|
PyTorch Version |
CUDA Runtime Version |
Python Version |
|
1.10.x |
11.1/11.3 |
3.8/3.9 |
|
1.11.x |
11.3 |
3.8/3.9/3.10 |
|
1.12.x |
11.3/11.6 |
3.8/3.9/3.10 |
|
1.13.x |
11.6/11.7 |
3.8/3.9/3.10 |
|
2.0.x |
11.7/11.8 |
3.8/3.9/3.10/3.11 |
|
2.1.x |
11.8/12.1 |
3.8/3.9/3.10/3.11 |
|
2.2.x |
11.8/12.1 |
3.8/3.9/3.10/3.11 |
安装Deepytorch Training
以安装2.1.0版本的Deepytorch Training为例,执行pip install deepgpu命令即可安装Deepytorch Training。
Deepytorch Training属于DeepGPU的工具包之一,DeepGPU会根据您当前的软件环境自动匹配对应的Deepytorch Training安装包。
pip3 install deepgpu==2.1.0
使用Deepytorch Training
您仅需要在模型的训练脚本开头增加一行代码,即可启用Deepytorch Training优化功能,增加的代码如下所示:
import deepytorch # 导入deepytorch库
import deepytorch需要在import torch命令行之前增加。
训练效果验证
本示例以ResNet50模型为例,通过Deepytorch训练该模型,其加速优化效果如下。
其中,PyTorch为2.2.0版本,GPU实例规格为ecs.ebmgn7vx.32xlarge。
-
执行以下代码,进入示例代码目录。
cd `echo $(python -c "import deepytorch; print(deepytorch)") | cut -d\' -f 4 | sed "s/\_\_init\_\_\.py//"`examples/DDPBenchmark -
训练ResNet50模型。
本示例中使用单机8卡机型,其中batch size为512。
-
使用原生PyTorch训练模型
bash run_benchmark.sh 1 0 8原生PyTorch训练结果:训练吞吐量为每秒1571张图片。
8 GPUs -- 1M/8G: p50: 0.326s 1572/s p75: 0.326s 1571/s p90: 0.326s 1571/s p95: 0.326s 1571/s -
使用Deepytorch加速训练模型
bash run_benchmark_deepgpu.sh 1 0 8Deepytorch训练吞吐量为每秒2908张图片。
8 GPUs -- 1M/8G: p50: 0.176s 2912/s p75: 0.176s 2911/s p90: 0.176s 2909/s p95: 0.176s 2908/s
说明-
如果使用单机非8卡机型,请将示例代码中最后的数字修改为实际对应的卡数。例如,选择单机2卡机型时,使用Deepytorch加速训练模型时,代码如下:
bash run_benchmark_deepgpu.sh 1 0 2 -
如果训练日志出现OOM报错,请您自行修改
run_benchmark.sh和run_benchmark_deepgpu.sh脚本中的--batch-size为256或128。
-
-
对比ResNet50模型的训练加速效果。
使用原生PyTorch训练模型后,训练吞吐量为每秒1571张图片。而使用Deepytorch加速训练模型后,训练吞吐量为每秒2908张图片,相比原生PyTorch,使用Deepytorch训练性能提升了85%(加速效果显著)。