BT

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

| 作者: Abel Avram フォローする 10 人のフォロワー , 翻訳者 能仁 信亮 フォローする 0 人のフォロワー 投稿日 2009年12月23日. 推定読書時間: 2 分 |

原文(投稿日: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 コンボリューション・サンプル

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT