福田昭のセミコン業界最前線
コアを足しても速くならない「呪い」の正体、1本の折れ線グラフで丸見えに
2026年11月10日 06:19
「アムダール則」の呪いが、マルチコアと並列処理を襲う
本コラムの前回で述べたように、シングルコアのマイクロプロセッサは2000年代半ばに動作周波数の向上が鈍化した。代わって主流となったのが、複数のCPUコアを同じシリコンダイに載せる「マルチコア化」によって、演算処理性能すなわち単位時間当たりの演算数を高めるマルチコアプロセッサだ。
CPUコアを2つ載せるデュアルコアから、4つ載せるクオドコア、8個載せるオクタコアへと、マイクロプロセッサが内蔵するCPUコア数は増加していった。ここで問題となったのが、マルチコアはいわゆる並列処理によってシングルコアの逐次処理よりも高い性能を得なければならないことだ。
たとえば既存世代シングルコアの動作周波数が1GHz、検討中の次世代シングルコアの動作周波数が2GHzだと仮定する。動作周波数が2倍になると、原理的には演算処理性能は2倍になる。しかし発熱そのほかの諸問題により、次世代ではシングルコアではなくデュアルコアを選択するとしよう。当然ながら、動作周波数は2GHzにはできない。1.5GHz~1.0GHz程度に抑えようとする。
ここで並列処理に関する「アムダールの法則」、略して「アムダール則」が、呪いのように降りかかる。アムダール則は1967年に米国IBMの研究者Gene M. Amdahl(ジーン・M・アムダール)氏が、AFIPS(American Federation of Information Processing Societies) Conferenceでマルチプロセッサの性能向上に関して論考し、「Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities」のタイトルで発表したものだ。アムダール則を記した論文は、並列処理すなわちマルチプロセッサ化に関して否定的であり、シングルプロセッサによる逐次処理性能の向上が適切だと主張している。その理由は、アプリケーションプログラムの中で並列処理可能な部分は6割~7割程度、平均で65%前後であり、プロセッサの数Nに見合った性能の向上が見込めないことにある。
1967年のデュアルプロセッサと2000年代のデュアルコアは、ほぼ同じ問題を抱えた。デュアルプロセッサをNが2のデュアルコアプロセッサと見做せば、既存世代と同じ動作周波数1GHzでは、最大性能は既存世代の2倍には達しない。動作周波数を既存世代の1.5倍に高めると、ようやく性能2倍の可能性が見えてくる。なおここでは、アーキテクチャと回路技術、製造技術の改良はないものとする。
後藤弘茂氏が2005年1月にレポートした本誌記事「アムダールの法則を巡るIntelとAMDの戦い」では、マイクロプロセッサのマルチコア化に関する当時の二大ベンダーの認識の違いが丁寧に描かれている。IntelはCPUコア数の増加に積極的であり、AMDは保守的だった。2018年にはIntelが、28個と数多くのCPUコアをモノリシック集積したサーバー用マイクロプロセッサ、開発コード名「Skylake-SP」を国際学会ISSCCの論文番号2.1で発表しており、後藤氏が記事で述べたように、Intelは積極的にCPUコア数を増やした。
「アムダール則」の呪いを解く「グスタフソン則」
後藤氏の前述記事で興味深いのは、IntelのJustin R. Rattner(ジャスティン・R・ラトナー)氏によるアプリケーションの将来像に関するコメントだ。以下に引用する。
「並列化では、アムダールの法則が課題となる。しかし、将来のアプリケーションでは、アムダールの法則が制約要素になるとは思わない。それは、プログラムサイズが大きくなると、逐次実行部分より、並列化が可能な部分の方が急激に増えるからだ。そのため、大きなプログラムになればなるほど、(並列性の)効率がアップする。だからこそ、大規模な並列スーパーコンピュータがこれだけ成功している」。
「アムダールの法則はプログラムのサイズが固定されていると仮定しているように思う。確かに、プログラムサイズが固定されていれば制約になるが、将来のアプリケーションではプログラムサイズも拡大するため、並列性が高まる」。
ラトナー氏による2つのコメントは、1988年に提唱された「グスタフソンの法則」、略して「グスタフソン則」とほぼ等しい。グスタフソン則は米サンディア国立研究所の研究員John L. Gustafson(ジョン・L・グスタフソン)氏が、Communications of the ACM誌の1988年5月号に「Reevaluating Amdahl’s Law」のタイトルで公表した、アムダール則と超並列処理に関する考察である。
グスタフソン氏は、固定サイズすなわち「タスクの最大時間一定」というアムダール則の前提は現実にそぐわないとし、修正を試みた。コンピュータが処理するプログラム、つまりタスクの規模が大きくなれば、処理を並列化できる部分が増えると考えた。そして前提を、並列処理化済みの「タスク実行時間の最小サイズ」に変更し、同じタスクを実行する時間は並列度Nに応じて伸びるとした。
現在のプロセッサ設計では、アムダール則とグスタフソン則の勝負は「引き分け」であるようにみえる。プロセッサコア数が20未満のマルチコアはCPU、数十~数万コアのメニーコアはGPUと棲み分けているからだ。前者がアムダール則、後者がグスタフソン則の考え方を引き継いでいるともいえる。
マルチコア化でメモリアクセスが複雑かつ難解に
話題をマルチコアプロセッサに戻す。2000年代後半の時点では、マルチコアプロセッサにはいくつかのバリエーションがあった。粗く言ってしまうと、複雑かつ高性能なCPUコアを少なめに載せるプロセッサと、簡素かつ低コストのCPUコアを多めに載せるプロセッサに分かれた。またSMT(同時マルチスレッディング)を積極的に活用するプロセッサや、アプリケーションからキャッシュを明示的に指定可能なプロセッサなどが開発された。
マルチコアプロセッサでは、複数のCPUコアがメモリにアクセスする。演算性能、すなわち単位時間当たりの演算回数(OPSあるいはFLOPS)を高めるには、なるべく多くのCPUコアが動作している時間が長いこと、つまり並列処理の割合が大きいことが望ましい。一方で、多くのCPUコアが同時に動くことは、メモリアクセスの頻度が増えることを意味する。
たとえば4つのCPUコアがほぼ同時にメモリアクセスを始めたとしよう。CPUコア専用のキャッシュにヒットする、あるいは共有キャッシュにヒットすれば、メモリアクセスの遅延時間が演算性能に影響する比率は無視できる可能性が高い。逆にキャッシュミスによって外付けの主記憶であるDRAMにアクセスした場合は、演算性能が著しく低下する恐れがある。
シングルコアとマルチコアが根本的に違うのは、マルチコアではDRAMアクセスが、ほぼ同時に2つ以上のCPUコアから生じる可能性があることだ。プロセッサのユーザーであるシステム開発者やアプリケーション開発者などからすると、システム性能を高めるためのガイドラインが欲しい。
この要求に簡潔かつ明快に応えたのが、「ルーフラインモデル(Roofline Model)」と呼ぶ折れ線グラフの可視化モデルだ。2009年に米ローレンスバークレー国立研究所(LBNL: Lawrence Berkeley National Laboratory)のS. Williams研究員と、カリフォルニア大学バークレー校並列コンピューティング研究所の学生A. Waterman氏、同研究所長のD. Patterson氏が共同で提唱し、モデルの効果を検証した。
その論文は、Communications of the ACM誌の2009年4月号(pp.65-76)に「Roofline: an insightful visual performance model for multicore architectures」のタイトルで掲載された。2026年11月4日時点では、ACMのライブラリで無料で閲覧できる。なお、LBNLはカリフォルニア大学バークレー校の敷地内に所在しており、同大学がLBNLを運営している。以降はこの論文を「原著論文」と表記する。
演算性能の制限要因を可視化した「ルーフラインモデル」
ルーフラインモデルの考え方は簡素かつ分かりやすい。最大性能ではなく、アプリケーションごとの実行性能を決める要素を、DRAMアクセスの最大データ転送速度である「メモリ帯域幅」と、「最大演算性能」の2つだけにあえて単純化した。
言い換えると、実行性能の制限要因を、メモリ帯域幅による制限である「メモリ律速」と、最大演算性能による制限である「演算律速」に分けた。そして縦軸を演算性能(OPSあるいはFLOPS)、横軸を後述する「演算強度」あるいは「動作強度」(O.I.: Operational Intensity)とする両対数グラフで、マルチコアプロセッサの実性能を可視化した。
ここで根幹となるのが、動作強度あるいは演算強度と呼ばれる横軸の数値だ。定義は、演算回数/秒で表わす演算性能を、バイト/秒で表わす演算ごとのデータ転送速度で割ったもので、単位は「演算回数/バイト」となる。データ転送が多いと強度は低く、演算回数が多いと強度は高くなる。
そして外付け主記憶であるDRAMの最大データ転送速度、すなわち帯域幅と、プロセッサの最大演算性能から、1つの折れ線グラフが作れる。まず「最大演算性能/帯域幅」を動作強度として横軸の位置を決め、縦軸は最大演算性能の値にプロットする。このポイントは「稜線点」あるいは「リッジポイント」と呼ばれる。リッジポイントから動作強度が増加する方向に水平線を引き、動作強度が減少する方向に45度の斜線を引く。こうすると、屋根の断面に似た形状の折れ線グラフ、すなわちルーフラインが出来上がる。
動作強度がリッジポイントよりも低い計算アルゴリズムやアプリケーションの場合、メモリ帯域幅がプロセッサの性能上限を決める。メモリ律速、すなわち「メモリの壁」が出現し、演算器はデータの到着を待つ待機状態となる。折れ線グラフの斜線部分に相当する状態だ。動作強度がリッジポイントよりも高い計算アルゴリズムやアプリケーションでは、演算器の性能がプロセッサの性能上限を決める。演算律速となり、メモリの壁が消える。つまり、メモリ入出力の実行速度が最大データ転送速度である帯域幅よりも下がる。演算器はフル稼働状態であり、折れ線グラフの水平線部分に相当する。
リッジポイントでは、メモリ入出力と演算器のいずれもがフル稼働状態となる。「理想状態」とも呼ばれる。
Intel、AMD、Sun、IBMのマルチコアプロセッサでモデルの効果を検証
原著論文では、4つの代表的なマルチコアプロセッサを取り上げてルーフラインモデルの効果を検証した。検証に使用したのは、Intelの「Xeon e5345」、AMDの「Opteron X4 2356」、Sun Microsystemsの「UltraSPARC T2+ 5120」、IBMの「Cell QS20」である。開発コード名はそれぞれClovertown、Barcelona、Niagara 2。なおCellは、IBMとソニー、ソニー・コンピュータエンタテインメント、東芝が共同で開発したプロセッサである。
これらのマルチコアプロセッサはいずれも20年ほど前に開発されたので、性能諸元は現在の最新プロセッサと比べ、かなり低い。ただしルーフラインモデルはメモリ帯域幅と演算性能のどちらが実行性能を制限しているかを定量的に見積もるモデルなので、性能諸元そのものには依存しない。最新プロセッサでも十分に通用する。2010年代半ば以降には、ルーフラインモデルを拡張したり、GPUに適用したり、大規模言語モデル(LLM)の生成AIプロセッサに応用したりといった研究成果が続出した。その概略は、本コラムの次回以降で説明する予定だ。
ルーフラインモデルでは、プロセッサのリッジポイントに相当する動作強度と、アプリケーションの動作強度の大小関係だけで、メモリ律速なのか演算律速なのかが分かる。さらに折れ線グラフで可視化することで、理解を容易にする。
もちろん、マイクロプロセッサシステムの最大演算性能とメモリ帯域幅の比較から、システムのバランスはある程度、把握できる。検証対象となった4つのマルチコアプロセッサの性能諸元を比較すると、最大演算性能はIntelとAMDが高く、SunとIBMが低い。DRAMインターフェイスの帯域幅はSunとIBMが高く、IntelとAMDが低い。このことから、IntelとAMDのプロセッサがメモリ律速になりやすく、SunとIBMのプロセッサが演算律速になりやすいことは直観的に判断できる。しかしアプリケーションに依存する部分は、直観的には判断が難しい。
SpMV、LBMHD、Stencil、3D FFTでモデルの有効性を検証
原著論文ではまず、マルチコアプロセッサごとにリッジポイントの動作強度を計算した。リッジポイントの動作強度が大きいと、メモリ律速になりやすい。直観的な見え方と同様に、Intelは6.7、AMDは4.4と大きい。Sunは0.33、IBMは0.65と小さい。IntelとSunではリッジポイントの動作強度が、約20倍も違う。
続いて計算アルゴリズムとして「疎行列ベクトル乗算(SpMV: Sparse Matrix-Vector Multiplication)」、「格子ボルツマン磁気流体力学計算(LBMHD: Lattice Boltzmann Magnetohydrodynamics)」、「ステンシル計算(Stencil)」、「3次元高速フーリエ変換(3D FFT: 3 Dimensional Fast Fourier Transform)」を選択した。それぞれの動作強度を計算し、実行性能と律速要因をルーフラインモデルで見積もった。
SpMVの動作強度は0.17~0.25、LBMHDは0.70~1.07、ステンシル計算は0.33~0.55、3D FFTは1.09~1.64である。SpMVの動作強度が最も低く、定性的にはメモリ律速になりやすいことが分かる。
ルーフラインモデルは2010年代半ばに入ってから、いくつかの拡張が試みられた。キャッシュメモリを含むルーフラインモデル、GPUのルーフラインモデル、ディープラーニングの性能最適化モデルなどだ。これらの拡張内容を、ルーフラインモデルを通じた性能向上技術とともに、本コラムの次回以降で解説したい。





















![【Amazon.co.jp限定】 伊藤園 磨かれて、澄みきった日本の水 2L 8本 ラベルレス [ ケース ] [ 水 ] [ ペットボトル ] [ 箱買い ] [ ストック ] [ 水分補給 ] 製品画像:4位](https://m.media-amazon.com/images/I/41m8ly-SllL._SL160_.jpg)





