クラウド&データセンター完全ガイド:特集

データセンター向けサーバー製品最新トレンド(Part 1)

IntelとAMD、最新サーバー向けCPU事情

弊社刊「クラウド&データセンター完全ガイド 2020年冬号」から記事を抜粋してお届けします。「クラウド&データセンター完全ガイド」は、国内唯一のクラウド/データセンター専門誌です。クラウドサービスやデータセンターの選定・利用に携わる読者に向けて、有用な情報をタイムリーに発信しています。
発売:2019年12月23日
定価:本体2000円+税

サーバー向けCPUの選択肢としては、この数年は事実上Intel一択という状況が続いていたが、今年のトピックはAMDが2017年にリリースした初代EPYCに続き、第2世代となるEPYC 7002シリーズをリリースしたことだろう。IAサーバーの分野に久々に競合関係が成立し、ユーザーにとっても選択肢が増えるというメリットをもたらしている。まずは、基本となるプロセッサの状況について確認しておこう。 text:渡邉利和

Intelのサーバー分野での取り組み

 Intelでは今年4月にグローバルで第2世代Xeon Scalable Processor(以下、第2世代Xeon-SP、開発コード名はCascade Lake)を発表した。第1世代に当たるXeon-SP(開発コード名:Skylake)は2017年にリリースされており、おおむね順当な製品更新と言えるだろう。一方、第1世代からの進化の幅は実のところさほど大きくはない。

 具体的に言うと、コア自体はほぼ同一で、性能向上は主にコア数を増加させたことによるものだ。トップエンドに相当するPlatinum 9200では56コアに達しているが、内部的には第1世代Xeon-SPで実現されていた最大28コアのダイ2枚を1パッケージに封入して内部的に接続している形である。こうすることによる性能向上もあることは間違いないが、コストとのバランスで考えた場合、一般的なワークロードであればシンプルにプロセッサ数を増やす、つまりサーバーの台数を増やすことで対応する方が有利になる例も多いだろう。これはある意味、インテルにとってもプロセッサの性能を効率よく大幅に引き上げることは簡単ではないことの表れと言えそうだ。

 プロセッサの性能向上にはいろいろな手法が考えられるが、シンプルだが効果が大きいのがクロック周波数の向上だ。かつて、CPUのクロック周波数が数MHzだった時代からGHz単位に到達し、現在では4GHzを越える製品も販売されているが、それでも一時期に比べればクロック周波数の向上ペースは緩やかで、体感的には「ほとんど向上しなくなってきている」という印象が強い。システム全体のボトルネックはどこか? という観点からすれば「CPUだけが速くなっても」という指摘は正当なのだが、それはそれとして、クロック周波数が向上すればCPUの性能向上にほぼ直結することは間違いない。それが難しくなったのは、ある意味では物理的な限界に近づいているということでもあり、何か別の手段で性能向上を実現するほかなくなりつつある状況ということだ。

 こうした状況を受け、従来のクロック周波数競争からアーキテクチャ的な大転換として取り組みが始まったのが「並列性の向上」だ。実装技術としては、コアあたり同時2命令実行を可能とする“ハイパースレッディング”と、コア自体を複数集積する“マルチコア化”が併用されており、インテルのサーバー向けCPUでは基本的にコア数の2倍の数のスレッドを同時実行できることになっている。

 トラックによる貨物輸送に例えるなら、クロック周波数を向上させるのはトラックのスピードを高めることに相当し、並列性の向上はトラックの台数を増やすことに相当するだろうか。運ぶべき荷物がトラック1台で収まる量の場合はトラックのスピードを速くすれば仕事が早く終わるが、トラック1台では積みきれないほどの大量の荷物がある場合は、トラックの台数を増やす方が全てを運び終えるまでの時間は短縮できる可能性が高いだろう。現在のサーバーでは、ネットワーク越しに届く大量のリクエストを順次捌いていく、という処理に使われることが大半なので、並列性の向上が性能向上のための手段として有効だったということである。

 とはいえ、並列処理が可能なワークロードに対してのみ有効な高速化手法であることは間違いなく、広範なワークロードに対応するという意味ではクロック周波数向上ほどの汎用性はない。それでも現在こうした並列性の向上が当たり前に使われている理由は、やはりCPUの性能をさらに向上させるための難易度が年々上がり続けていることの反映だろう。

 そして、前述の通り第2世代Xeon-SPでは、Platinum 9200で56コア(112スレッド)という規模まで拡大しているが、これはさすがに少々仕様が特殊すぎるせいか、サーバー・メーカーでもあまり採用されていないようで、ほとんど市場には出回っていないようだ。もっと効率よく低コストでコア数を増やす方法があればまだしも、現状ではコア数の増加という手法もそろそろ限界に近づいているとみて良さそうだ。となると、また新たな性能向上手法を検討せざるを得ないことになるわけだが、その解としてインテルが第2世代Xeon-SPで取り組みを拡大していると思われる方法が、ワークロードの特性に合わせて細かくチューニングを施す、という方向性だ。

新命令セットの追加とSKUの増大

 第2世代Xeon-SPでは、新しい拡張命令として「Intel DL Boost」が組み込まれている。DLは“Deep Learning(ディープラーニング/深層学習)”の意味で、いわゆる“AI /機械学習”を高速化するための追加命令だと考えれば良いだろう。シンプルに、「今ホットな領域を漏らさずサポートした」と考えることもできるが、実体としては「もうこういう細かな対応を積み上げていくしか性能向上の手段が見当たらない」という理由もあるのではないかと思われる。

 機械学習に関しては、GPUの効果が高いということで注目が集まり、クラウドサービス/IaaSで提供されるコンピューティング・リソースでもGPU搭載型が急増したほどだ。この流れをCPUの性能向上という文脈で見てみると、当然ながらGPUはCPUを置き換える存在ではないし、GPUがあらゆるワークロードをまんべんなく高速化できるわけでもない。GPUは本質的には現在のCPU以上に高度に並列化されたプロセッサであり、大量のデータに同じ演算処理を繰り返し適用していくような用途に向いた構造となっている。当然ながら、GPUに向いた内容のワークロードを処理させれば圧倒的な高速処理が可能になるが、不向きな処理も当然ながら存在する。処理内容を選ぶ、という言い方をしても良いかもしれない。

 実は、第2世代Xeon-SPのもう1つの特徴と言えそうなのが、バリエーションの豊富さだ。

 第2世代Xeon-SPでは、大まかなランク分けとして“Silver”“Gold”“Platinum”の3段階が設定され、それぞれ2モデルずつ、計6モデルのCPUが用意される。“Silver 3200”“Silver4200”“Gold 5200”“Gold 6200”“Platinum 8200”“Platinum 9200”ということになるが、それぞれのモデルにはさらにコア数やクロック周波数が異なるバリエーションが設定されるのは通例通りだが、今回はさらに適合するワークロードに応じたサフィックスが用意されている(図1)。

 列挙すると、“L(Large DDR Memory Tier Support/Up to 4.5TB)”、“M(Medium DDR Memory Tier Support/Up to 2TB)”、“N(Networking & NFV Specialized)”、“S(Search Value Specialized)”、“T(Thermal & Long-Life Cycle Support)”、“V(VM Density Value Specialized)”、“Y(Intel Speed Select Technology)”といった具合だ。

図1:インテル第2世代Xeon-SPのSKUの一例(出典:インテル)

 もちろん、全てのモデルに対して全てのバリエーションが用意されるということではないが、ベースとなるプロセッサに対して、細かなチューニングが異なるバリエーションを膨大に用意してきた印象だ。これはつまり、ワークロードをある程度決め打ちにして、その特性に応じたチューニングによって性能を稼ぐ、という手法だと見てよいだろう。少なくとも、直近の数年くらいの期間を考えるのであれば、CPUの性能が劇的に向上することは期待しにくい。インテル製CPUであれば、2020年中は現在の第2世代Xeon-SPがそのまま供給されると見込まれることもあり、ユーザー側でもCPUの大幅な性能向上に頼るのではなく、アプリケーション・アーキテクチャの工夫やチューニングによって実効性能を確保するようなアプローチを採る必要がありそうだ。

AMDのサーバーCPUへの再参入

 AMDは、PC向けCPUではインテルに対して善戦しており、世代によってはインテルよりも高く評価されることもあるなど、技術力に一定の評価を勝ち取ってはいたものの、サーバー分野ではインテルが先行していた。しかし、32ビットCPUから64ビットCPUへの切り替えのタイミングで、インテルが当初新しいアーキテクチャ/命令セットを備えたIA64(後のItanium)系列に注力していた一方、AMDはインテルに先行してx86アーキテクチャを素直に64ビット拡張する形のAMD64アーキテクチャを投入してユーザーの支持を獲得し、次いでAMD64ベースのサーバー/ワークステーション向けCPUとして2003年にAMD Opteronを投入、サーバーメーカー各社から搭載製品が発売されるなどシェアを拡大した。

 登場当初のOpteronはサーバーメーカーやユーザーからの評価も高く、インテルに対抗する有力な競合として期待もされたが、その後はシェアを落としてしまい、後継製品にもあまり恵まれず、結果的にはAMDはサーバー向けCPU市場での存在感をほぼ失ってしまっていたのであった。そのAMDが、新たな“EPYC”アーキテクチャとしてサーバー向けCPU市場に再参入を果たしたのは、2017年の第1世代EPYC(EPYC 7000シリーズ)の投入によってである。実は、この時点では先のOpteronの経緯もあってか、サーバーメーカー等の反応もやや抑制的だった印象だが、今年発表された第2世代EPYC(EPYC 7002シリーズ、コード名Rome:ローマ)では各社で採用製品の投入が目立ち始めており、再び存在感を取り戻しつつある印象だ。

第2世代EPYCの特徴

 インテルの現行サーバー向けCPUが「第2世代Xeon-SP」を名乗るのとちょうど歩調を合わせるかのように、AMDのサーバー向けCPUも「第2世代EPYC」となっている。第2世代同士の競合という形ではあるが、インテルの第2世代Xeon-SPが第1世代からのマイナーバージョンアップという感が拭えないのに対し、AMDの第2世代EPYCは第1世代からはアーキテクチャ面ではっきりと進化を遂げており、魅力を増しているという印象を受ける。

 まず、コア数が第1世代(Naples)の32コアから64コアへと倍増している。同時に、コアあたりのL3キャッシュ容量も増加し、メモリコントローラなどのクリティカルなリソースの強化も行なわれているという。こうした強化の背景にあるのが、EPYCの特徴とも言える“チップレットアーキテクチャ”の進化だ。

 Naplesでは、8コアを搭載したプロセッサ・ダイを4つ組み合わせて32コアのCPUを構成していた。このプロセッサ・ダイには8コアの演算ユニットに加えてPCI Expressコントローラ/メモリコントローラといった、基本的なI/Oモジュールも組み込まれており、いわば通常のCPUとほぼ同様の構成だと言える。

 一方、Romeではプロセッサ・ダイにはCPUコアのみを実装する形となり、別途IOD(I/Oダイ)を用意した上でIODをベースに、プロセッサ・ダイを最大8個組み合わせる形に変更されている(図2)。プロセッサ・ダイのコア数は8コアのまま変わっていないが、最大8ダイということでプロセッサ当たりの最大コア数は64コアに倍増している。

図2:第2世代EPYCの概要図(出典:AMD)

 インテルでも同様のアーキテクチャの実装には既に取り組み済みで、第2世代Xeon-SPと合わせて発表された新世代FPGA製品「Agilex FPGA」ではFPGAコアにASIC / ASSPをチップレットとして組み合わせるアーキテクチャによってさまざまな機能を持つバリエーションを提供すると発表されている。とはいえ、第2世代Xeon-SPと第2世代EPYCとの比較ではAMDのほうがアーキテクチャ面で先行した感があるのは間違いなく、今後の性能向上や機能強化に関しても第2世代EPYCの方がより容易に行なえるのではないかと思われる。

 製造プロセスでは、インテルでは14nmプロセスでの製造を安定させるのに苦労していると伝えられており、主にPC向けのCPUではあるが、供給不足が数年来ずっと解消されないままになっている。実は今年はインテルとしてはかなりの生産量増強を果たしたにも関わらず、需要の伸びが想定を大きく上回ったことで結果として供給不足と言われる状況に変化がなかったというやや不運な状況も重なったようではあるが、インテルにとっては苦しい状況がまだ続いているように見える。

 一方の第2世代EPYCでは、IODを14nmプロセスで製造する一方、プロセッサ・ダイは7nmプロセスで製造されており、異なる世代の半導体製造技術を組み合わせる形になっている。こうした柔軟な設計が実現している点も、現行の第2世代EPYCの評価を高めている要因だろう。

 このほか、AMDがアピールする第2世代EPYCの強みとしては、コストパフォーマンスに優れているという点がある。最大64コアを1CPUソケットで実現しており、消費電力等は常識的な範囲に収まっていることからスペースから冷却までのトータルの運用コストが低いというのが同社の主張だ。オンプレミス向けのソフトウェアのライセンスではCPUのソケット数を基準に価格を決定するモデルもよく見られるので、この部分でもソケットあたりのコア数が多いことは有利になる可能性がある。

この先の展望

 CPU単体で見た場合のインテル、AMD両社の“第2世代”製品の比較では、現状AMDが一歩先行したようにも見えるが、現実の市場においてはまだインテル製CPUのシェアが大きく、製品として入手可能なサーバー製品のモデル数にも大きな差がある。ユーザー企業の機種選定では、当面はインテルCPU搭載サーバーをベースとしつつ、AMD CPU搭載サーバーの動向も注視しておく、といった対応になるだろう。

 一方、全体的なトレンドとしては、今後もワークロードの特性に応じたきめ細かな対応によって性能向上を図っていく、という流れは当面継続することになることは間違いないだろう。そのため、CPU単体ではなく、GPUやFPGAといったアクセラレータ・チップの併用はもちろん、場合によってはソフトウェア側の工夫も併用して性能向上に取り組んでいく必要があるだろう。少なくとも、当面はかつてのような「ハードウェアの世代更新で処理性能が大幅に向上する」ことは期待しにくい状況が続くだろう。

 そして、ワークロード毎の特性に応じた対応が必要なのはCPU/プロセッシングの部分だけに留まらず、システム・アーキテクチャ全般に渡って細かくチューニングや最適化を積み上げていく必要がありそうだ。CPU以外にも、ストレージやネットワークの分野でもさまざまな技術革新が起こっており、これらの組み合わせによるシステム全体で必要な処理能力をカバーできるかどうかが最終的な問題となる。

 ストレージの分野では、特にエンタープライズ市場では既にSSDが主流となっており、今後はさらにSSDからNVMe/NVMe-oFへの移行が進んでいくと思われる。さらに、インテルの不揮発性メモリデバイス“Optane”の普及も進んでいるようで、サーバーメーカー各社がオプションとして提供する例が増えてきているようだ。データ量の増大傾向は収まるどころかさらに加速している状況であり、かつAI /機械学習の普及によって「より大量のデータをより迅速に分析する」ニーズが高まってきている。CPUやGPU/FPGAによる高速演算も重要だが、それ以上にメモリやストレージ、ネットワークの重要性が高まっている。

 Optaneを不揮発性のストレージメモリとして活用してデータ解析をより高速化/効率化するという取り組みも始まっているはずだし、5Gネットワークの普及を睨んだ新たなアーキテクチャ構築も始まっている。

 さらには、より大量のデータが生成されるようになる近未来を見越して、データをデータセンターに送って一括で分析、というアーキテクチャから、可能な限りエッジ側で処理を行ない、結果だけをデータセンターに送る、というアーキテクチャへの移行も提案されている。こうしたさまざまな動向のバランスを見ながら、当面のプラットフォーム選定を行なっていくことになるだろう。