適切なプログラミング環境に欠けるも
Cilk Plusの実装でx86互換が功を奏す
ということで、Xeon Phiの今後の展開についての説明が終わったところで、冒頭に書いた「欠けている要素」の話をしよう。
それはなにかといえば開発環境である。もともとインテルは自社で長くコンパイラを開発・提供していた。
x86以外にも多くの8bit CPUを開発していたし、その後はi860やi960、Itaniumなど各種の32/64bitアーキテクチャーに基づく製品をリリースするにあたり、「アセンブラで書け」ともいえず、かといってコンパイラメーカーの対応を待っていたらいつになるかわからないからだ。
もっとも、PCの市場ならマイクロソフトのCコンパイラ(後のVisual Studio)が有名だし、HPC向けには(現在はNVIDIAに買収された)PGIという会社が提供するコンパイラも広く使われている。
ただ数値演算に関しては、インテルが2003年から提供を開始したMKL(Math Kernel Library)にあわせてこれをサポートする形で最適化をより高めていった。
さらにVTuneという最適化分析ツールやTrace Analyzerなどのマルチスレッド化支援ツールなど様々なツールも同時に提供しており、ことx86/x64の最適化に関してはマイクロソフトのVisual Studioよりも充実しているというのが昨今の評判である。
こうした開発ツール群を抱えているのだから、もちろんXeon Phiに関しても手を打った。2010年頃からKnights Ferryベースの開発ボードを配布した先には評価版をあわせて提供したが、2011年にはIntel Parallel Building Blockという形で開発キットとして提供するようになる。
この中で特に大きなのは、Cilk Plusと呼ばれる言語拡張機能である。もともとはMITが開発していたCilkという言語拡張があり、これをベースに拡張したCilk++なるものも登場したが、これらをインテルがまとめて買収、Cilk Plusとして実装した。
CilkにしてもCilk Plusにしても、骨子はC/C++にマルチスレッドの対応を容易に記述できるものであるが、インテルはこれをMICアーキテクチャーに拡張した。ここで初めて、各コアがx86互換であることが生きてくる状況になった。
というのはCilk Plusを利用してマルチスレッド化したアプリケーションは、Xeonベースのマルチコア、Xeon+Xeon Phi、あるいは大規模なクラスターであってもそのまま変更せずに走らせられるからだ。
イメージ的にはOpenCLの先取りという感じだが、提供されるAPIはOpenCLとなんの互換性もない。OpenCLに対する強みは手厚い開発環境であり、これを早期から提供したことにより、急速にXeon Phi対応アプリケーションが増えることになった。
なにせCUDAにせよOpenCLにせよ、基本的には書き直しになるのに対し、Cilk Plusでは既存のアプリケーションコードにスレッド制御を追加するだけで対応できるため、移行の手間が大幅に減ることになる。
チップそのものの性能強化に加え、このソフトウェア環境の厚みがHPC市場におけるXeon Phiの存在を急速に高めた要因の1つであることは間違いないと考えてよいだろう。
この連載の記事
-
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 -
第757回
PC
「RISC-VはArmに劣る」と主張し猛烈な批判にあうArm RISC-Vプロセッサー遍歴 -
第756回
PC
RISC-Vにとって最大の競合となるArm RISC-Vプロセッサー遍歴 -
第755回
PC
RISC-Vの転機となった中立国への組織移転 RISC-Vプロセッサー遍歴 -
第754回
PC
インテルがCPUの最低価格を82ドルに引き上げ、もう50ドルでは売れない製造コスト問題 インテル CPUロードマップ - この連載の一覧へ