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

Deep Dive AWS Graviton パフォーマンス

Deep Dive AWS Graviton パフォーマンス

Yasuhiro Ishigami

March 26, 2024
Tweet

Other Decks in Technology

Transcript

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

    2024, Amazon Web Services, Inc. or its affiliates. Deep Dive AWS Graviton パフォーマンス Arthur Petitpierre Principal Graviton Specialist SA Amazon Web Services ⽯神 靖弘 Solutions Architect, Digital Solutions Amazon Web Services
  2. © 2024, Amazon Web Services, Inc. or its affiliates. アジェンダ

    1. AWS Graviton 概要 2. 実際のアプリケーション上でのパフォーマンス 3. ご利⽤中のお客様からのコメント 4. パフォーマンスベストプラクティス 5. Graviton4 6. Q&A 2
  3. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. AWS Graviton 概要 3
  4. © 2024, Amazon Web Services, Inc. or its affiliates. プロセッサとアーキテクチャの幅広い選択

    AMD EPYC プロセッサ Intel Xeon スケーラブル プロセッサ AWS Graviton プロセッサ Apple Silicon x86(64) arm64
  5. © 2024, Amazon Web Services, Inc. or its affiliates. AWS

    Graviton Graviton 2018 Graviton2 2019 Graviton3 2021 Graviton4 2023
  6. © 2024, Amazon Web Services, Inc. or its affiliates. Why

    AWS Graviton? 幅広いワークロードに対して最⼤ 40% 優れたコストパフォーマンス 同等のインスタンスよりも最⼤ 20% 安価 同等のインスタンスと⽐較してエネルギー効率が最⼤ 60% 向上 ※ オンデマンド価格と⽐較して
  7. © 2024, Amazon Web Services, Inc. or its affiliates. アーキテクチャ:

    Graviton2 vs Graviton3 8 wide Fetch 5–8 wide Decode 15 wide issue & 2x larger instruction window SIMD SIMD SIMD SIMD LD ST ST ALU/MULT ALU/MULT ALU ALU BR BR LD/ST LD/ST 4–8 wide Fetch 4 wide Decode 8 wide issue SIMD SIMD ALU/MULT ALU ALU BR LD/ST LD/ST AWS Graviton2 AWS Graviton3 bfloat16 256b SVE 2x Mem ops enhanced prefetching ~2x TLS PtrAuth RNG Inst
  8. © 2024, Amazon Web Services, Inc. or its affiliates. Gravitonの機能

    プロセッサ Graviton2 Graviton3 コア Neoverse-N1 Neoverse-V1 cache coherent mesh interconnect CMN-600 CMN-650 アーキテクチャバージョン ARMv8.2-a ARMv8.4-a 追加機能 fp16, rcpc, dotprod, crypto sve, rng, bf16, int8, crypto 推奨する-mcpu flag neoverse-n1 neoverse-512tvb RNG Instructions Yes Yes SIMD instructions 2x Neon 128bit vectors 4x Neon 128bit vectors / 2x SVE 256bit vectors LSE (atomic mem operations) yes yes Pointer Authentication no yes コア数 64 64 L1 cache (per core) 64KB inst / 64KB data 64KB inst / 64KB data L2 cache (per core) 1MB 1MB LLC (shared) 32MB 32MB DRAM 8x DDR4 8x DDR5 DDR Encryption yes yes 8
  9. © 2024, Amazon Web Services, Inc. or its affiliates. EC2

    Gravitonでコンピュートリソースをアンロック Load (CPU normalized) 0% 100 % Latency 60% Graviton ∞ 0 x86 (with SMT) アンロックされ たキャパシティ * Graphs are approximations. Actual numbers would depend on workload. • vCPU = 物理コア • No 同時マルチスレッディング(SMT)
  10. © 2024, Amazon Web Services, Inc. or its affiliates. AWS

    Graviton が利用可能な EC2 インスタンス Graviton2 Graviton3 Graviton3E Graviton4 汎用 M6g, M6gd, T4g M7g, M7gd コンピュート最適化 C6g, C6gd, C6gn C7g, C7gd C7gn, Hpc7g メモリ最適化 R6g, R6gd, X2gd R7g, R7gd R8g (プレビュー) ストレージ最適化 Im4gn, Is4gen, I4g 高速コンピューティング G5g ※ 一部リージョンではまだ利用可能ではないインスタンスも含まれています
  11. © 2024, Amazon Web Services, Inc. or its affiliates. 広がるワークロードの種類

    Graviton4 スケールアップ Graviton3 Machine Learning, HPC, SIMD Graviton2 汎用 Graviton1 スケールアウト
  12. © 2023, Amazon Web Services, Inc. or its Affiliates. 難易度

    ワークロード アクション ほぼ何もしなくともよい RDS, Aurora, ElastiCache, OpenSearch, MemoryDB, Neptune 最新のGravitonを搭載したインスタンスタイプ を選択 極めて容易 EMR 通常そのまま動作 容易 Lambda Lambdaランタイムやベースイメージで、通常 そのまま動作 ⚠ JNI、共有オブジェクト、ネイティブモジュールに 注意 比較的容易 Linux – インタープリタ型 / JITで動作 する言語(例, Java, PHP, Node.js) arm64 AMI上に構築 ⚠ JNI、共有オブジェクト、ネイティブモジュールに 注意 工数が必要 Linux – コンパイル型言語(例 C/C++, Go) arm64 AMI上でコードをリコンパイル ⚠ 組み込み関数、アセンブラ、ネイティブモジュー ルの移植が必要 非常に多くの工数が必要 Microsoft Windows – .NET Linux + .NET Core on Arm64で実行 AWS Gravitonのワークロード別利用難易度 原則としてソフトウェアスタックが最新であればあるほどよい
  13. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. 実際のアプリケーション上での パフォーマンス 13
  14. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton3:

    NGiNXでのロードバランス 40% 70% 100% 130% 160% 190% 220% 250% 280% Performance (requests/second) C6g C7g NGiNX NGINX 1.18.0, 128 GET/POST payloads, all HTTPS connections, AES128-GCM-SHA256 encryption, OpenSSL 1.1.1f, 2xl system-under-test, load generator c5n.9xl, 4 c5.4xl as backend servers; all servers run in a cluster placement group
  15. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton3:

    Java - Groovy • Tomcat 上のGroovy Grails 4.0 ベースの Web アプリ (TechEmpowerより) • 1024バイトのJSON レスポンス を生成 • `wrk2` をロードジェネレータと して使用 All instances were 2xlarge Al2, Kernel v4.14.x, JDK version: Corretto-11.0.18.x, Tomcat v9.0.48, Transparent Huge Pages : Default 0 0.5 1 1.5 C6g C5 C6a C6i C7g Relative Performance/vCPU Maximum Responses Per Second
  16. © 2024, Amazon Web Services, Inc. or its affiliates. 機械学習パフォーマンス

    • Graviton3でのパフォーマンス向上 § 2x vector width, 1.5x memory bandwidth, bfloat16 + • TensorFlow、PyTorch、OneDNN、 Arm Compute Libraryにおける多くの 機能強化 = • TensorFlowとPyTorchによるCPUベー スの機械学習推論が多くのモデルで最 速に 0 1 2 3 4 5 6 7 8 TF MLPerf Resnet50 TF MLPerf Bert TF Rec Model TF NLP Model PT Torchbench Resnet50 PT MLPerf Bert Relative Performance on TensorFlow (TF) and PyTorch (PT) c7g.4xl c6g.4xl
  17. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. ご利用中のお客様からのコメント 17
  18. © 2024, Amazon Web Services, Inc. or its affiliates. Honeycomb.io

    – Graviton3の利⽤と⽐較 Graviton3 の初期プレビュー インスタンスに対して⾼スループットのテ レメトリ取り込みワークロードをテストし、Graviton2 と⽐較してワー クロードのパフォーマンスが +35% 向上したことを嬉しく思います。 同じワークロードを処理する C6g よりも 30% 少ない C7g インスタン ス数で実⾏でき、レイテンシは 30% 削減されました。 このインスタン ス タイプが本番環境に導⼊されると、Intel インスタンス全体と⽐較し て、コストパフォーマンスが 50% 以上向上すると考えています。 Liz Fong-Jones Principal Developer Advocate, Honeycomb.io https://www.honeycomb.io/blog/present-future-arm-aws-graviton-honeycomb/ https://www.honeycomb.io/blog/observations-on-arm64-awss-amazon-ec2-m6g-instances/ https://twitter.com/lizthegrey/status/1314618333140971521?s=20 https://www.honeycomb.io/blog/graviton2-one-year-retrospective/ 2022年4⽉以来、すべてGraviton ファミリーのEC2を利⽤しています。 本番環境ではx86ベースのEC2 インスタンスは1台もありません。
  19. © 2024, Amazon Web Services, Inc. or its affiliates. AWS

    Graviton2: Customer feedback 「私たちは、Erlang、Go、Java で構築された Web サーバーとストリーム処理ワークロード に AWS Graviton2 ベースの M6g および C6g インスタンスを採⽤できることに興奮していま す。 これらのワークロードでは、前世代の EC2 インスタンスと⽐較して、合計コストが最⼤ 50% 削減されることが確認されています。 移⾏に必要なすべてのソフトウェア パッケージは 簡単に⼊⼿できたので、できる限りすべてを Graviton2 ベースのインスタンスに切り替える予 定です。」 「Domo Business Cloud は、今⽇のビジネスのペースの速いデータインテリジェンスのニーズに応える ことを⽬的として構築されています。 当社は、アプリケーション サーバー、データ パイプライン シス テム、および現在数万のポッドを実⾏している Kubernetes クラスターに AWS Graviton2 ベースのイ ンスタンスを採⽤しました。 約 1 か⽉で、EC2 フットプリントの 50% 以上を移⾏することができまし た。 これにより、多くのワークロードの実⾏時間の中央値が⼤幅に短縮され、直接的なコスト削減とパ フォーマンスを考慮したスケールダウンの組み合わせにより、影響を受ける Amazon EC2 のコストを 20% 削減することができました。 現在、⾼度な分析ワークロード、キュー システム サーバー、データ ベース サーバーなど専⽤の追加の Kubernetes クラスターの移⾏を積極的に検討しています。」 For more visit: https://aws.amazon.com/ec2/graviton/ Snap は、EC2 C6g および M6g インスタンスとAmazon Elastic Kubernetes Service (EKS)を使⽤して、メッセージング コア サービスを稼働させています。 「Graviton2 ベー スのインスタンスを使⽤することで、Snapchat メッセージング フリートのサイズを削減し、 コストを⼤幅に削減することができました。 将来的には追加のワークロードを Graviton2 に移⾏する予定です。」
  20. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. パフォーマンスベストプラクティス 20
  21. © 2024, Amazon Web Services, Inc. or its affiliates. 最初にソフトウェアスタックをアップデートしてください︕

    • Graviton2 は2019 年に , Graviton3 in 2021 年にリリース • しかし、Java 8 and RHEL-7 のリリースは 2014 年! • ボトムアップでのアップデート: § Linux ディストリビューション, ランタイム, 依存関係 • 例: Golangで、x86-64の1.17とarm64の1.18から、関数のパラ メータをレジスタで渡すようになり、通常10%以上の性能向上 21
  22. © 2023, Amazon Web Services, Inc. or its Affiliates. ⾔語

    推奨バージョン エッジケース Java Java 11+ 以上 Java 17+ 推奨 あるJARファイルはネイティブメソッドを持っているかも しれない、あるいはJVMフラグを調整する必要があるかも しれない GoLang Go 1.16 以上 Go 1.19+ 推奨(最⼤パフォーマンス) bytedance/Sonic ライブラリは現在x86のみ PHP PHP 7.4 以上 PHP 8+ 推奨(最⼤パフォーマンス) 通常動作するが、Amazon Linux 2023にインストールされ ているパフォーマンスを⼤きく改善する Python Python 3.9 以上 Python 3.12 推奨 Pypyのような他のコンパイラはフルパフォーマンスのため に最適化されていない可能性がある Python Wheelの中にはarm64でビルドされていないもの もあり、インストール時にビルドする必要がある C/C++ 最新のコンパイラがベスト 具体的な推奨事項はGithubをご覧ください パフォーマンスを維持するために組み込み関数を移植する 必要があるかもしれない。x86ではcharはデフォルトで符 号つきだが、Armではデフォルトで符号なし .NET Core .NET 6 最⼩ .NET 8 推奨(最⼤パフォーマンス) .NET Coreが必要 AWS Graviton プログラミング⾔語と推奨バージョン 原則として、ソフトウェアスタックが最新であればあるほどよい
  23. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton

    Tech Guide からの推奨事項 • Linux ディストリビューションのバージョン • ランタイムのバージョン • コンパイル時のオプション • ライブラリのバージョン § 最適化されたバージョンがあればそれを使ってください (例. zlib-cloudflare vs zlib-madler) • Tunables (いくつかの⾔語やアプリケーション向け) https://github.com/aws/aws-graviton-getting-started 23
  24. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton

    Performance Runbook とフィードバック Graviton パフォーマンス分析についてのAWS Online Tech (英語版のみ): https://www.youtube.com/watch?v=M_itBxzmkN4 このガイドを確認しても問題の根本原因がわからない場合 [email protected] へご連絡いただくか(英語)、 AWSのアカウントチームまでご連絡ください 24 https://github.com/aws/aws-graviton-getting-started/tree/main/perfrunbook
  25. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. Graviton4 25
  26. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton4

    96 Neoverse V2 コア 2M L2 cache per-core Seven chiplet design 12 DDR5-5600 channels 最⼤96 lanes of PCIe gen5
  27. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton4

    スケールアップ Single socket 24xl (96 vCPUs) Graviton 3よりもソケットあたり のコア数が50%増加 コヒーレントマルチソケットサポート 単⼀システムで最⼤ Graviton 3の3倍のコア Graviton 3よりも3倍の DRAM
  28. © 2024, Amazon Web Services, Inc. or its affiliates. フレキシブル

    デュアルソケット構成 • 4 operating modesがNitroによって有効化 • Two non-coherent virtual • One coherent virtual instance • Two metal instances • One coherent metal instance コヒーレントモードで動作していないときは電⼒を節約
  29. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton3と⽐較して:

    • 最⼤30%のパフォーマンス改善 • 最⼤で3倍のvCPUs • メモリ帯域幅が75%増加 AWS Graviton4 and Amazon EC2 R8g インスタンス 4
  30. © 2024, Amazon Web Services, Inc. or its affiliates. Graviton4

    メモリ最適化インスタンス R8g Graviton3ベースのR7gインスタンスと⽐較して最⼤3倍の vCPU数と3倍のメモリ Graviton3 R7g インスタンスと⽐較して最⼤30%パフォーマン スが向上 DB、インメモリキャッシュ、リアルタイムビッグデータ分析と いったメモリを⼤量に使⽤するワークロードに最適 現在プレビュー !
  31. © 2024, Amazon Web Services, Inc. or its affiliates. ©

    2024, Amazon Web Services, Inc. or its affiliates. Thank you!