深層学習(ディープラーニング)を活用したAI(人工知能)アプリケーションは、人間の創造性を機械が強化する新時代を実現する鍵を握っています。
しかし、そのためにはAIに十分な学習を行わせる必要があり、ニューラルネットワークごとに数TBものデータと、数十億におよぶ演算が数日間にわたる大規模バッチ処理として行われる必要があります。また、学習が完了したネットワークを、実際に導入しようとする段階では、学習とは異なる制約に直面することにもなります。
例えばデータセンターでは、AI処理に対応できるようサーバをアップグレードしますが、サーバを設置できるスペースは限られており、消費電力も無尽蔵というわけにはいきません。その一方で、ユーザーは即時応答を期待しており、低レイテンシを実現することが求められています。
また、自動車の運転支援システムや自動運転車など、安全と人命が危険にさらされるユースケースでは、さらに低いレイテンシと、安定したリアルタイムでの応答が極めて重要になります。同時に、システムのサイズと消費電力に対する制約はデータセンターよりも厳しく、さらに重量や熱の問題も考慮することが求められるようになります。Tesla社は、2019年4月に実施した同社のイベント「Autonomy Investor Day」において、自動運転向けAIチップを自社で開発することを発表しましたが、そのチップの基本理念はGPUよりも低消費電力(100W未満)かつ低レイテンシ (バッチサイズ1)であることでした。
より難しい課題をより迅速に解決するためにAIが採用されるケースはこれからも増え続けることが予想され、そうした課題の複雑化にともなって、展開されるニューラルネットワークに求められる性能要件は高まる一方でしょう。
高効率で長期運用が可能な推論
クラウドで利用するAIでも、車載などで利用される組み込みAIでも、最新のアプリケーションを動かす推論エンジンは低レイテンシ、低消費電力、そして小型であることが求められています。
現実世界で推論をうまく実行できる学習済みニューラルネットワークを準備するには、適切なプルーニング(枝刈り)や最適化が必要であるだけでなく、消費電力、サイズ、サーマルフットプリントなどの限りある制約条件下で要求されるパフォーマンス(通常は応答時間またはレイテンシ)を確実に達成できるよう、処理プラットフォームを慎重に検討することも求められます。AIの商用展開が拡大し、エンドユーザーの需要が高まるにつれて、AIチップベンダーはその要求に対応するため、より高度なデバイスアーキテクチャの投入を進めています。
自動運転などのユースケースをターゲットとするAIチップの中には、CPUとアプリケーションプロセッサコアに算術演算用の多数のGPUを組み合わせたハイブリッドアーキテクチャを搭載しているものもあります。
確かにこれであればオンチップで利用できるリソースは増えますが、固定されたアーキテクチャである以上、開発者は柔軟性に欠けるメモリインタフェース幅やデータ解像度にしたがって開発しなければなりません。その最小幅は一般的に8ビット整数の演算です。深層学習のアルゴリズムはかなり低い解像度(2ビット、ときには1ビット)でも十分に動作することが分かってきたにもかかわらずです。
このような柔軟性に欠けたCPUまたはGPU演算アーキテクチャでは今は良くても将来におけるニューラルネットワークの性能要件を満たすことが難しいことから、解像度とコア数を適応させて演算性能と消費電力を最適化できる、柔軟なアーキテクチャへの需要が高まっています。
学習済みニューラルネットワークのプルーニングと最適化や、ターゲットプロセッサの効率的な実装の実現だけでも大きな課題ですが、さらに困難なことに、より効果的な新しいニューラルネットワークの開発速度は現状のシリコンの進化速度を上回っています。プロジェクト開始時点で最新だった技術に基づいていても、それを展開する頃には確実に時代遅れになっています。そのため、展開の時点で最先端のニューラルネットワークテクノロジの多くが、ほぼ間違いなく、既存のプロセッサアーキテクチャ内でうまく動作するといった保証はないこととなります。
柔軟なAIアクセラレーションの実現方法
このような性能、消費電力、将来の適応性に関する課題を解決するため、さまざまなAI開発チームがFPGAの柔軟性のメリットを活用したAIアクセラレータを構築するようになってきました。
FPGAは、最小1ビットの解像度で数百、数千に及ぶ高度に並列化された演算ユニットと、ボトルネックを解消するようにカスタマイズされたメモリインタフェースのコンフィギュレーションが可能だからです。さらに、FPGAは簡単に再プログラムできるため、シリコンの世代交代を待つことなく、ニューラルネットワークの構造をアップデートすることで、新たなネットワークの性能を十分に発揮することを可能とします。
2017年にAI専門企業であるDeePhi Tech社を買収して以来、XilinxはFPGAにニューラルネットワークを実装するための高度なプルーニングおよび最適化ツールとIPの開発にフォーカスしてきました。プルーニングは、影響が少なくゼロに近い学習の重みを削除し、可能な場合にはネットワークを再編成し、演算処理回数と各演算のために消費されるエネルギーを最小限にし、ニューラルネットワークを簡略化することですが、DeePhi Tech社のニューラルネットワーク・プルーニングテクノロジは、FPGA上での実行に最適化されており、許容可能な画像認識精度を維持しながら、最大90%の重みを取り除くことを可能としました。その結果、性能としては速度が10倍に向上する一方で、消費されるエネルギーを抑えることができるようになりました。