来日した米Intel社のProgrammable Solutions Group(旧・米Altera社)のBernhard Friebe氏(Senior Director, FPGA Software Solutions)は、同社のFPGA設計環境の最新版の特徴について、日本の報道機関向けに語った。同氏が紹介した設計環境は2つ。システム/ソフトウエア設計者がCPUのアクセラレーターとしてFPGAを設計するための「Intel FPGA SDK for OpenCL 17.1」と、ハードウエア設計者がC++でFPGAを設計するための「Intel HLS Compiler」である。

Bernhard Friebe氏。日経テクノロジーオンラインが撮影。
Bernhard Friebe氏。日経テクノロジーオンラインが撮影。
[画像のクリックで拡大表示]

 まず、Intel FPGA SDK for OpenCL 17.1。以前のバージョン(Intel FPGA SDK for OpenCL 17.0)と比べての特徴を同氏は4つ挙げた。第1は、OpenCLでは「カーネル」と呼ばれるFPGAに実装する処理の設計がGUIで行えるようになったことである。17.0まではテキストベースでの設計しかサポートしていなかった、IntelがCPUやGPU向けのカーネル(アプリケーションソフトウエア)を設計するために用意してきた「Intel SDK for OpenCL」のGUIをFPGA向けカーネル設計にも適用できるようにした。

OpenCLを使ってFPGAをCPUのアクセラレーターとして設計するフロー。Intelのスライド。
OpenCLを使ってFPGAをCPUのアクセラレーターとして設計するフロー。Intelのスライド。
[画像のクリックで拡大表示]

 「GUIベースのIntel SDK for OpenCLがCPUやGPU に加えて、FPGAもサポートするようになったとも言える。これはAlteraがIntel傘下になったことの大きなメリットの1つである」(Friebe氏)とした(関連記事1)。なお、同じGUI上で同じOpen CL(のC言語)を使ってCPUやGPU、FPGAが設計できるとは言え、ターゲット(CPU/GPU/FPGA)によってコードはかき分ける必要がある。「あるターゲット向けのコードは別のターゲットでも稼働することは可能である。しかし、そのターゲットの実力を引き出したいのならば、ターゲットに向いたOpenCL記述が必要になる。ターゲットのハードウエアの詳細を知らなくても良いが、ターゲットに向いたコーディングの知識は重要である」(同氏)

GUIベースでFPGAに実装するカーネルの設計が可能に。Intelのスライド。
GUIベースでFPGAに実装するカーネルの設計が可能に。Intelのスライド。
[画像のクリックで拡大表示]