PCマーケットでがぜんAMDの存在感が増している。2018年後半から販売が伸び始め、秋葉原の店頭におけるデスクトップPC向けCPUの売り上げに限れば「インテルを上回る勢い」という話すら聞こえてくる。
もちろん、PCメーカー向けのOEM販売まで含めた市場全体では、まだ米インテルの売り上げの方が圧倒的に上である。
2019年通期の決算では、インテルのCCG(Client Computing Group)の売り上げ合計は371億4600万ドルだ。
これに対してAMDのComputing and Graphics部門のそれは47億900万ドルでしかない。しかも部門名の通り、AMDの方はグラフィックスチップ(GPU)の「Radeon」シリーズも含めての金額だ。
CPUが半導体である以上、高速に動作するトランジスタをいかに低コストで集積できるか、という体力勝負になる。資金面で劣るAMDがインテルに迫る勢いを得ている理由は、「AMDが技術面でまっとうになり、一方でインテルがそうではなくなっているから」というのが筆者の見立てだ。
この「まっとう」とは具体的には何なのか? CPUをめぐる両社の歴史的な経緯を含めつつ、このあたりの動向を解き明かしていこう。
早すぎたアーキテクチャーの革新
話は2002年ごろにさかのぼる。当時AMDでは、後に「Opteron」として成功した「K8」アーキテクチャーの設計がほぼ完了。これを採用したAthlon 64やOpteronの量産に向けて、慣れない半導体プロセス(FD-SOI:Fully Depleted-Silicon On Insulator)との苦闘を繰り広げていた時代だが、早くもK8に続く「K9」新アーキテクチャーの策定作業に入る。
このアーキテクチャー策定は米インテルから移籍してきたアンディー・グリュー(Andy Glew)氏がリードしたが、同氏の基本的なアイデアは並行処理の機能を高める形で性能を引き上げるために、CPUの基本的な構造をマルチスレッドに適した形にする、というものだった。
K9の基本設計は、命令を解釈する「デコーダー」回路を複数用意し、これを共通のバックエンドで処理する。命令同士の依存関係が少ないマルチスレッドのプログラムであれば、バックエンドの実行効率を高められるうえに、バックエンドの回路規模が大きくなるのを抑えられる。
2020年の今でこそ、米インテルが開発中の次世代Atomコア(開発コード名:Tremont)が似た設計を取るなど珍しい存在ではなくなったが、2000年代前半はまだそこまでプログラム側のマルチスレッド化が進んでいなかった。複数のデコーダーを生かせるソフトウエアが主流ではなかったわけだ。
結局K9のアイデアはお蔵入りとなり、失意のせいかグリュー氏は2004年にインテルに戻る。K9が不在の間に、既存のK8を拡張した「K10」というアーキテクチャーが中継ぎとして登場。これがデスクトップ向けの「Phenom II」や65nm(ナノメートル)/45nm世代のOpteronとして2007年~2010年ごろまで市場に投入された。
K10の中継ぎ投入で稼いだ時間で、次世代アーキテクチャーの設計に取り組んだのはマイク・バトラー(Mike Butler)氏だ。ただグランドデザインとしては、K8/K10の設計を率いたフレッド・ウェーバー(Fred Weber)氏に代わって2005年9月から最高技術責任者(CTO)となったフィル・へスター(Phil Hester)氏の意向が強く反映されたとみられる。
スループット重視も功を奏せず
へスター氏の意向とは、高速ネットワーク時代の設計思想として米サン・マイクロシステムズなどが掲げていた「スループットコンピューティング(Throughput Computing)」の推進である。
この設計思想は、単位時間の間にどれだけのデータを処理できるかを重視する考え方だ。K8/K10を含む2000年代前半のCPUは「IPC(Instructions Per Cycle)」、つまり単位時間当たりの命令実行数に重点を置くのが一般的だった。それに対してスループットコンピューティングで重視するのは、単位時間当たりのデータ処理量(DPC)だ。
スループットコンピューティングという考え方を実装するのに、一度放棄されたK9のアーキテクチャーは非常に適していた。そこでK9の考え方を基にしつつ、IPCよりもDPCに重点を置いた設計を行った結果として2011年に登場したのが「Bulldozer」コアである。
しかし「まだ10年早かった」と言わざるを得ない。2011年になってもまだアプリケーションはIPC重視のものがほとんど。DPC重視のBulldozerコアはIPCが低く、性能も販売も低迷した。
実際、同一周波数でK10ベースのPhenom IIよりも性能が低かったのだから話にならない。性能の低さを補うために動作周波数を引き上げたため、消費電力まで急増することになった。
この当時のインテルの競合製品はSandy Bridgeベースの第2世代Coreプロセッサーだった。もともとは省電力CPUとして名をはせたPentium Mに連なるIPC重視かつ省電力重視のCPUだった。絶対性能はもとより、性能/消費電力比の面でも勝負にならなかった。
おまけに肝心のスループット、DPCの方もかんばしくはなかった。
AMDはBulldozerの世代に合わせて、新しく「SSE5」と呼ばれる拡張命令を定義する。これはA=B×C+Dといった乗加算(MAD:Multiply and ADd)演算を1サイクルで処理できる命令で、単位時間当たりの処理量を増やせる。
しかも従来は演算の対象(オペランド)となるA~Dのうち3つを指定できる「3オペランド命令」だった仕様も、A~Dをすべて指定できる4オペランド命令に拡張した。このSSE5でDPCを稼ごう、というのが当初のもくろみだった。
Windowsの支援得られず
AMDがBulldozerの設計を進めていた時期、米インテルは2008年3月にグラフィックス処理で有用なベクトル演算を高速化する「AVX」拡張命令の実装を発表した。従来SSEと呼んできたSIMD命令を互換性の無い形で刷新。従来は128ビットだった処理幅を256ビットに広げ、スループットを向上させるのが目的だった。
当然、SSE5とAVXに互換性は無い。AMDにとって残念なことに、Windowsを手掛ける米マイクロソフトはSSE5ではなくAVXのサポートに動いた。主要OSのサポートが得られない命令セットはソフトウエア開発者には敬遠されがち。AMDもSSE5を断念してAVXの実装に切り替えることにした。
とはいえSSE5の断念とAVXの実装を決めた2009年は、既にBulldozerの基本設計が終わった「後」である。SSE5の命令セットは128ビット幅だが、AVXは256ビット幅と異なる。BulldozerのSSE5は命令セットも実装も128ビット幅だった。
そこでAMDは、内部的にSSE5用に用意していた2つの128ビット幅の演算器を同時に使用してAVXに対応した。128ビット幅の演算器を組み合わせる手法は珍しくないが、あらかじめ256ビット幅の処理を想定した設計ではないため必ずしも効率は良くなかった。結局Bulldozerは、重視したはずのDPCの観点でも平凡なものでしかなかったのだ。
IPCの観点でもDPCの観点でも競合に劣り、単に動作周波数が高いだけ、というCPUが完成してしまった。この結果、AMDはK8ベースのOpteronで獲得してきた、最大で3割近いシェアを得ていたサーバー向けCPU市場を失う。パソコン市場でも1割をあっという間に切ることになった。このシェア急落の責任を取る形で、当時のCEOだったダーク・メイヤー(Dirk Meyer)氏は辞任させられている。
今やCPUは猛烈な量のデータをいかに迅速に処理するかでしのぎを削り、CPUでは間に合わない場面ではGPUやFPGAも使おう、というほどスループット重視が当たり前になった。Bulldozerコアの方向性は今でこそ間違っていなかったと総括できるのだが、事業面では10年早かったのだろう。
原点に立ち返ったZen
普通ならこの時点で会社の存続が危うくなっていても不思議ではない。苦境のAMDを救ったのは、2006年に買収したカナダのATIテクノロジー(ATI Technologies)の「Radeon」ブランドのGPUだった。これが収益を下支えし、Bulldozerに続く設計に着手できた。
Bulldozerのアーキテクチャーはその後「Piledriver」→「Steamroller」→「Excavator」と小さな改良を繰り返すが、これらと並行してある意味「先祖返り」とも言うべきIPC重視のアーキテクチャーをゼロから作り直す作業を2012年ごろからスタートさせていた。2017年に発表された「Zen」である。
目標は明確で、IPC重視・省電力性重視・そして最新のトレンドを無理なく実装することである。2017年に登場した、Zenコアを搭載したCPU「Ryzen」は、おおむね同一グレードのインテルの第7世代Coreプロセッサー(開発コード名:Kaby Lake)よりも「やや遅い」程度の性能を確保。2018年に発表された「Zen+」ベースの「Ryzen 2000」シリーズは更に性能差が縮まった。
そして2019年に投入された「Zen 2」ベースの「Ryzen 3000」シリーズで、ついにインテルの第8世代Coreプロセッサー(開発コード名:Coffee Lake)をしのぐ性能を発揮するところまできた。2020年にはコア数が64の「Ryzen Threadripper 3990X」を投入。DPCでも遜色ないプロセッサーに育った。
BulldozerベースのPiledriverからExcavatorまでの時代、AMDの店頭シェアは一番低いときで1%を切る程度まで下落していた。ところが2017年末にはいきなり10%台に回復。2019年末にはついにインテルをしのぐところまできた。
ただAMDがここまでの復活劇を演出できたのは、AMDが市場ニーズに合ったまっとうな製品を出せたという主役の頑張りだけでなく、ライバル役のインテルによる自責点による部分も少なくない。インテルの失策については、回を改めて解説する。


