マルチコア時代におけるソフトウェアの恒久性

また、現在のマルチコアCPUや並列データ処理プロセッサは過渡期であるため、この世代で作成したソフトウェアが将来的にそのまま高速に動かせることも重要だとBoyd氏はいう。世代が変わるごとにソフトウェアの書き換えや設計のし直しが必要なのでは、なかなかメインストリームになりにくい。

CPUのような対称型マルチコアCPU向けのソフトウェアはともかく、CELLプロセッサのような非対称型マルチコアCPUのソフトウェアや、GPUで汎用ソフトウェアを動作させるパラダイム「GPGPU」向けソフトウェアなどは、そのアーキテクチャに依存したソフトウェアモデルになりやすく、ソフトウェアの恒久性が維持しづらいイメージがある。

今作ったソフトウェアが将来は速く動かせること。「ごく当たり前のこと」のようだが、様々なアプローチのマルチコアや並列データ処理プロセッサが登場している今世代はこのテーマが改めて重要になってきた?

これについては、OS、あるいはより上位レベルのAPIやランタイムコンパイラなどが、そうした世代間アーキテクチャ格差を吸収していく必要があるとBoyd氏はいう。

ここ数年の内にCPUは数十から数百のコア数へ進化するといわれ、GPUのような並列データ処理プロセッサは数百から千の演算器数へと進化すると言われているが、Boyd氏の言うように、現状と近未来を冷静に見つめてみると、夢のような明るい未来ばかりではなく、やや"いびつ"な構造も見えてくる。

ATIと合併したAMDはCPUとGPUを統合したFUSION構想を掲げ、競合NVIDIAは「統合は進化の停止を意味する」としてこのアイディアには否定的な立場を取る。NVIDIAはGPUをあくまで独立した汎用高機能プロセッサとして育てていく方針で、だからこそCUDA構想を提唱したのだ。

2000年以降、ここしばらく、「プログラマブルシェーダの進化」だけに集中していればよかったDirectXだが、ここに来て、そうも言っていられなくなってきた、といったところだろうか。

ソフトウェアメーカーとしてのマイクロソフトの立場としては、このいびつさを是正できるならばそれをハードウェアメーカーに呼びかけ、どうしても残ってしまう不都合はなんとかソフトウェア層で吸収していかねばならず、マイクロソフトはなかなか進まない64ビット化のメインストリーム化とは別に、頭の痛い課題を抱えることとなっているのだ。

このBoyd氏の基調講演からは、「これからのDirectXをどう進化させていったらよいのか」という葛藤が見え隠れしていたように思う。

(トライゼット西川善司)