Upgrade to Pro — share decks privately, control downloads, hide ads and more …

実践AWS Inferentia

実践AWS Inferentia

「AWS 秋の Amazon EC2 Deep Dive 祭り 2022」セミナー 発表資料
開催報告:https://aws.amazon.com/jp/blogs/news/event-report-wwso-compute-ec2-20221013/

Keita Watanabe

October 23, 2022
Tweet

More Decks by Keita Watanabe

Other Decks in Technology

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 実践AWS Inferentia AWS 秋の Amazon EC2 Deep Dive 祭り 2022 渡辺啓太 技術統括本部 コンピュートスペシャリスト ソ リューションアーキテクト アマゾン ウェブ サービス ジャパン合同会社
  2. © 2022, Amazon Web Services, Inc. or its affiliates. 自己紹介

    2 名前: 渡辺啓太 所属: 技術統括本部 コンピュートスペシャリスト ソリューションアーキテクト 職務: マネッジドサービスを用いない機械学習 経歴: 大学院にて理論神経科学を研究後、自動運転の スタートアップ企業や国内ECサイト運営企業などで 機械学習リサーチャーとして活動 好きなAWSサービス: Amazon EC2, Amazon EKS, AWS ParallelCluster
  3. © 2022, Amazon Web Services, Inc. or its affiliates. アジェンダ

    3 Part 3. Amazon EC2 Trn1 GA! (3 min. ) Part 1. 概説AWS Inferentia (5 min) Part 2. 実践AWS Inferentia (12 min.) このセッションから得られるもの • Amazon EC2 Inf1インスタンスの 基礎知識 • Amazon EC2 Inf1インスタンス上での 推論器の最適化手法 • 先週GAされたAmazon EC2 Trn1 インスタンスの最新情報 想定視聴者 Inf1を用いた機械学習推論に興味があるが どこから手をつければよいかわからない方
  4. © 2022, Amazon Web Services, Inc. or its affiliates. Part1:

    概説 AWS Inferentia 4
  5. © 2022, Amazon Web Services, Inc. or its affiliates. •

    AWSが開発した推論用チップ • Neuronを用いて高速な 推論を実現 • EC2 Inf1インスタンスに搭載 AWS Inferentia AWS Neuron • Inferentiaチップを使用して 推論を実行するためのソフト ウェア開発キット(SDK) • 高速かつ低価格な推論を実現する Inferentia搭載インスタンス Amazon EC2 Inf1 インスタンス 概説 AWS Inferentia 本パートのアジェンダ AWS Inferentiaクイックツアー AWS EC2 Inf1インスタンスの選択肢 AWS Neuron Part1. 概説 AWS Inferentia 5
  6. © 2022, Amazon Web Services, Inc. or its affiliates. AWS

    Inferentia クイックツアー 6 Part1. 概説 AWS Inferentia TPB 5 TPB 6 TPB 8 TPB 7 Memory Memory Memory Memory Neuron Engine Neuron Engine Neuron Engine AWS Inferentia Neuron Core cache Memory Neuron Core cache Memory Neuron Core cache Memory Neuron Core cache Memory • AWSによる独自設計の推論プロセッサ • 一つのInferentiaチップにつき4つのNeuron Core (アクセラレータ)を搭載 • 記憶階層としてオンチップのキャッシュと8GBの DRAMを搭載 • データ型としてFP16、BF16、INT8をサポート • 高速チップ間通信をサポート
  7. © 2022, Amazon Web Services, Inc. or its affiliates. Amazon

    SageMaker Amazon Elastic Kubernetes Service (Amazon EKS) Amazon Elastic Container Service (Amazon ECS) インスタンスサイズ vCPUs Memory (GIB) Inferentia チップ数 Storage Network 帯域幅 EBS 帯域幅 inf1.xlarge 4 8 1 EBS Up to 25 Gbps Up to 4.75 Gbps inf1.2xlarge 8 16 1 EBS Up to 25 Gbps Up to 4.75 Gbps inf1.6xlarge 24 48 4 EBS 25 Gbps 4.75 Gbps inf1.24xlarge 96 192 16 EBS 100 Gbps 19 Gbps Amazon EKS、Amazon ECS、Amazon SageMakerからも利用可能 Inf1インスタンスの選択肢 7 Part1. 概説 AWS Inferentia
  8. © 2022, Amazon Web Services, Inc. or its affiliates. 8

    AWS Neuron Inferentiaに最適化された推論器を作成するのに必要なSDK 複数の機械学習フレームワーク に対応 Neuron コンパイラ Neuron ランタイム プロファイリングツール TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc. PyTorch, the PyTorch logo and any related marks are trademarks of Facebook, Inc. MXNet AWS Neuron SDK ドキュメント https://awsdocs-neuron.readthedocs-hosted.com/ https://github.com/aws/aws-neuron-sdk チュートリアル サンプルコード Part1. 概説 AWS Inferentia
  9. © 2022, Amazon Web Services, Inc. or its affiliates. Part2:

    実践 AWS Inferentia 9
  10. © 2022, Amazon Web Services, Inc. or its affiliates. Inf1を用いた推論器構築までのフロー

    10 Part2. 実践 AWS Inferentia モデルを構築 する モデルを学習 させる Neuronを用いて モデルを コンパイルする モデルをInf1へ デプロイする 本セッション範囲外 本セッション範囲内 HuggingFace🤗 の学習済み モデルを用いる Part2でカバーするのは この範囲 本パートのアジェンダ • Neuronを用いたモデルのコンパイル • Inferentiaを使い切るための並列化 • 最適化のためのベンチマーク
  11. © 2022, Amazon Web Services, Inc. or its affiliates. Neuron

    SDK によるモデルコンパイル 11 Part2. 実践 AWS Inferentia
  12. © 2022, Amazon Web Services, Inc. or its affiliates. 推論器のリソース使用状況を確認する:

    neuron-top 12 注: inf1.24xlarge使用時 NeuronCore、vCPU、メモリーの使用率などを監視するためのコマンド Part2. 実践 AWS Inferentia
  13. © 2022, Amazon Web Services, Inc. or its affiliates. 推論器のリソース使用状況を確認する

    13 注: inf1.xlarge使用時 先程、コンパイルしたモデルを用い て無限ループ内で推論を行う NeuronCore一つのみが稼働している 様子がneuron-topから確認できる Inf1を効率的に使用するためには、 工夫が必要であることがわかる Part2. 実践 AWS Inferentia
  14. © 2022, Amazon Web Services, Inc. or its affiliates. 推論の並列化へ

    14 Neuron Coreをどのように使い切るかで2つの異なるアプローチが存在する Part2. 実践 AWS Inferentia Data Parallel 各Neuron Coreで独立にモデルを動かす Pipeline Parallel 一つのモデルを各NeuronCoreに分散配置 高スループット が期待できる 低レイテンシー が期待できる
  15. © 2022, Amazon Web Services, Inc. or its affiliates. DataParallelでの実装例

    15 https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/arch/neuron-features/neuroncore-batching.html 主なパラメータ: Batch size Part2. 実践 AWS Inferentia
  16. © 2022, Amazon Web Services, Inc. or its affiliates. Pipeline

    Parallelでの実装例 16 https://awsdocs-neuron.readthedocs- hosted.com/en/latest/src/examples/pytorch/pipeline_tutorial/neuroncore_pipeline_pytorch.html?highlight=inference_latency#Bonus-Section---Load-Testing- Data-Parallel-Mode 主なパラメータ: neuron-core- pipeline-cores Part2. 実践 AWS Inferentia
  17. © 2022, Amazon Web Services, Inc. or its affiliates. ベンチマーク

    17 • モデル: bert-base-uncased • 入力の長さ: 128 • インスタンス: • Inf1.xlarge • Inf1.6xlarge • G4dn.xlarge • G5.xlarge • Inf1のベンチマークには、 neuronperfを使用 neuronperf • Neuronを用いた推論のパフォーマンスを評価するPythonライブラリ • PyTorch,TensorFlow, MXNetを用いた推論の評価が可能 • Neuronの開発チームが実際にパフォーマンスを評価するのに使用して いるツール • https://awsdocs-neuron.readthedocs- hosted.com/en/latest/tools/neuronperf/index.html Part2. 実践 AWS Inferentia
  18. © 2022, Amazon Web Services, Inc. or its affiliates. 推論器最適化実験

    18 実験の目的:Throughput重視、Latency重視、それぞれのシナリオにおいて適した推論器のデプロイ環境を 調べる。 Part2. 実践 AWS Inferentia
  19. © 2022, Amazon Web Services, Inc. or its affiliates. Neuron

    DataParallel 19 結果 [左上]: スループット • 高バッチサイズ -> 高スループット • NeuronCoreに比例した性能差 [右上]: レイテンシー • 単一のモデルが動作するNeuronCore の性能は同じなので差は見られず [左下]: 時間単価 • 米国北部(バージニア北部)でのオン デマンドの時間単価(USD) [右下]: 100万入力を処理するのに必要な コスト • 高バッチサイズにおいてはどちらのイ ンスタンスを用いてもほぼ同等のコス ト Part2. 実践 AWS Inferentia
  20. © 2022, Amazon Web Services, Inc. or its affiliates. Neuron

    PipelineParallel 20 結果 [左上]: スループット • Inf1.xlarge: pipeline並列のご利益があ まり得られず • Inf1.6xlarge: NeuronCoreをフルに使 いる設定で最大のスループット [右上]: レイテンシー • Inf1.6xlarge: NeuronCoreをフルに使 いる設定で最小のレイテンシー [左下]: 時間単価 • 米国北部(バージニア北部)でのオン デマンドの時間単価(USD) [右下]: 100万入力を処理するのに必要な コスト • Inf1.xlarge: pipeline並列不使用時がベ スト • Inf1.6xlarge: pipeline並列をフルに用 いた場合がベスト Part2. 実践 AWS Inferentia
  21. © 2022, Amazon Web Services, Inc. or its affiliates. GPU

    instances 21 結果 [左上]: スループット • 高バッチサイズ -> 高スループット [右上]: レイテンシー • 高バッチサイズ -> 低レイテンシー [左下]: 時間単価 • 米国北部(バージニア北部)でのオン デマンドの時間単価(USD) [右下]: 100万入力を処理するのに必要な コスト • G5.xlarge, G4dn.xlargeともにバッチサ イズ最大時がベスト Part2. 実践 AWS Inferentia
  22. © 2022, Amazon Web Services, Inc. or its affiliates. Throughput

    重視での比較 22 結果 • それぞれのインスタンスで最大のバッ チサイズを用いた場合での比較 • Inf1ではDataParallelの結果を用いた • スループットに1~2桁の性能差 • それに比例したInf1でのコスト優位性 が観察された Part2. 実践 AWS Inferentia
  23. © 2022, Amazon Web Services, Inc. or its affiliates. Latency重視での比較

    23 結果 • それぞれのインスタンスでバッチサイ ズ1としたときの比較 • Inf1ではPipelineParallelの結果を用い た • Inf1.6xlargeのレイテンシーは G5.xlarge比で約半分 • コストとしても約1ドル安価 Part2. 実践 AWS Inferentia
  24. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. Trn1 GA!
  25. © 2022, Amazon Web Services, Inc. or its affiliates. Amazon

    EC2 Trn1 インスタンスがGAとなりました 🎉 25 B F 1 6 / F P 1 6 F P 3 2 840 TFLOPS T F 3 2 3.4 PFLOPS 3.4 PFLOPS T R A N S I S T O R S P E R C H I P 55,000,000,000 Trn1 演 算 エ ン ジ ン 周 波 数 3 GHz ア グ リ ゲ ー ト ア ク セ ラ レ ー タ メ モ リ 512 GB ピ ー ク メ モ リ 帯 域 幅 13.1 TB/sec チ ッ プ 間 N E U R O N L I N K 帯 域 幅 768 GB/sec ネ ッ ト ワ ー ク 帯 域 幅 800 Gbps EFA
  26. © 2022, Amazon Web Services, Inc. or its affiliates. 26

    P4d比60%増のアクセラレータメモリ P4d比2倍のネットワーク帯域幅 PyTorchとTensorFlowをネイティブにサポート 学習したモデルをTrn1以外の環境にデプロイ可能 Amazon EC2 Trn1 インスタンス インスタンス サイズ vCPUs Trainium チップ数 アクセラレータ メモリ NeuronLink ホスト メモリ ネットワーク帯域幅 Trn1.2xlarge 8 1 32 GB N/A 32 GB Up to 10Gbps Trn1.32xlarge 128 16 512 GB 768 GB/sec 512 GB 800 Gbps
  27. © 2022, Amazon Web Services, Inc. or its affiliates. 機械学習

    学習用プロセッサ AWS Trainium 27 Trainium • AWS による第2世代 独自設計機械学習プロセッサ • 2 Neuronコア / チップ • Tensor エンジン:畳み込み等、行列演算に最適化 • Scalar エンジン:RELU等の活性化関数に最適化 • Vector エンジン:Batch Normalizationやプーリング処理に最適化 • 組込型汎用DSP:カスタムオペレータに対応 • 専用 collective compute エンジン • 分散学習を行う際に、計算と通信をオーバーラップ可能 • 32GB HBM2E メモリスタック • Configurable FP8、 Stochastic roundingにハードウェアで 対応 https://aws.amazon.com/machine-learning/trainium/ HBM2E メモリ Collective compute エンジン Neuronコア Vector エンジン Scalar エンジン DSP Tensor エンジン Neuronコア Vector エンジン Scalar エンジン DSP Tensor エンジン
  28. © 2022, Amazon Web Services, Inc. or its affiliates. 28

    Add PyTorch XLA imports Place your model/tensors onto an XLA device to tell the compiler where to end the compute graph
  29. © 2022, Amazon Web Services, Inc. or its affiliates. 29

    https://jawsug-ai.connpass.com/event/261173/