日経テクノロジーonline SPECIAL

【ザイリンクス】プログラマのためのFPGA開発環境が登場 C/C++を駆使してCPU/GPUの「壁」を突破

FPGA(Field Programmable Gate Array)の大手ザイリンクスは、データセンターなど高性能コンピュータ・システムの高速化に携わるソフトウエア技術者に向けたFPGA開発環境「SDAccel」の提供を開始した。既存のCPU(Central Processing Unit)/GPU(Graphics Processing Unit)と同様の環境を使って、高性能を追求するうえで有利なFPGAベースのアクセラレータを効率良く開発できる。固定したハードウエア環境でスキルを発揮してきたソフトウエア技術者に新たな可能性をもたらす画期的な開発環境である。

黒田成一氏
ザイリンクス
グローバルセールス アンド マーケット
ツールメソドロジー アプリケーション部
シニア エンジニア

高速化を徹底的に追求するために、データセンターをはじめとする高性能コンピュータにFPGAを搭載する動きが最近になって加速している。ハードウエアを自由にプログラミングできるFPGAを利用してアプリケーションに特化したハードウエアを実現することで、格段に高いパフォーマンスを引き出すことができるからだ。

高性能コンピュータの分野でFPGAが注目を集めている背景には、株式の高速自動取引「HFT(High-Frequency Trading)」などデータ処理の遅延時間を極限まで短縮しなければならないアプリケーションや、ビッグデータや人工知能など莫大なデータを高速で処理するアプリケーションが増えてきたことがある。これに伴って高まる高速化のニーズに対して、CPUやGPUといった従来のコンピューティング・デバイスだけでは対応仕切れなくなってきた。微細化とともに高まってきたCPUの動作周波数が、最近では頭打ちになってきたからだ。CPUよりも優れた電力効率や高い性能を発揮するGPUを搭載する動きも近年すすんでいるものの、いまや電力効率の点でFPGAの方が優れている。そこでFPGAが注目を集めているわけだ。

ソフトウエア技術者の課題を解決

図1 C,C++,OpenCLをサポートする設計環境を実現
[画像のクリックで拡大表示]

だが、これまでCPU/GPUをベースにしたコンピュータ・システムの高速化を中心となってけん引してきたソフトウエア技術者の多くが、ここで大きな問題に直面する。FPGAは、Verilog-HDLなどのハードウエア記述言語(HDL)を使ってRTL(register transfer level)の抽象度で設計するのが現状では一般的だ。ところがHDLを使いこなせるソフトウエア技術者は極めて少ない。 こうした問題を解決し、FPGAを利用したさらなる高速化の可能性をソフトウエア技術者にもたらすのが、ザイリンクスが新たに提供するSDAccel™開発環境である(図1)。「FPGAに関する知識がないソフトウエア技術者の方でも、プログラミングのスキルを生かしてハードウエアをベースにした高速化に取り組んでいただけます」(ザイリンクス グローバルセールス アンド マーケット ツールメソドロジー アプリケーション部 シニア エンジニア 黒田成一氏)。スイスの総合大学ETH Zurichとザイリンクスの共同研究の結果によると、FPGAを利用することで消費電力1W当たりの性能をCPU/GPUをベースにしたコンピュータ・システムの25倍にまで高まめることができる。さらに50倍~75倍のレイテンシの向上も図れる(図2)。

図2 効率良く高性能化を図れる環境を提供するSDAccel開発環境
[画像のクリックで拡大表示]

Eclipseベースの統合設計環境

SDAccel開発環境は、多くのソフトウエア技術者が使い慣れているEclipseベースのIDE(統合開発環境)、ザイリンクスのFPGA製品に最適化されたライブラリ、PCIexpressインタフェースを介してx86ベースのCPUホストに接続できるFPGA搭載アクセラレーション・ボード(開発ボード)の大きく三つから成る(図3)。開発したアプリケーションを実装できる開発ボードは、現時点で英Alpha Data Parallel Systems社、米Pico Computing社、米Convey Computer社の3社から提供されているが今後さらに日本のパートナーも含め増やす予定である(図4)。

図3 SDAccel開発環境の構成
[画像のクリックで拡大表示]
図4 SDAccel開発環境がサポートする主なアクセラレータ・ボード
[画像のクリックで拡大表示]

IDEには、新たに開発したHW/SWコンパイラ、デバッガ、プロファイラーが組み込まれている。この環境の下で、OpenCLの流儀に従ってホスト(x86_64)とカーネル(デバイス)用にソースコードを準備すれば、あとはFPGAからランタイムAPIまでHW/SW実装の設計作業が全て自動化される。

こうしたSDAccel開発環境の最大の特徴が、デバイスの実装に用いる言語としてOpen CL Cだけにこだわらず、通常のC/C++による逐次処理の記述から並列処理の回路を実現する独自のコンパイラを提供していることだ。それに加え、ザイリンクスFPGA製品の実装に最適化されたOpenCV(コンピュータ・ビジョン)やBLAS(線形代数)等のライブラリ群も充実している。「こうした開発環境を提供しているのは、今のところザイリンクス以外には見当たりません」(黒田氏)。

ソフトウエア技術者のスキルを一段と活用できる環境を提供するSDAccel開発環境。コンピュータ・システムの高速化に対するニーズが高まる中、大きな注目を集めるに違いない。

関連リンク: SDx開発環境
        SDAccel 開発環境

お問い合わせ