後藤弘茂のWeekly海外ニュース

全てのCPUはマルチスレッドへ、明確になったCPUのトレンド




●MPFでの発表はマルチスレディングに集中

 CPU業界のトレンドは、明確にマルチスレッディングだ。つまり、複数のスレッド(命令ストリーム)を同時に処理する「スレッドレベル並列処理(TLP:Thread-Level Parallelism)」へと向かっている。

 今回のMicroprocessor Forum(MPF)では、各発表者が次々にマルチスレッディングのテクノロジを発表。それも、Power5のようなサーバー向けの大型CPUだけでなく、MIPS Technologiesやその他の組み込み向けCPUまでマルチスレッド化を掲げる状況。Sun MicrosystemsのGreg Papadopoulos氏(CTO, EVP)の基調講演から始まって、IBMの「Power5」(概要は8月のhotchipsで発表済み)、Sun Microsystemsの「UltraSPARC IV」、富士通の「SPARC64 VI」、MIPSの「MIPS MT ASE」と、メジャーな発表のほとんどはTLPだった。そのため、あらゆるレンジのCPUがマルチスレッドへと向かっていくように見える。

 各社が発表したのは、(1)Hyper-Threadingのように単一のCPUコアで複数スレッドを同時処理する「サイマルテニアスマルチスレッディング(Simultaneous Multithreading:SMT)」か、(2)複数のCPUコアを1個のCPUに搭載してデュアルプロセッサライクなマルチスレッド処理を実現する「マルチコア(Multi-Core)」か、(3)SMTとマルチコアの両方を合わせた技術。(1)のSMTと(2)のマルチコアは、相対する技術というより、(3)の両アプローチの採用へと向かっているように見える。例えば、IBMのPower5は、デュアルコアだったPower4のそれぞれのCPUコアをデュアルスレッド実行のSMTコアにして、2×2=4スレッドの並列実行を可能にする。ソフトウェア側から見ると、1チップで4wayのマルチプロセッサに見えるわけだ。

 こうした動きはMPFだけで見られるわけではない。MPFの1カ月前のIntel Developer Forum(IDF)では、Intelが全CPUラインナップをマルチコア採用へ向けることを明かした。Intelは、それ以前に全CPUラインにSMTのHyper-Threadingを導入していくことを明らかにしている。そのため、Itanium系もXeon系もPentium系もPentium M系も含めた、あらゆるIntel CPUがSMT+マルチコアへと向かうことになる。

 この調子でいくと、3~4年もすると、PCからサーバーまでのレンジのCPUはSMT+マルチコアになって各CPUが2~16程度のスレッドを並列処理できるTLPアーキテクチャに移行してしまうだろう。さらに10数年も経つと、CPUというのは8~数十個のCPUコアが入ったCPUコアアレイのようになってしまうかもしれない。また、組み込み機器でもSMTまたはSMT+マルチコアが普通になっているかもしれない。簡単に言えば、どのCPUも、これまでのデュアル/マルチプロセッサシステム並みの性能を持つようになるというわけだ。

Powe5はデュアルコア/デュアルスレッドPower5のSMTアーキテクチャ

●CPUがTLPへと向かうわけ

 CPU設計者たちがTLPへと走るのには明確な理由がある。それは、CPU性能を伸ばすのはそれが一番手っ取り早い道だからだ。

 CPUの性能は、基本的には動作周波数×IPC(instruction per cycle:1サイクルで実行できる命令数)で決まる。そのため、周波数以上に性能を高める鍵はIPCの向上となる。つまり、1サイクルにどれだけ効率的に多くの命令を実行するかにかかっている。

 IPCを向上させるためには、多くの演算ユニットを用意しておいて、並列に実行できる命令を抽出して並べ替えて実行すればいい。従来のCPUの性能向上は、動的/静的の違いはあっても、こうした命令レベルの並列化(Instruction-Level Parallelism:ILP)で行なってきた。Pentium 4もAthlon 64も、実装方式は違っても、基本的にはこうしたアプローチを取っている。

 しかし、これには限界がある。1つのスレッドから並列性を抽出している限り、命令間の依存関係などのために、ある程度以上の並列化が難しいからだ。通常、動的に並列化する限り3命令/サイクルが壁だと言われていた。つまり、どれだけ多くの実行ユニットを備えても、平均3命令以上は並列実行できないというわけだ。ダイナミックコンパイラを使うことで動的に高い並列性(5命令/サイクル?)を抽出できるTransmetaのEfficeonは、例外的な存在で、他のアーキテクチャは限界に近づいている。

 もちろん、技術的にはまだ並列化の余地はあるわけが、そのために膨大なトランジスタを費やしても、見合うだけの性能向上が得られるかどうかには疑問がある。例えば、トランジスタ数を2倍に増やして、性能が20%しか上がらないのなら、無駄が多くなってしまう。

 しかし、ここにはブレークスルーがある。2つ以上のスレッドから同時に実行できる命令を取り出すなら、もっと多くの命令を並列に実行できる可能性があるからだ。つまり、1つのスレッドの中の命令を無理に3命令以上も並列に実行しようとするより、依存関係の薄い2つのスレッドから3命令づつ取り出して並列に実行した方が、はるかに簡単というわけだ。また、トランジスタ当たりの性能も高くできる。「Pentium 4のようなアウトオブオーダーのマルチ実行ユニットマシンの場合、スレッド並列処理を加えるのは大したことではない。5%程度と非常に小規模な改良をダイに加えることによって、2スレッドを走らせることができるようになった。それで2~30%のパフォーマンス向上は効率がいい」とIntelのPatrick P. Gelsinger(パット・ゲルシンガー)CTO兼上級副社長(CTO & Senior Vice President)は、昨年のインタビュで答えていた。

●メモリレイテンシの隠蔽にも効果がある

Sunがビジョンとして示した将来のコンピューティングの姿 Sunはマルチプルのマルチスレッドコアが有効と示す

 TLP化は、CPU性能向上の最大のボトルネックとなっているメモリレイテンシの問題の解決にもなる。CPUの処理性能とDRAM速度のギャップは開く一方で、そのためにCPUがメインメモリにアクセスすると、膨大なサイクルを待たされるようになってしまっている。つまり、CPU内部でいくら速く処理できても、いったんメモリに行ってしまうと、ロード待ちで膨大な時間が無駄になってしまうというわけだ。

 「最大の課題は、メモリレイテンシの制約を超えてIPCを高め続けることだ。そして、TLPでは、メモリレイテンシを許容できるようになる。例えば、10スレッドを並列に実行できるなら、1スレッドがキャッシュミスで待っている間に、他の9スレッドを実行し続けることができる。つまり、事実上、メモリレイテンシを隠蔽できる」とIntelのGelsinger氏は説明する。

 実際、多くのCPU開発者がTLPの最大の効用はメモリレイテンシの隠蔽だと指摘する。例えば、VLIW的アーキテクチャの静的ILP技術のIA-64プロセッサにしても、TLPを導入すればメモリレイテンシを隠蔽することで、性能を上げることができると言う。メモリレイテンシを隠蔽できるのなら、メモリのレイテンシを無理に縮めようとしなくても、メモリ帯域を広げていけば性能がそれなりに上がることになる。

 また、Sunはマルチスレッドへ向かう理由として、ネットワークコンピューティングワークロードはマルチスレッド化されていることを挙げる。

●将来はTLPが基準に?

 こうして見るとCPUの高速化技術トレンドが、命令ベースからスレッドベースへと移りつつある理由がよくわかる。今や、CPUベンダは1サイクルにどれだけ多くのスレッドを効率よく処理できるかを競い始めたのだ。

 「我々は、CPU開発の焦点を、TLPテクノロジに移した。将来、我々はIPCではなく『TPC(Threads per clock)』、つまり1サイクルで処理できるスレッド数で、CPUの効率を測るようになるだろう」(Gelsinger氏)

 というわけで、今回のMPFではTLPへの取り組み一色となった。SunのPapadopoulos氏は、高スループットのコンピューティングをチップレベルで実現するには「Multiple Multithreaded Core」、つまりSMT+マルチコアが必要と講演。Multiple Multithreaded Coreで、チップの効率を上げてアプリケーション性能を飛躍させると説明した。SunのUltraSPARC IV(Jaguar)も富士通のSPARC64 VIもデュアルコア構成へと向かっている。

 また、IBMはPower5でのSMT+デュアルコアの実装を紹介。各CPUコア毎に「Retune Stack」、「Program Counter」、「Instruction Buffer」、「Group Completion」、「Store Queue」を2重化して2つのスレッドを並列に制御できるようにしたことを説明した。IBMがPower4をスケールダウンしたPowerPC 970(PowerPC G5)をMacintoshにもたらしたことを考えると、次世代のIBM PowerPCがSMTの実装に向かう可能性は高い。つまり、Macintoshも2~3年以内には、Hyper-Threading相当のSMT機能を備えるようになる可能性は高い。

 というわけで、CPUはTLPテクノロジへと雪崩を打って動き始めた。

バックナンバー

(2003年10月18日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2003 Impress Corporation All rights reserved.