アプリを制するものがアーキテクチャを制す。(Haswell予想その2.)   

2011年10月16日



☆伊良湖岬で久々の息抜き週末。   
まずは久々の余談から。 従来は余談を楽しみにしていた人も結構居ただけに、ようやくの通常ペース復帰である。

今月初旬は資格試験もようやく終わり、久しぶりの息抜き週末。 本当は佐原の大祭(秋祭り)に行く予定だったのであるが、 私用により実家に帰る必要が生じたため残念ながら祭りには行けず、 息抜きは実家への移動途中という事になった。

で、息抜きのため早朝(と言うか深夜)に家を出て、寄り道は豊橋から久々の渥美半島巡り。 ここへ行くのは大学時代に友人と遊びに行った時以来のこと。 のんびりと海岸際をぶらぶらドライブである。

渥美半島の良いところは、半島であるにもかかわらずそこそこ高い山があって、 景色に奥行きがあること。伊良湖岬では、ちょうど渡り鳥が岬を飛び去っていく季節で、 渡り鳥マニアと思われる人たちが巨大望遠レンズ付きカメラを持って多数集結中であった。

伊良湖岬にはフェリー乗り場があって、すぐ隣が道の駅クリスタルポルト。 まずはここに寄ったのだが、山に育った木々が強力な海風で写真の通り波打った風模様に 育っていたのがいかにも岬海岸という風情で良かったね。 (右写真の左側が半島側で右側が海側。半島側は普通の森といった育ち方だが、岬側は筋状の風模様に育っている。)

帰省途中、渥美半島でぶらぶら息抜きドライブ。
伊良湖港の隣にある道の駅「クリスタルポルト」でひといき。(写真左)
伊良湖岬は強い海風で山の木々が美しい風模様(筋状)に育っていた。(写真右)

で、半島先端であるこの山には灯台と海上交通センターがある。 てくてくと海上交通センターに歩いて行くと、やはり半島先端の岬だけあって 見晴らしのいい海景色が心地よく広がっていく。 海上交通センターには展望台があるので、(高所恐怖症の当サイトにはちょっと厳しかったが) 登って遠景を楽しむことにした。

海上交通センターからの遠景。
遠くには対岸の知多半島や志摩半島もうっすらと見える。
ちょうどフェリー乗り場に向かってフェリーが来港してくる時間であった。(写真右)

登ってみると、写真の通りまさにフェリー乗り場にフェリーが来港してきた時間帯で、 いかにも港町の気分が味わえた。フェリーって普通の船と違ってバックで航海もできるのね。 写真では霞んでしまっているが、対岸の蒲郡、知多半島、志摩半島の遠景が美しい。 また、神島の前を次々と航行する各種輸送船は日本の産業力がまだ健在であることを示しているように思えた。 今回の目的地判断は大正解で、試験勉強疲れを癒すにはベストな心落ち着く風情だね。

帰り際には、渥美火力発電所とその近くの農業地域もドライブしたが、 キャベツやホウレンソウなどの豊かな農地が延々と続く癒し風景が印象的。 時々牛糞臭い場所がある事を除けば、かなりお勧めできる息抜き観光地域であった。

展望台の下には伊良湖岬灯台が...
GPS等の進歩により利用度は下がっているとはいえ、灯台は今でも海上交通安全の要である。(写真左)
伊良湖水道の中央にある神島の前を各種輸送船が次々と航行。中部地方の産業力を感じる。(写真右)

で、肝心の資格試験であるが... 自分の専門分野で2科目とも正答率80%以上を達成してようやく専門分野での面目を保ち、 また、いつも大苦戦分野の法規でも正答率80%以上を達成したのは当サイト的には大金星。 と、ここまでは良かったのであるが、習ったことのない流体力学・伝熱工学で正答率が低く、 配点均一としての予想点では3点及ばす4科目中1科目撃沈の可能性大。

前回の環境計量士試験が面目丸つぶれのギリギリ合格ならば、 今回は自分の専門分野の面目は保ったが習ったことのない異分野で撃沈の模様。 合計点が同程度ならば全科目ギリギリ得点でも合格した方が良かっただけに、ちょっと面目にこだわりすぎたかな? (この試験は科目別合格制度なので、来年は残る1科目に全力投球ですな。)

☆GPUは出来うる限りGPGPU化させないでCPUのGPU化を狙う。   
と言うわけで本題へ。 前回の続きとしてHaswell予想その2である。

資格試験でアップデートに大きなタイムラグが生じた関係で、あれからいくつかの報道があった。 たとえば、Haswellではメモリ系の強化が意外に行われていない等の情報がそれである。 CPUについては前回予想したが、これについても当サイトの予想はそれほど的中していなさそうで、 CPUの改善はトランジスタのプロセス技術がメインなんだそうだ。

μOPキャッシュの話が典型例なのであるが、最近の当サイトは予想は当たるが期日を先読みしすぎている傾向があって、 今回の予想もポストHaswellといった1世代先の技術を予想しているのかもしれないね。 (μOPキャッシュの拡張予想そのものについては、結構自信があるので。)

で、今回はGPUに関する予想なのであるが、前回では「当サイトが考える理想CPUアーキテクチャを書いていけば、 それが自動的にHaswellの予想になっているハズだ。」と考えた。 しかし、この考え方はGPUでは成立しないと思う。 なぜならば、CPUの理想的な発展はintelにとっての理想的発展とほぼ一致するが、 GPUの理想的な発展はintelにとっての理想的発展ではないからだ。

GPUはx86とは異なる系統で、これをx86に統合するLarrabeeは今のところ失敗に終わっている。 つまり、現状のままGPUの重要度が増していく状況は、intelにとっては市場への支配力の低下を意味する、 あってはならない方向性なのだ。

とすると、前回同様に当サイトの思う理想GPUの姿を追いかけていっても予想は当たらないだろう。 GPUに関して予想を的中させようと思ったら、技術面だけではなく市場への影響力拡大の手法を考えなくてはならないのだ。

と言うわけで、Haswell予想に関してGPU系では一つの原理原則が見いだせる。 それはすなわち、GPUとCPUで両者出来る事があったならば迷わずCPU側に負担させるという方向性だ。 これは、GPU混載のメリットとは一部矛盾する面もあるのだが、ともかくGPU混載時における GPUの影響度拡大をできるだけ避けるという方向性が予想を的中させるキモとなるだろう。

とすると、まず第一の予想ができる。 それは、GPUはGPGPUとしてではなくなるべく単純なGPUとして動作させ、 GPUの汎用化はなるべく行わないという方向性である。 あくまでグラフィック専用チップとして機能させ、汎用化ではなく専用化により性能アップさせる方向性だ。

AMDがGPUで出来る事はGPUにさせるという方向性なのに対し、 GPUはグラフィック専用用途になるべく特化集中させ、むしろCPUがGPUの機能を出来うる限り取り込むという発想である。 AMDがGPUを広く汎用に展開させる方向であるのに対し、intelはGPUをグラフィック機能になるべく特化させる。 そのかわり、特化した分だけグラフィック専用の機能は高効率化できるから、 同一グラフィック性能ならばダイサイズを小さくできる。 (事実、CPUとGPUのダイサイズ比率はAMDとintelで上記の説明通りになっている。) また、双方で共有化できるものについては、AMDは出来る限りGPU側に取り込もうとするだろうし、 intelではCPU側に取り込もうとするだろう。

双方で出来るものは出来るだけCPUに負担させると言う考え方の その一つの代表例がCPUのベクトル化対応だと思う。 Haswellではチップのベクトル化対応が発表されている。

で、上記の予想はかなり以前から考えていたのであるが、 資格試験勉強の関係で書き込みが遅れに遅れた結果、intelから拡張命令セットが一部公開され、 その結果当サイトの上記予想は一部については結果発表後の事後予想となってしまった。 つまり、GPUの汎用化阻止戦略は命令セット上から既に明らかな部分があるのだ。 (と言うわけで、今回は事後予想の部分があるので予想の的中云々の話は無しにする。)

ただ、この事実はintel自身が自分の優位性がどこにあるかを、 (建前ではなく本心としては)ちゃんと理解している事を意味している。 x86の優位性は圧倒的な市場シェアと過去のソフトとの互換性維持に起因するものであり、 技術的優位性よりも影響度は大きいということである。 また、技術的優位性はとくに半導体製造技術面にあると言われているが、 これはシェアの大きさによる高利益が高額な設備投資での優位性をもたらすという常勝サイクルが回っていることによる。 つまり、現在の半導体プロセス優位性はシェアが低下し利益率が下がりはじめれば維持出来なくなってしまう。 「技術的に優位だからビジネスとして勝っている。」という面だけを見るのは短絡的で、 「ビジネスとして勝っているから技術的に優位である。」という側面も結構あるのだ。 (日本の半導体産業が負けているのは、この「ビジネスとして勝っているから技術的に優位である。」という方向性 へのトレンド転換をトップがまったく理解できなかった事が最大要因だと思う。)

このため、intelとしてはGPU機能を少しでもCPU化する方向性が正しい方向性なのだ。 GPUとCPUの統合...と一言で言っても、CPUがGPUを取り込んでいくのか、 GPUがCPUを取り込んでいくのかでは、技術トレンドは大きく異なると思う。

ただし、単純なマルチコア化とは違って今回はこの方向性が自己都合によるものだけとは言えない一面もある。 GPUで出来る事はGPUでやった方が効率が良いと言い切れるか? と言えば、HPC用途なんかではGPUが勝利しているように見受けられるが、 PC用途ではHPC用途ほどの並列性は稼げない場合が多い。 (一般PC用途でHPC用途ほどのデータ並列性が得られるケースはエンコードなどの例外的事例に限られる。)

その結果、HPCで見られるGPUの低効率性 (GPUは絶対性能や電力性能は高いが、理論ピーク性能に対する効率は低い場合が多い。) がPC用途では大きく拡大し、肝心の絶対性能・電力性能でも効果が薄まってしまう可能性も否定できないからだ。

つまり、従来の単純なマルチコア化がPC用途に不適なアーキテクチャを無理矢理宣伝で売ろうとする戦略であったのに対し、 GPU機能をCPU側に出来うる限り取り込むという戦略は現段階では原理上間違っているとは言い切れない。 現状は「間違っているかもしれないし、正しいかもしれない。」という段階だと思う。

☆アプリの対応容易性が勝負を決めるキモ。   
当サイトは、そのキモはアプリの開発者が一番対応しやすいのはどれかという部分だと考えている。 だが、どの方向での統合が最適解なのかはアプリにもよるだろうし、 ケースバイケースでもあり、今の段階では当サイトも正直な話よくわからない。 アプリ開発の難易度の影響度というものは既にマルチコア対応面で マルチコア戦略を崩壊させているという絶対的支配力があるにも関わらず、 GPUに対してのみ対応が容易と安易に考えて良いものかどうか...

過去にアプリの開発難易度からハードウエアの潜在性能が生かし切れなかったケースは、 HPC用途からPC用途まであらゆる用途で存在する。 これがGPUだけクリアOKとは到底言い切れないと考えるのは、 決して深読みしすぎでは無いだろう。 (GPUでこの弱点が問題になりにくいのはグラフィック用途という絶対に必要な分野を一つカバーしているからである。 もしこの用途が無ければ、GPUがGPGPU化しても一部の特殊製品にしか採用されなかっただろう。)

さらに言うと、処理内容のデータ並列性が上がっても処理の複雑度がそれ以上に上がってしまえば GPGPUがCPUに対して優位とは言い切れなくなってしまう。 GPGPUは大量のデータに比較的単純な処理をするのには適しているが、 小数のデータに複雑な処理をすると効率が大幅に低下してしまう。 そして、並列度の高い用途でも処理の複雑度も今後上がっていくことは十分に考えられる。

つまり、今後の処理でデータ並列性が上がるからと言って単純にGPGPUの重要度が上がっていくとは言い切れない面もある。 どちらの影響度が高いかは、今後のアプリの成長分野次第でもあり、予想するのは難しいと思う。 (特にゲーム用途を全然想定する必要のないビジネス用途PCでは GPGPUの優位性が意外に生かしにくい事には注意が必要だ。 ビジネス用途はパーソナル用途と同程度の市場規模があるからね。)

ここまで書くと、読者の皆様は「おやおや、今までマルチコア化に否定的な意見を強く主張していた サイトなのに、今回はGPU否定か?」と言われそうだが、そうではない。 まず、単純なマルチコア化を一方的に進めても PC用途でのマルチスレッド対応が非常に難易度が高い状況なのは誰にでもわかるくらいに明白になった。 だから、当サイトのマルチコア化否定論は(現状では)まったく間違っていない。 また、GPUはグラフィック用途として必須のハードウエアだからGPU混載は必須項目であり、 この考え方も全然間違っていない事はGPU混載がPC用途では常識化したことで明白になった。

しかし、だからと言ってGPUが汎用用途でCPUに勝てるかというと... アプリ対応の難易度からGPU、CPU双方が負けパターン という最悪のシナリオが十分に考えられると予想しているのである。 これは勝者のいない屍の山みたいな状況である。 (要するに当サイトのGPU混載必須という主張はGPU混載だから的中した予想なのであり、 GPGPU混載必須という主張だったら「まだ、当たるかどうかわからない。」という段階なのである。)

ともあれ、CPU側にGPU的な機能を出来る限り融合して行き、 別途混載しているGPUはグラフィック用途に特化する。 これによりダイ面積あたりのGPU性能を上げて、 弱点だったGPU性能は汎用化を避けグラフィックに特化することでライバルとの差を詰めていく。 これが当サイトのHaswellのGPU予想である。 繰り返しになるが、勝負の行方を決めるのは、ひとえにアプリの対応容易性次第だと思う。