FPGAを活用した並列コンピューティングが加速、アルテラがOpenCL向けSDKを発表2013年中に正式リリース

FPGAを並列コンピューティングの計算資源として活用するための取り組みを進めてきたアルテラは、FPGA業界初をうたう「OpenCL向けソフトウェア開発キット(SDK)」を発表した。このSDKにより、回路設計の知識のないソフトウェア開発者でもFPGAベースのアプリケーションを、迅速かつ容易に開発できるようになるという。

» 2012年11月07日 11時38分 公開
[八木沢篤,MONOist]
OpenCL向けソフトウェア開発キット

 並列コンピューティング向けソフトウェアプログラミングのフレームワークである「OpenCL(Open Computing Language)」を、自社のFPGAに適用する研究開発プロジェクトを推進してきたFPGA大手ベンダーのAltera(アルテラ)は、2012年11月6日、FPGAの超並列アーキテクチャとOpenCLの並列プログラミングモデルを組み合わせた「OpenCL向けソフトウェア開発キット(SDK)」を発表した。「FPGA業界初のOpenCL向けSDKだ」(同社)という。

 アルテラは、ホスト側のメインプロセッサのソフトウェア処理負荷をオフロードする並列コンピューティング用のハードウェアアクセラレータの選択肢の1つとして、FPGAを活用するための取り組み進めている。2010年にOpenCLの標準化を行う業界コンソーシアム「Khronos Group(クロノスグループ)」に参加。翌2011年に、初期顧客とともにコンセプトや考え方に関する実証活動を開始し、2012年から実証プロジェクトとして、OpenCLアーリーアクセスプログラムをスタートさせていた(関連記事)。

FPGA業界初をうたうOpenCL向けSDKを発表 FPGA業界初をうたう「OpenCL向けSDK」を発表

 この取り組みにより寄せられた参加企業からのフィードバックを反映し、このたび、OpenCL向けSDKとして、“量産移行できる段階”に至った。現在、アーリーアクセスプログラム参加企業への提供が開始されており、「2013年中に正式リリースされる見通し」(同社)だという。

 今回発表されたアルテラのOpenCL向けSDKにより、開発者は、ホスト側のメインプロセッサ(現時点ではx86アーキテクチャをサポート)で動作するプログラム(これを「ホストプログラム」と呼ぶ)と、並列コンピューティング用のハードウェアアクセラレータ、つまり、アルテラのFPGAで動作するプログラム(これを「カーネル」と呼ぶ)を、Cベースの高級言語で迅速に開発できるようになる。

OpenCLによるヘテロジニアス(異種混在)ソリューションアルテラのOpenCL向けSDKの紹介 (左)OpenCLによるヘテロジニアス(異種混在)ソリューション/(右)アルテラのOpenCL向けSDKの紹介

 C言語で記述されたホストプログラムのソースコードについては、標準的なCコンパイラによるコンパイルで実行ファイルを生成してから、ホスト側のコンピュータで実行する。一方、外部のハードウェア(FPGA)でアクセラレーションする部分(カーネルのソースコード)に関しては、アルテラのOpenCL向けSDKを使用してコンパイルする。このSDKでコンパイルすると、OpenCLカーネルファンクションのカスタムFPGAハードウェアアクセラレータへの変換、インタフェースIPの追加、インターコネクトロジックの構築、FPGAプログラミングファイルの生成が自動で行われるため、ユーザーは生成されたファイルをFPGAに書き込むだけでよい。ちなみに、このSDKには、ホストプログラム内のOpenCL APIコールにリンクするライブラリが含まれている。「これまではFPGAに精通した人しか活用することができなかったが、OpenCL向けSDKにより、回路設計の知識のないソフトウェア開発者でもFPGAを活用した並列コンピューティングが可能になった。これは非常に大きな変化だ」(同社)。

アルテラFPGA上でのOpenCL実装 アルテラFPGA上でのOpenCL実装

 ホスト側のメインプロセッサから、外部のハードウェアアクセラレータとして機能するFPGAへ処理を引き渡す場合、PCI Expressを通じた通信によって指示が送られ、FPGA側に実装された処理が動作する。並列スレッドによるソフトウェア処理を複数コアで実行するCPUやGPGPUと異なり、FPGAの場合、カーネルファンクションについて、パイプライン並行処理の概念を用いて高度にパイプライン化したマルチスレッドの専用ハードウェア回路に変容させることができる。各パイプラインは、何度も複製し、複数のスレッドを並列に実行させることで、さらに多くの並行処理を可能にする。

 同社によると「FPGAをホスト側のメインプロセッサとともに動作させることで、CPU単体の9倍以上の性能を発揮したケースや、類似するGPUによる実装に比べて5倍以上の電力効率(1ワット当りの性能)を実現できたケースもある。また、OpenCL向けSDKにより、開発期間を数カ月短縮した事例もある」という。

Time-to-Marketの短縮高い演算性能 OpenCL事例からメリットを紹介。(左)Time-to-Marketの短縮/(右)高い演算性能

OpenCL事例からメリットを紹介。電力効率 OpenCL事例からメリットを紹介。電力効率

 さらに、2012年12月からアーリーアクセスプログラム参加企業向けにサンプル出荷を開始するARMコア混載FPGA「SoC FPGA」も2013年中にサポートする計画である。SoC FPGAのチップ上で、ARMコア(ARM Cortex-A9のデュアル構成)をメインプロセッサとし、FPGA部を並列コンピューティング用のハードウェアアクセラレータとして利用できる。SoC FPGAの場合、プロセッサが統合されているためシステムコストが下げられるのはもちろんのこと、「メインプロセッサとFPGAがオンチップで実装されているため、接続のバンド幅は125Gbps以上になる。PCI Expressで接続する場合よりもバンド幅が飛躍的に向上し、レイテンシ(遅延)も小さくすることができる」(同社)という。

SoC FPGAで性能を加速 SoC FPGAで性能を加速

 この取り組みに併せ、同社は、商業汎用ボードソリューションを提供すべく対応を進めており、現在、BittWareとNallatechの2社が提供するボードがアルテラのOpenCLをサポートしている。以降のバージョンで順次対応するボードを増やしていく計画だ。

 なお、同社は11月14〜16日の3日間、パシフィコ横浜で開催される「Embedded Technology 2012/組込み総合技術展」に出展(ブース:A-21)し、FPGA向けOpenCLの性能および生産性の面における優位性を示すデモンストレーションを披露する。

Copyright © ITmedia, Inc. All Rights Reserved.