1-01 ディープラーニングをFPGAに実装する理由

 ディープ・ラーニングを解説する書籍などは数多ありますが、それをハードウエア化するための情報は少ないような気がします。本企画ではこの書籍にある画像認識(推論)のソフトウエアを徐々にハードウエア化していきたいと思います。


●なぜハードウエア化するのか

 近年ディープラーニングが注目を集めており、そろそろ身の回りの電気製品にも導入されようかという勢いです。
 上述の書籍にあるプログラムは「
Python」という言語で書かれており、パソコンでディープラーニングを体感することができます。しかし、パソコンを電気製品に組み込むわけにはいきません(図1-01)。



●CPUにディープラーニングは重過ぎる・・・そこでFPGA

 一般の電気製品(以下「組み込み機器」と呼ぶ)にはたいてい
CPU(マイコン)が入っており、それが演算や制御を行います。
 CPUは安価で小型ですが、「
逐次処理」であり一つ一つの計算を順番に行います(図1-02(a))。したがってその高速化には限界があります。



 「
FPGA」はField Programmable Gate Arrayの略で、「現場でプログラムできるロジックの塊」です。「並列処理」が可能で、同図(b)のように複数の計算を同時に行えます。本企画ではこのFPGAでのディープラーニングのハードウエア化を目指します。


●FPGAにはAND/ORゲートや乗算器が敷き詰められている

 FPGAというデバイスにはあらかじめANDゲート, ORゲートやフリップ・フロップといった論理素子(ゲート)が多数敷き詰められており、それらを適宜配線します(図1-03)。



 またFPGAでは乗算器、加算器、メモリなども自由に配線して使用することができます(図1-04)。ディープラーニングでは
大量の積和演算が必要ですが、FPGAならそれらを同時に(並列に)行うことが可能になります。



●VHDLでハードウエアを記述する

 FPGAの開発にはHDL(Hardware Description Language)という言語を使用します。HDLには主にVHDLとVerilogがありますが、本企画では前者を使用します。Pythonで書かれたプログラムを
VHDLに移植してFPGAに実装するまでのプロセスや、性能を向上させるための勘所を伝えたいと思います。

目次へ戻る