【レポート】

Fall Processor Forum 2005 - プロセッサをNASのように接続する - 成功するか、Azul Systemの挑戦

1 マルチコアですぐに問題が解決するわけではない

  • <<
  • <

1/2

Photo01:Scott Sellers氏(VP Hardware Engeneering, CTO, & Co-founder, AZUL SYSTEM)。同氏はかつて3dfxを興し、VP Engeneering兼CTOを務めていた。

FPF初日のSession 1(Multicore Processor)とSession 2(Innovative IP)の間に行われたSpecial Sessionが、Azul Technologyの"Unshackling Innovation Through Multicore Architecture"と題した講演。もの凄く真っ当というかコンサバティブな前半部と、物凄く変というかエキセントリックな後半部のコントラストが見事な内容であった。ということで、これをご紹介したい(Photo01)。

マルチコアの問題

まず同氏はシングルコアの問題点のおさらいに入る。Intelのx86系を例に、周波数を上回る勢いで消費電力が増加してきている点を示し、これが性能のネックになっている事を指摘した(Photo02)。この消費電力で問題なのが電力密度、という話は今に始まった事ではない(Photo03)。平均100W/平方cm、ピークで300~400W/平方cmという数字は軽くホットプレートを超え、原子炉のそれに近いレベルであり、冷却システムが追いついていないという。

Photo02:2002年以降周波数が12%程度の増加に留まっているのは消費電力の問題であるという指摘。ただ、これはIntelのしかもPrescottコアに限った数字な気はする。Pentium MやAthlon 64は元々上がり方が少なかったから、これらをプロットしたらまた別のグラフになりそうな感じではあるが。

Photo03:これを緩和するためにL2キャッシュを増やすことで電力密度を減らすという話はあるのだが、写真右でも判るとおり必ずしもうまく熱が伝わるとは限らないわけで、せいぜいが多少緩和される程度である。L2キャッシュによる分散を考える場合、もっと積極的にCPUコアとL2キャッシュを混ぜる必要があるだろう。

こうした問題から、トレンドはシングルコアでの性能追求からマルチコアでの性能向上に移りつつある(Photo04)。左が問題、右がその解という話で、これらの話は何れもお馴染みだろうから改めて解説はしない。実際、現在発表ないし生産されているCPUコアは、いずれもマルチコアの方向に向いているのは周知の事実だ(Photo05)。これは別にPC向けのみならず、Embedded向けも同様である。

Photo04:ちなみに一番下の項目が一番Fitするのが、SunのNiagaraだろう

Photo05:一番下にちゃっかりAzulのVega1が居るが、まぁこれはとりあえず除外して考えよう。

ただ、ではマルチコアにすれば話は解決……という具合に単純にはいかない。マルチコアにはマルチコアの問題があるからだ。まずは消費電力である。マルチコアを進めるためにはより多くのトランジスタが必要となり(ダイの数に比例してトランジスタ数も増えるからだ)、そうなるとプロセスの微細化が前提となる。ところがプロセスの微細化を行うと消費電力が次第に増えてゆくという問題が立ちはだかる(Photo06)。電圧の下がり方は今後鈍化してゆき、かつリークが減らないのがその最大の要因だ。CMOSを使う限りこの制限から逃れるのは難しい。

次に登場するのがアムダールの法則である。アムダールの法則と呼ばれるものは実はいくつかあるのだが、ここで話題にしているのは「並列処理により得られる性能改善は、逐次処理の部分でも同程度の性能改善をしない限り無駄になる」という奴である。実際

S(P)=1/(F/P+(1-F))

という有名な計算式がある。Fは並列化率、Pはプロセッサの数、S(P)がプロセッサP個の場合の相対性能である。Photo07はこの式をグラフにしたものだ。従って、単にコアを増やすだけでは解決できず、うまく並列化を行う必要がある。

Photo06:リークを考慮すると、どうしても消費電力は跳ね上がらざるを得ない。とはいえ、0.5μmプロセスと比較して3倍程度なら許容範囲ではないか? という気もするが。

Photo07:"Serialized Code"というのは、プログラム中どの程度が逐次処理かの率を示すものだ。これが0.1%(殆ど無い)の場合は割とリニアに性能が上がるが、20%になるともういくら並列化しても意味がない感じになっているのがお分かりいただけよう。

他にも問題はある。代表的なものはソフトウェアライセンスである。特にサーバーの場合、デュアルコアだとライセンス料が2倍、4コアだと4倍という値段の付け方をしている製品は多い。これは当然エンドユーザーには重い負担である。またそもそもシングルスレッドのアプリケーションを実行していたらどうなるか? とかマルチコアの場合のI/Oスループット(特にメモリアクセス)がボトルネックにならないか? などが主なものであろう。

  • <<
  • <

1/2

インデックス

目次
(1) マルチコアですぐに問題が解決するわけではない
(2) VegaはJava2の仮想マシンに最適化されたプロセッサ


人気記事

一覧

イチオシ記事

新着記事