Hot Chips 28において、「Deephi Tech」という会社のSong Yao CEOが、同社のニューラルネット処理のアクセラレータシステムについて発表した。なお、Deephiという社名は、Deep LearningのDeeと、Deep Learningの基本となる「哲学(Philosophy)」から名付けられている。そして、同社の製品には、「Aristotle(アリストテレス)」と「Descartes(デカルト)」という哲学者の名前が付けられている。
Hot Chips 28でDeephiのニューラルネットアクセラレータシステムを発表するSong Yao CEO |
画像認識などに使われる「CNN(Convolutional Neural Network)」は2012年のAlexNetから2014年のGoogLeNet、2015年のResNetと大型化してきたが、2014年のVGGや2016年のSqueeze Netといったように簡素化もされて来ている。このため、CNN用のアクセラレータは小規模の畳み込みで低い並列性の計算向きのアーキテクチャが望ましいという。
画像認識などに使われるCNNは、最近では小型化の傾向にあり、小規模な畳み込みで、並列性が少ない計算に向いたアーキテクチャが望ましい (このレポートのすべての図は,Hot Chips 28でのYao氏の発表スライドのコピーである) |
一方、時系列データであるスピーチなどを認識する「RNN-LSTM(Recurrent Neural Network Long Short-Term Memory)」では、ネットワークが大型化し、層数も増える傾向にある。モデルが大きくなると、計算に必要なバンド幅が大きくなるので、RNN-LSTMを計算するアクセラレータはバンド幅の問題を克服する必要があるという。
推論用のシステムとしては、FPGAが適している。電力や性能も、それなりに要求を満足でき、カスタム設計のアーキテクチャにも対応できる。メモリバンド幅も高い。もちろん、性能的にはASICの方が良いが、開発期間が長く、NRE(Non Recurrent Engineering cost:開発費)も高く、大量に売れるという確証がないと使えない。
DeePhiのシステムは、CaffeやTensorFlowなどのフレームワークで記述されたニューラルネットのモデルを、DeePhiのコンパイラで、ネットワークの圧縮、重みの値の離散化を行う。そして、圧縮したモデルをFPGAベースのアクセラレータで実行するという流れとなっている。
FPGAを使う場合、RTLでロジックを作る場合は2~3カ月、OpenCLでも1カ月の開発期間が必要である。また、性能や、消費電力の要件を満足するのも大変である。
これに対して、DeePhiの開発フローでは、ニューラルネットのモデルをコンパイルして、RTLではなく、アクセラレータの命令を作り出す。コンパイルは1分で済む。そして、DeeePhiのアクセラレータはFPGAをハンドコードして作られているので、性能、電力効率ともに優れている。
コンパイラは、寄与度が小さいノードや接続を取り除いてネットワークを簡単にし、入力の重みを4bitに量子化してデータ量を減らす。
この圧縮処理で、AlexNetの場合は、240MBであった元のデータが6.9MBと35分の1に減少している。しかし、精度は、オリジナルが80.27%であったものが、圧縮後は80.30%と僅かながら改善している。他のネットでも、10分の1から49分の1という大きな圧縮ができ、精度にはほとんど影響がない。圧縮により、計算量が減り、メモリバンド幅も減るので、非常に有効である。