BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Accelerator V2を使ったマルチコアGPU/CPU上での並列プログラムの実行

Accelerator V2を使ったマルチコアGPU/CPU上での並列プログラムの実行

原文(投稿日:2009/12/17)へのリンク

現在、プレビュービルドとして提供されているAccelerator V2は、.NETのマネージ・ライブラリでマルチコアCPUやGPU上でのデータ並列プログラムを記述する際の手間を省いてくれるものだ。

Microsoft ResearchのプロジェクトであるAcceleratorは、マネージ・ライブラリとして2006年に開発が開始され、最初のバージョンは、2007にリリースされた。もともとは、C#で記述されており、GPUをターゲットとしたものだった。しばらくして、C++で書き直され、どの.NETの言語からも利用しやすいようにマネージAPIとしてラップされた。

Accelerator V2は、マルチコアGPUとマルチコアプ・プロセッサ上で並列処理を実行するためのAPIを提供している。Field-programmable Gate Array(FPGA)向けは現在開発中だ。

Microsoft Researchの上級研究員であるSatnam Singh氏は、ローエンドのグラフィックカードに加えて、8コアの64ビットWindows 7マシンでAcceleratorを使ったコードを実行するデモ用のF#のプログラムを公開した。F#で2次元のコンボルバの作り方を示し、このコンボルバがF#からAcceleratorを使ってどのように表現されるのかを示した。コンボリューションとは

シーケンスのタプルをタプルのシーケンスに変換する関数だ。

Singh氏は、このコードがコンボリューションを実行するためにどのように動くのか説明もしている。彼は、デモンストレーションの最後にAcceleratorがどのように役立つのかに言及して締めくくっている。

Acceleratorシステムは、様々なバックエンド(ターゲット)の実装を効率化できる全体配列操作を使って、データ並列アルゴルズムを記述するのに役に立つ。例えば、全体配列操作を利用することで、私が現在取り組んでいる実験的なFPGAターゲットに対して効率的なアドレス・ジェネレータを生成することができる。

Acceleratorは、ステンシル・スタイルのデータ並列プログラムを記述するのにとても適合している。Acceleratorの計算は式指向の特色をもつので、F#のような関数型の言語と非常に相性がよい。実際のところ、Acceleratorシステムは、自身のことをF#、C#、C++(他の.NET言語でも同様だが)のドメイン固有言語だと定義づけている。

Accelerator V2は、実行時にDirectX 11を必要とする。

関連リソース: Accelerator v2 Preview Update 12-8-2009Accelerator v2 F# 1D コンボリューション・サンプル

この記事に星をつける

おすすめ度
スタイル

BT