オルタナティブ・ブログ > 少しでもパラノイアになってみる >

知的好奇心を満たすために、いろいろなことにチャレンジする

CPUの進化に関して

»

上記の記事にを読んでCPUの進化に関して考えてみました。

CPUの進化を方向性を決めている法則は以下の三つでしょう。

ムーアの法則
ポラックの法則
アムダールの法則

ムーアの法則は有名で説明する必要もないでしょう。"トランジスタの集積密度は、18~24か月ごとに倍になる"はIT業界の進歩を支えている法則です。このおかげで、IT業界は、他の業界よりも早く低コスト化が進んでいます。

ポラックの法則はマイナーで"プロセッサの性能はそのダイサイズの平方根に比例する"とあります。CPUを大きくしてもあまり早くならないと言う経験則ですが、わかりにくいです。ユーザではこれを経験するケースはあまりないのではないでしょうか。設計している人達用の経験則でしょう。このため、少しは変更して考えるべきです。

例えば、Core 2 Extreme QX6850とCore 2 Extreme QX9770は、トランジスタ数が582M→82Mと40%増えました。√(1.40)=1.19になります。

Core 2 Extreme QX6850とCore 2 Extreme QX9770のシングルスレッドの性能としてSPECint_base2006は、21.59→27.30の26%増です。ただし、ここでは周波数が3.0GHz→3.2GHzまで向上しているためCore 2 Extreme QX9770を3.0GHzとすると25.59となり、1.19の向上になります。ポラックの法則程度の工場になります。

このためポラックの法則をもう少しわかりやすくすると、"シングルスレッドの向上率は、同じ周波数ならば、トランジスタ数比のルートになる"としたほうがわかりやすいでしょう。トランジスタ数比とダイサイズ比は、同じではありませんが出荷されたCPUではダイサイズ比較は実質できませんから。

ポラックの法則は単に、シングルスレッドを向上させるためにトランジスタを注ぎこんでも効率が悪い事を示唆しています。2倍のトランジスタを投入するならば、シングルスレッドを向上させるのではなく、コア数を倍にしたほうが効率が良い事を暗に示している経験則です。

ですが、そうは簡単にいかないのがアムダールの法則です。

アムダールの法則は、「性能向上率を決定するのはプロセッサ数ではなくアルゴリズムである」となります。簡単に言えば、ソフト側のボトルネックを解消しないとハードウェアでコア数を増やしても性能は上がらないよと言っています。

ムーアの法則では同じコストでトランジスタ数を2年で倍にできるが、ポラックの法則によりシングルスレッドは向上は難しいからマルチコアに進化するのがコストパフォーマンスが良くなります。ですが、アムダールの法則があるのでコア数比で性能がリニアに向上しないことを示しています。

マルチコア以前の時代はポラックの法則が働いていたはずだけど、性能向上は良かったような?と思うのはポラックの法則はIPC(周波数あたりの性能)あたりの性能だけが対象なのでしょう。CPUの性能はIPCx周波数のため、ポラックの法則による性能向上の頭打ちを周波数向上で補完していたのでしょう。

Pentium III/Athlon XP時代のGHz競争時代は、そのような時代でした。また、Pentium 4は最たるものでした。ですが、今度は半導体の物理現象(リーク電流)のため、周波数は向上が妨げられています。

PC向けCPUは、Pentium 4の3.8GHz以降はそれを越える製品はありません。また、販売戦略があり、周波数をあげないようにしている節があります(4/6コアが最上位製品に対して、その周波数を元に、2/4コアの周波数を決めているような感じがします)。

ポラックの法則で性能向上は頭打ち、周波数は物理現象による上げられない、アムダールの法則によってマルチコア化しても性能向上は芳しくない。

この事象を解決策として、IntelのNehalemコアでTurbo Boost TechnologyやAMDのTurbo CORE Technologyで一部のコアをブーストさせる方向に向かいました。

CPUのここ最近の進化を図示すると以下のようになります。

ターボブーストも、すでに通った道をまた戻って行っているだけなため暫定的な対処なのでしょう。

今のところCPU進化は、IntelもAMDもヘテロジニアスマルチコアに本格的に舵をきることまではわかっています。OpenCLやDirectX 11を使ってGPGPUが普及してGPU部分を使いきれるかが鍵になるかも知れません。

たヘテロジニアスマルチコアとして最も有名なPS3のCPUであるCellの現状を見ていると開発者の負担は相当が高いことが分かります。また、PCもGPGPUを使用できるようになってしばらく経ちましたが、ソフトもあまり増えていないこと対応カテゴリも狭いところが気になります。

OpenCL等のGPUを使用する方向はまだテイクオフ前としてはまだまだのような気がします。

CPUにGPU搭載は低コスト化には貢献すると思いますが、将来的には多くのユーザに恩恵があるかは、未知数といったところでしょうか。

【CPU関連】
SPECcpu2006 の推移(2006.7~2010.4)
Apple のAMD CPU採用の噂に関する考察
Web Wrokersを使ってマルチコアを使い尽くしてみた(Javascriptサンプル)
ThinkPad X201sを購入した(CPUの設定編)

Comment(0)