【レポート】ARMベースの新プロセッサGraviton2へDeep Dive #CMP322 #reinvent

re:Invent 2019で発表されたAWS Graviton2プロセッサと新世代インスタンスについてのCMP322: Deep dive on new Arm-based AWS Graviton2 processor-powered Amazon EC2 instancesのセッションレポートです。
2019.12.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

re:Invent 2019で発表されたAWS Graviton2プロセッサと新世代インスタンスについて紹介するセッションDeep dive on new Arm-based AWS Graviton2 processor-powered Amazon EC2 instancesに参加してきましたので、参加レポートです。

セッション概要

AWS Graviton2プロセッサーはAWSがデザインした次世代のCPUであり、第1世代のGravitonプロセッサを大きく超えるパフォーマンスと能力を備えています。 AWS Graviton2プロセッサーにより駆動されるAmazon EC2インスタンスは、幅広いワークロードやアプリケーションサーバ、マイクロサービス、HPC、EDA, ゲームやオープンソースデータベース、インメモリキャッシュなどにおいて、現行世代のインスタンスに比べ特筆すべき価格性能比を提供します。 このセッションでは、この新しいプロセッサーについて詳細を紹介し、ユースケースや最新のソフトウェアエコシステム、そして顧客成功事例について紹介します。

原文

AWS Graviton2 processors are the next-generation of CPUs that are custom-designed by AWS and deliver a major leap in performance and capabilities over the first-generation Graviton processors. Amazon EC2 instances powered by AWS Graviton2 processors provide significant price and performance benefits over comparable current generation instances for a wide variety of workloads, including application servers, microservices, high-performance computing, electronic design automation, gaming, open-source databases, and in-memory caches. In this session, we deep dive into the new processors, present use cases, discuss the latest updates in the software ecosystem, and outline customer success stories.

セッション動画も上がっています。

登壇者

  • Sudhir Raman - Product Leader, Amazon Web Services
  • Ali Saidi - Principal Engineer, Amazon Web Services
  • Sudhir Kakulla - Vice President, Nielsen

Graviton2 Deep Dive Tour

  • プラットフォームの幅広い選択肢
    • 汎用、メモリ、ストレージ、計算等々さまざまな特徴を持ったインスタンスタイプが用意されている
      • カテゴリ
      • 能力
      • オプション
    • インスタンスタイプは270以上
  • プロセッサの選択肢
    • Intel
      • c5,m5等大きなインスタンスタイプとして提供
    • AMD
    • AWS Graviton
      • 昨年発表
  • AWS Gravitonプロセッサ
    • カスタムAWSシリコン: 64bit ARM Netverseコア
    • クラウドネイティブワークロードに最適化することがターゲット
    • カスタマのフィードバックに基づき、素早く革新プロセスを繰り返す
  • Amazon EC2 A1
    • Gravitonプロセッサを使った最初のインスタンスタイプ
      • スケールアウト、あるいはIOバウンドなワークロード向け→特にコスト削減をもたらす
    • Application
      • Web-tier, コンテナ化されたマイクロサービス、ARMベースのソフトウェア開発
    • 6インスタンスタイプを提供:16vCPUまで、EBS、エンハンストNetworking
      • 加えてベアメタルも提供
    • グローバルに利用可能: 9リージョンで展開
    • AWSマイクロシステムの上に構築
      • ネットワークやストレージの負荷をオフロード
      • クラウドサービスとして安全に届ける
  • さまざまなワークロードを移行
    • Linuxオープンソースベースのスケールアウトワークロード
    • 言語: Java,Node,Python,PHP
    • 複数のプロセッサアーキテクチャで容易に実行することができ、コストメリットを享受できる
  • NetEase Games
    • PCと携帯ゲーム
    • 代表的タイトル: Knives Out
    • ネットワーク負荷の高いアプリケーションにA1インスタンスを使用
    • Pythonコードベース
    • 40%のコスト削減
  • SmugMug
    • 写真データのtierにA1インスタンスを使用
    • PHP/Nginx,HAProxy
    • 40%コスト削減、シームレスに移行
  • reamp
    • データ処理、マーケットインサイト
    • OpenJDK/Java
    • 20%コスト削減
  • Diginteligencia
  • Rancher
    • エッジ向けCIインフラストラクチャにA1インスタンスを使用
    • クロスコンパイルやエミュレーションをせず直接実行
  • ARMソフトウェアエコシステム
    • UbuntuやRedHat等主要OS
      • さらにMarketplace AMIでnginx等が提供されている
    • Containers
      • Dockerは64bit ARMをサポート
      • ECS/EKSを利用可能
      • Firecracker micro vmのサポート
    • ツールやソフトウェア
      • AWSのさまざまなサービスがGravitonをサポート
      • Amazon Corretto OpenJDKも利用可能
    • サードパーティ
      • DatadogがGravitonサポートをアナウンス
      • CloudStrike: PoCパートナー

  • ワークロードへの最適化の過程
    • 5年以上をかけてAnnapurna Labsによりカスタムシリコンソリューションを構築
      • I/O Accelerator Card
      • Nitro Card
      • AWS Graviton, Inferentia
    • A1インスタンスへの好意的なフィードバック
    • 多くのワークロードをGravitonで稼働可能になった
  • AWS Graviton2 Processor
    • 昨日発表
    • より幅広いワークロードを支えることを志向
    • A1インスタンスを超える能力を扱う
    • 各種パフォーマンスやインスタンスサイズをスケール

AWS Graviton2 Processor

  • AWS Graviton2 Processor
    • 初代Gravitonに比べて
      • 4倍のコア数
      • 5倍の高速メモリ
      • 7倍のパフォーマンス改善
    • 6つのインスタンスタイプを発表
      • 最初の第六世代のインスタンス
      • M6g, M6gd
      • C6g, C6gd
      • R6g, R6gd
      • M6gはプレビュー、その他は数ヶ月以内(2020)に利用可能に
      • すべてEnhanced Networking, EBS、三つのNVMe SSD付き
      • dバージョンはNVMeローカルインスタンスストレージをサポート

AWS Graviton 2 processor: Deep Dive

登壇者がAliさんに交代して、Graviton 2プロセッサーの詳細を紹介します。

  • Graviton2への跳躍
    • AWS Graviton (初代)
      • 最初のAWSのARMプロセッサー
      • EC2のインスタンスの一員
      • 16nmプロセスルールで製造
      • ~50億トランジスタ
    • AWS Graviton2
      • 4倍のvCPU
      • 7倍のCPUパフォーマンス
      • vCPUあたり2倍弱のパフォーマンス ←大きな跳躍
      • 7nmプロセスルールで製造
      • およそ300億トランジスタ
    • 4000ピンのパッケージが私のポケットに
  • Graviton2 - コア
    • Arm Neoverse N1コア
    • Arm v8.2準拠
    • Armとの共同作業でN1を開発
      • L1キャッシュは64kB
      • L2キャッシュはvCPU毎に1M。A1やM5の2倍。
      • コンテキストスイッチのオーバーヘッドを削減することに注力
      • int8/fp16のサポート。ML推論ワークロード向け。
    • すべてのvCPUは物理コア(SMTではない)
      • リソースを分離し独立性を高める

  • Graviton2 - 相互接続
    • 64コアがメッシュで相互接続
    • 2TB/sの帯域幅
      • アプリケーション
    • 32MB last level cache
      • ユーザーは合計100MB以上のキャッシュを利用できる
    • No NUMA
      • すべてのコア間は同じ遅延時間、コアからDRAMも同じ。9nsでアクセス。
    • 64 lanes PCIe gen4
  • Graviton2 - システム
    • 8個のDDR4-3200チャネル → >200GB/s
      • すべてのメモリアクセスがAES-256で暗号化。キーはブート時に。
      • すべてのコアから均一のアクセス遅延
    • 1Tbit/sの圧縮アクセラレータ
      • OSSのEP DKとLinuxドライバ
  • Graviton2で動くインスタンス
    • AWS専用の4つのモジュールブロック
    • Graviton2
    • Nitro Security Chip:
    • Nitro Card: EBSやネットワークをオフロード
    • Nitro Hypervisor: 超軽量
  • ワークロードとターゲットアプリケーション
    • Web/gamingサーバー
    • ハイパフォーマンスコンピューティング
    • メディアエンコード
    • 分析
    • オープンソースデータベース
    • インメモリキャッシュ
    • EDA
    • Microservice
  • Amazon EC2 M6gのサイズと仕様
    • m6g.16xlargeは、64vCPUと、1/4TBのRAM
    • M5世代にくらべて20%安価
    • mediumは40%安価

パフォーマンス

  • SPEC cpu2017
    • SPECint: +44%
    • SPECfp: +24%
  • SPECjvm2008: +42%
  • Nginxによるロードバランス
    • +24%のスループット
  • Memcached
    • +43%
    • レイテンシも改善
  • x264メディアエンコード
    • +26%
  • Machine Learning
    • C5世代AVX-512を使った推論に比べ、FP16の利用により28%レイテンシ削減
  • EDA
    • チップ開発は高価
    • Armはプロセッサデザインのためシミュレーションに多くのCPU時間を使う
    • Cadence XcelliumでArm Cortex-A53をシミュレーション
    • m5.24xlargeと比べてコア数3/4のm6g.16xlargeは3%遅いだけで済んだ
  • データベース
    • Scylla: 高スループット低遅延のBig Dataデータベース
    • A1で稼働できるが、ピークパフォーマンスには達しなかった
    • M6gはゲームチェンジャー: 5倍のパフォーマンスを達成
  • Graviton2インスタンス: 低い所有コスト
    • 最高のパフォーマンス
    • 20%のコスト削減
    • 40%の価格性能比向上
    • ベストな価格性能比

  • AWSサービスは複数のアーキテクチャをサポート
    • ElastiCache, EMRはM6gインスタンスを数ヶ月以内に提供
    • ELBはGraviton2に移行
    • その他ももうすぐ
    • 多くのAWSのチームがプロダクトをマルチアーキテクチャにする努力を開始している

カスタマ事例: Nielsen

プロダクションでA1インスタンスを使用してきたNielsenからSudirさんに登場。 A1についての経験とM6gについての知見を語ります。

  • Nielsenについて
    • TV measurement
      • TVの視聴調査
    • Digital measurement
      • TV以外のデジタルメディアの消費調査
  • デジタルコレクションをAWSにマイグレート
    • Javaベースのアプリケーション
    • 100億/day超のリクエストを処理
    • 2.5TB/dayのデータを生成
    • 24/7 w/ゼロダウンタイム

  • ROI問題
    • 有効利用されていないM5軍団
    • 35%以下のCPU利用率
    • 57%以下のメモリ利用率
    • 最適なROIを下回る
  • Gravitonの扉が開いた
    • re:Invent 2018でA1が登場
    • M5にくらべて46%安価
    • スケールアウトアーキテクチャに最適
    • 2ヶ月の開発ダッシュでA1が使えるようにした

    • 8ヶ月でプロダクションに

    • 4リージョンで稼働
    • 120台のサーバーフリート
    • 継続的な改善を達成

  • 次に来るもの
    • m6g: 次世代Graviton
    • 2倍のパフォーマンス
    • とても期待している
  • AWSの過去二年間のA1への努力を見て、ベンダーとしての関係から、パートナーへと進化させた

サマリ

  • 前世代に比べて、AWS Graviton2は、7倍のパフォーマンス,4倍のコア,5倍のメモリを提供
  • 新しいC6g,M6g,R6gインスタンスは同等にくらべて、40%のパフォーマンス改善
  • M6gはプレビュー中。Graviton2インスタンスは数ヶ月内にGAとなる
  • より詳しい情報とPreviewはこちらへ https://aws.amazon.com/ec2/instance-types/m6

感想

キーノートで発表された新世代ARMプロセッサであるGraviton2の詳細と、それを搭載した第6世代のEC2インスタンスが紹介されました。 64コアが相互にメッシュ接続されるというアーキテクチャが驚異的です。どんだけのインターコネクトがあるんでしょうか。

もう一つの注目ポイントは、第6世代のインスタンスが、x86(x64)を飛び越えて、ARMベースとなったことです。ここにAWSの本気度を感じました。 アーキテクチャに依存しないワークロードや、マネージドサービスは、いつのまにかARMアーキテクチャで稼働する、そんなことになっている気がします。