2010年01月28日

『OpenCL入門 —マルチコアCPU・GPUのための並列プログラミング』



/

最近編集・DTPを担当した上記書籍が刊行されました。表紙も中身もクールなので、ぜひ手に取っていただきたいと思います。

既存のCPU/MPUの処理能力の向上が頭打ちになる中、昨今大きな注目を集めているのがGPGPUプログラミングです。GPUはCPUの補完的な機能として画像処理を専門に担当するプロセッサとして開発されましたが、高速性と高度な描画表現の要求に応えるべく進化の進んだ結果、単純ながら多数の演算装置を持つ超並列計算機としての性質を持つようになっています。 GPGPUプログラミングは、GPUをグラフィックではなく汎用目的として、フーリエ変換やデジタル画像・音声処理、各種のシミュレーション、クラスタリングといった並列計算に用いるものです(たとえばNVIDIAはグラフィック出力ではなく計算のみに特化したGPUも製造しています)。

GPGPUプログラミングでの問題は、プロセッサ、コンパイラ、組み込み環境の有無といった違いに応じてそれぞれプログラムコードを対応させなければならず、移植性が低く、学習しづらいことでした。そのための解決が「OpenCL」です。OpenCLは、C言語を拡張した並列プログラミング言語およびそのランタイムAPIをセットにした環境です。ほぼC言語と同じ感覚で、プロセッサの違いを意識することなくプログラムコードを記述でき、移植性と学習の容易さを提供してくれます。また、パフォーマンスを最大限に引き出すチューニングも可能です。OpenCL環境はLinux、Mac OS X、Windowsと主要な各種OS向けに提供されています。

本書は、この新しい技術基盤であるOpenCLを解説した日本初の書籍です。 著者陣は並列計算やCellプログラミングの分野で高い技術力を評価されているフィックスターズ社のメンバーで構成され、技術的内容にかけてはまず安心と言えます。 すでにバリバリとGPUプログラミングを使い込んでいる方には物足りないかもしれませんが、OpenCLの概要、並列化の概念、言語仕様と既存CコードのOpenCL化のテクニック、フーリエ変換、画像処理、市場シミュレーション、パフォーマンスチューニング、とOpenCLを始める基礎となる知識が盛り込まれており、入門として適しているでしょう。