ネイティブPyTorch DistributedDataParallel (DDP) を使用してトレーニングされたモデルと比較して、AIACC-ACSpeed (ACSpeed) を使用してトレーニングされたモデルは、大幅に改善されたパフォーマンスを提供します。 このトピックでは、モデルトレーニングにおけるACSpeedのパフォーマンスデータを示します。
設定のテスト
ACSpeed: ACSpeed V1.0.2
CUDA: CUDA V11.1
トーチ: トーチ1.8.1 + cu111
インスタンス仕様: 8つのGPUを搭載したGPU高速化インスタンス
テスト結果
このトピックでは、さまざまなシナリオでモデルトレーニングを実行するためにAlibaba Cloud GPUアクセラレーションインスタンスでACSpeedを使用した場合のACSpeedのパフォーマンスデータを示します。 このトピックでは、ACSpeed V1.0.2が使用されます。 各GPU高速化インスタンスには8つのGPUが搭載されています。
テスト結果は、ACSpeedが複数のモデルのパフォーマンスを向上させ、全体的なパフォーマンスが5% 〜200% 向上することを示しています。 ACSpeedは、ネイティブPyTorch DDPのスケーラビリティが低いシナリオでパフォーマンスを大幅に向上させます。 ACSpeedのパフォーマンスも一貫しています。 次の図は、テスト結果を示しています。
次の表に、図の要素を示します。
要素 | 説明 |
ddp_acc (x軸) | マルチサーバーおよびマルチGPUトレーニングにおけるネイティブPyTorch DDPのスケーラビリティ。 マルチサーバーおよびマルチGPUトレーニングにおけるPyTorch DDPのスケーラビリティは、マルチサーバーの線形性によって示されます。 より低い線形性値は、より低いスケーラビリティを示す。 マルチサーバ線形性は、以下の式に基づいて計算される。マルチサーバ線形性=マルチサーバ性能 /単一サーバ性能 /サーバ数。 |
acc_ratio (y軸) | パフォーマンス指標によって測定されたPyTorch DDPに対するACSpeedの改善率。 例えば、値1.25は、ACSpeedによって提供される性能がPyTorch DDPによって提供される性能の1.25倍であることを示す。 これは、ACSpeedがPyTorch DDPと比較して25% パフォーマンスを向上させることを意味します。 |
DDPスケーラビリティVS AcSpeed Acc (ドット) | ドットは、PyTorch DDPによって提供されるモデル性能およびACSpeedによって提供される改善されたモデル性能に対応する。 異なる色は、サーバーの数が異なることを示します。
|
モデル性能データ
テスト対象の共通モデルのパフォーマンスデータのみを示します。 パフォーマンスの向上は、シナリオによってモデルの通信コンピューティングの比率によって異なります。
他のサーバーのパフォーマンステストデータを取得する場合は、DingTalkグループ33617640
に参加してテクニカルサポートを行います。 ダウンロードページからDingTalkをダウンロードできます。
シナリオ1: alexnetモデルのトレーニング
モデル: alexnet
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 128
精度: 自動混合精度 (AMP)
次の図は、トレーニングシナリオでのalexnetモデルのパフォーマンスデータを示しています。
シナリオ2: resnet18モデルのトレーニング
モデル: resnet18
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 16
精度: AMP
次の図は、トレーニングシナリオでのresnet18モデルのパフォーマンスデータを示しています。
シナリオ3: resnet50モデルのトレーニング
モデル: resnet50
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 32
精度: AMP
次の図は、トレーニングシナリオでのresnet50モデルのパフォーマンスデータを示しています。
シナリオ4: vgg16モデルのトレーニング
モデル: vgg16
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 64
精度: AMP
次の図は、トレーニングシナリオにおけるvgg16モデルのパフォーマンスデータを示しています。
シナリオ5: timm_vovnetモデルのトレーニング
モデル: timm_vovnet
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 32
精度: AMP
次の図は、トレーニングシナリオでのtimm_vovnetモデルのパフォーマンスデータを示しています。
シナリオ6: timm_vision_transformerモデルのトレーニング
モデル: timm_vision_transformer
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 8
精度: AMP
次の図は、トレーニングシナリオにおけるtimm_vision_transformerモデルのパフォーマンスデータを示しています。
シナリオ7: pytorch_unetモデルのトレーニング
モデル: pytorch_unet
ドメイン: COMPUTER_VISION
サブドメイン: CLASSIFICATION
Batch_size: 1
精度: AMP
次の図は、トレーニングシナリオでのpytorch_unetモデルのパフォーマンスデータを示しています。
シナリオ8: hf_Bartモデルのトレーニング
モデル: hf_Bart
ドメイン: NLP
サブドメイン: LANGUAGE_MODELING
Batch_size: 4
精度: AMP
次の図は、トレーニングシナリオでのhf_Bartモデルのパフォーマンスデータを示しています。
シナリオ9: hf_Bertモデルのトレーニング
モデル: hf_Bert
ドメイン: NLP
サブドメイン: LANGUAGE_MODELING
Batch_size: 4
精度: AMP
次の図は、トレーニングシナリオでのhf_Bertモデルのパフォーマンスデータを示しています。
シナリオ10: speech_transformerモデルのトレーニング
モデル: speech_transformer
ドメイン: SPEECH
サブドメイン: RECOGNITION
Batch_size: 32
精度: AMP
次の図に、トレーニングシナリオでのspeech_transformerモデルのパフォーマンスデータを示します。
シナリオ11: tts_angularモデルのトレーニング
モデル: tts_angular
ドメイン: SPEECH
サブドメイン: 合成
Batch_size: 64
精度: AMP
次の図は、トレーニングシナリオにおけるtts_angularモデルのパフォーマンスデータを示しています。