CPUカンファレンスでAMDが基調講演 毎年8月に開催される半導体チップのカンファレンス「Hot Chips」は、最先端プロセッサのお披露目の場として定着している。今年(2019年)は、米スタンフォードのスタンフォード大学の講堂「The Memorial Auditorium」で、8月18日から20日にかけて開催された。 カンファレンス初日の基調講演には、AMDのCEOであるLisa Su(リサ・スー)氏(President and Chief Executive Officer,AMD)が登場。また、高性能プロセッサのセッションなど14のセッションが講演された。 基調講演に登場したAMDのSu氏は、高性能プロセッサを巡る現在の半導体技術の状況を説明、今後の高性能システムに必要とされる要件を展望した。Su氏は、2017年12月に米サンフランシスコで開催された半導体学会「IEDM(IEEE International Electron Devices Meeting)」以降、このストーリーを展開しているが、今回は実際の7nmプロセス製品が出そろったことで、具体的な製品とシステムに落とし込んだ説明を行なった。 Su氏のポイントは、以下のとおり。過去10年間、ハイエンドCPUは約2.5年で2倍、ハイエンドGPUは約2.25年で2倍ずつ性能を向上させて来たが、これはプロセス技術の進歩とダイの大型化やマイクロアーキテクチャの改良、システムのオンダイ統合によるものだった。しかし、ムーアの法則が鈍化しており、チップの製造コストが急上昇しているおり、ダイの大型化や電力も限界に来ているため、今後は新しいアプローチが必要となる。 半導体系の学会では、ここで次の展望としてダイの3D統合などの話に移ったが、プロセッサがテーマであるHot Chipsでは、コンピューティングとインターコネクトに焦点が当てられた。Su氏は、マイクロアーキテクチャの改良によるIPC(Instruction-per-Clock)の向上やチップレット化によるモジュラー設計によるCPUの性能の向上、そしてアクセラレータによる高速化が重要だと説明した。 ドメインに特化したアクセラレーションを効率的に行なうには、GPUやFPGA、セミカスタムASICが有効となる。HPC(High Performance Computing)や機械学習のワークロードでは、CPUだけでは必要とされるコンピュート性能を実現することができない。そこで、そうしたアクセラレータをどうやって統合するかが、今後のカギとなる。 Su氏は、ソケット当たりの高速I/Oレーン数が非常に多いAMDのサーバーCPU「EPYC」によって、4個のGPUをCPUに直結、また、GPU同士は同社のインターコネクト技術「Infinity Fabric」によって相互接続できることを説明。緊密に接続したCPU+GPUのノードによって、代表的なワークロードがアクセラレートされることを示した。また、今後の展望としては、チップ間インターコネクトとメモリの広帯域化が重要となるとした。 そして、CPU+GPUのアクセラレーションシステムの例として、Su氏が挙げたのが、米国最高のスーパーコンピュータセンタの1つ、Oak Ridge National Laboratory(ORNL)の次世代スーパーコンピュータ「Frontier(フロンティア)」だった。Frontierは、次世代のエクサスコン、つまり、1 ExaFlops以上の性能を達成するスーパーコンピュータの一角で、AMDのCPUとGPUベースで構築されることが発表されている。2021年にオンラインの予定のFrontierは、AMD GPUをアクセラレータとして組み合わせることで、1.5 ExaFlopsの演算性能を実現する予定だ。

3種類のダイで構成するAMDの「Zen 2」アーキテクチャ 汎用CPUのセッションでは、AMD、Arm、IBMの3社が発表を行なった。ちなみにIntelも、メインストリームのCPUコアこそ発表しなかったが4件の発表を行なっている。 AMDは7nmプロセスの新CPUコア「Zen 2」のベールをまた1枚はいだ。Zen 2ベースのCPU製品について、より詳細を明らかにした。Zen 2は、AMDの7nmプロセスCPUコアだが、チップとしての最大の特徴は、CPUコアとI/O回りを別ダイにしたモジュラー設計にある。 Zen系統のCPUアーキテクチャでは、4個のCPUコアでL3までのキャッシュを共有するクラスタ「CCX(Core Complex)」を構成している。7nmのZen 2では、2個のCCXで8個のCPUコアを、1個のダイ「CCD」にまとめている。7nmのCCDのダイサイズは74平方mmで、トランジスタは38億。 I/Oチップはクライアント用とサーバー用の2種類がある。クライアント向けのZen 2「Matisse(マティース)」は、クライアント用のI/Oダイ「cIOD(Client I/O Die)」を使う。cIODは最大2個のCCDの接続が可能で最大8CPUコアまでをサポート、デュアルチャネルのDDR4メモリインターフェイス、高速シリアルインターフェイスを32レーン備える。 Hot Chipsではトランジスタ数などのチップスペックが明らかにされた。トランジスタ数は20.9億で、ダイサイズは125平方mmだ。プロセスはこれまで14nmとされていたが、実際には14nmから派生した12nmプロセスであることが明らかになった。 サーバー向けのZen 2「Rome」では、サーバー用のI/Oダイ「sIOD(Server I/O Die)」を使う。sIODはトランジスタ数が83.4億で、ダイサイズは416平方mm。sIODのトランジスタ数が非常に多いことが判明したが、これはバッファSRAMの搭載によるものと推測される。sIODには8チャネルのDDR4や128レーンのPCI Express Gen4などを備える。プロセスはcIODと同様に12nm。 AMDはモジュラー設計によって、CCDとcIOD、sIODの3種類のダイを起こしただけで、メインストリームPCからハイエンドサーバーまでのラインナップを製造可能にした。また、クライアント向けとサーバー向けの両方のCPU製品を先端プロセスでほぼ同時に出すことを可能にした。

Armのサーバー向けCPU「Neoverse N1」 省電力CPU IPのArmは、同社が開発したサーバー向けCPU「Neoverse(ネオヴァース)」について紹介した。Armはサーバー向けCPUコアはサードパーティにまかせる戦略だったが、結果としてArmサーバーは市場への浸透が順調には進まなかった。そこで、同社は戦略を転換、CPUコアとオンダイインターコネクトなどを自社で開発してライセンスする方式へと切り替えた。 Neoverse N1は4-wayデコード、最大8命令イシューのスーパースカラCPUで、Armがシングルスレッド性能を高めたCortex-A76をベースとしている。命令セットはArmv8.2。サーバーCPUであってもArmは電力効率を追求、コンパクトで省電力なCPUコアとしている。Neoverse N1 CPUコア+L2までのキャッシュで電力消費は1～1.8W(2.6～3.1GHz時)、ダイエリアは1.15～1.4平方mm(512KB/1M L2キャッシュ、7nm)。64 CPUコアのSoCでは、性能は1300 SPECint06以上で、電力はSoC全体で105Wに抑えることができるという。 Armは、Neoverse N1をwebサーバーやプロキシ、APIゲートウェイなどのワークロードをメインのターゲットとしている。Hot ChipsではオープンソースのwebサーバーNGINXなどを例に取り、メモリレイテンシと帯域、コンテクストスイッチオーハーヘッド、CPUフロントエンド効率などの最適化が重要だと説明。Neoverse N1では、マイクロアーキテクチャをそうした環境に合わせた最適化を行なったという。 具体的にはキャッシュ階層とTranslation Lookaside Buffer(TLB)、分岐予測を強化して、分岐が多くワークロードの量も多い環境に最適化した。また、OS/Hyper-Threadingのアクティビティが非常に多いことを考慮して、コンテクストのスイッチのレイテンシの短縮にもつとめた。その結果、従来、Armコアでサーバーに使われていたCortex-A72と比べて、NGINXでのスループットを大幅に高めることができたという。 また、ランタイムソフトウェア環境に向け、ベージコレクションやオブジェクトマネージメントを意識した改良も行なった。そのほか、インフラストラクチャアプリケーションに向けたマイクロアーキテクチャの拡張も行なっている。メモリ帯域とレイテンシの改善に加えて、ロード/ストアのアウトオブオーダウィンドウを拡張した。 ArmはNeoverse向けのメッシュネットワークも提供する。最大で64コア～128コアの構成が可能なメニイコア向けメッシュネットだ。Armの7nm向けのリファレンスデザインでは64コアに、128レーンのPCI Express Gen4、8チャネルのDDR4インターフェイスを備えている。また、2x-4xのCCIXリンクでアクセラレータチップを接続することも可能だ。 メッシュネットワーク自体は1x2から8x8までのスケーラブルな構成が可能だ。Neoverse N1は、CPUコアごとに、64KBのL1命令キャッシュと64KBのL1データキャッシュと512KBまたは1MBのL2キャッシュを備える。さらにシステム全体で共有のシェアードシステムキャッシュが2個のCPUクラスタごとに配置されており、メッシュネットワークに接続されている。