安裝和使用Deepytorch Training
Deepytorch Training是阿里云自研的AI加速器,面向傳統(tǒng)AI和生成式AI場景,在模型訓(xùn)練過程中,可提供顯著的訓(xùn)練加速能力。本文主要介紹安裝并使用Deepytorch Training的操作方法。
關(guān)于Deepytorch Training的更多信息,請參見什么是Deepytorch Training(訓(xùn)練加速)。
前提條件
已創(chuàng)建阿里云GPU實例,且GPU實例需滿足以下要求:
操作系統(tǒng)為Alibaba Cloud Linux、CentOS 7.x、Ubuntu 18.04或更高版本。
已安裝NVIDIA Driver、CUDA且滿足相應(yīng)的版本要求。
創(chuàng)建GPU實例時,選擇鏡像后,建議您同時選中安裝GPU驅(qū)動選項,然后依次選擇CUDA版本、Driver版本以及cuDNN版本,具體操作,請參見創(chuàng)建GPU實例。
已安裝PyTorch且滿足相應(yīng)的版本要求。
支持的版本列表
Deepytorch Training支持多種PyTorch、CUDA以及Python版本。版本對應(yīng)關(guān)系如下所示:
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為例,執(zhí)行pip install deepgpu
命令即可安裝Deepytorch Training。
Deepytorch Training屬于DeepGPU的工具包之一,DeepGPU會根據(jù)您當前的軟件環(huán)境自動匹配對應(yīng)的Deepytorch Training安裝包。
pip3 install deepgpu==2.1.0
使用Deepytorch Training
您僅需要在模型的訓(xùn)練腳本開頭增加一行代碼,即可啟用Deepytorch Training優(yōu)化功能,增加的代碼如下所示:
import deepytorch # 導(dǎo)入deepytorch庫
import deepytorch
需要在import torch
命令行之前增加。
訓(xùn)練效果驗證
本示例以ResNet50模型為例,通過Deepytorch訓(xùn)練該模型,其加速優(yōu)化效果如下。
其中,PyTorch為2.2.0版本,GPU實例規(guī)格為ecs.ebmgn7vx.32xlarge
。
執(zhí)行以下代碼,進入示例代碼目錄。
cd `echo $(python -c "import deepytorch; print(deepytorch)") | cut -d\' -f 4 | sed "s/\_\_init\_\_\.py//"`examples/DDPBenchmark
訓(xùn)練ResNet50模型。
本示例中使用單機8卡機型,其中batch size為512。
使用原生PyTorch訓(xùn)練模型
bash run_benchmark.sh 1 0 8
原生PyTorch訓(xùn)練結(jié)果如下所示,訓(xùn)練吞吐量為每秒1571張圖片。
使用Deepytorch加速訓(xùn)練模型
bash run_benchmark_deepgpu.sh 1 0 8
Deepytorch訓(xùn)練結(jié)果如下所示,訓(xùn)練吞吐量為每秒2908張圖片。
說明如果使用單機非8卡機型,請將示例代碼中最后的數(shù)字修改為實際對應(yīng)的卡數(shù)。例如,選擇單機2卡機型時,使用Deepytorch加速訓(xùn)練模型時,代碼如下:
bash run_benchmark_deepgpu.sh 1 0 2
如果訓(xùn)練日志出現(xiàn)OOM報錯,請您自行修改
run_benchmark.sh
和run_benchmark_deepgpu.sh
腳本中的--batch-size
為256或128。
對比ResNet50模型的訓(xùn)練加速效果。
使用原生PyTorch訓(xùn)練模型后,訓(xùn)練吞吐量為每秒1571張圖片。而使用Deepytorch加速訓(xùn)練模型后,訓(xùn)練吞吐量為每秒2908張圖片,相比原生PyTorch,使用Deepytorch訓(xùn)練性能提升了85%(加速效果顯著)。