米国シノプシス
Product Management & Markets Group
Principal Gordon Cooper
Director Markus Willems
畳込みニューラル・ネットワーク(CNN)からトランスフォーマー・モデル、そして生成AI(GenAI)モデルへとテクノロジが進化する中、人工知能(AI)ニューラル・ネットワークやディープ・ラーニングなどの人工知能(AI)処理に特化して設計されたNPU(Neural Processing Unit)にも進化が求められています。特に大規模言語モデル(LLM)などの生成AIでは、必要とされるパラメータ数と帯域幅は際限なく増大しており、これに応じて組込みAIハードウェアの実装に使用されるデータ・タイプも変化しています。例えば、新しいOCP Microscaling(MX)データ・タイプのような低精度の浮動小数点データ・タイプへの移行もその1つです。
特徴抽出や物体検出などのビジョン処理タスクにおいて、CNNが従来のデジタル信号処理ソリューションを抜いて事実上の標準となったのは2012年のことです。当初、CNNアルゴリズムの学習と推論には32ビット浮動小数点(FP32)データ・タイプが使用されていました。しかし間もなく、CNN推論エンジンの消費電力とチップ面積を最適化する方法が発見されました。高いスループットが要求される用途では、精度の低下を最小限に抑えた8ビット整数(INT8)データ・タイプがCNNアルゴリズムの標準フォーマットとなったのです。これは特に、エッジ機器をターゲットにしたアプリケーションにとって大きな意味がありました。INT8を使用するには、学習後の量子化とキャリブレーションが必要ですが、当時、AIフレームワークとして圧倒的な存在であったTensorFlowはINT8を強力にサポートしていました。
その後、2017年にGoogleが発表した論文「All You Need is Attention」でトランスフォーマー・ニューラル・ネットワークが提唱されました。トランスフォーマーは、アテンション機構を採用していたため、画像分類に使用されるCNNよりもINT8量子化の影響を受けやすいという特徴がありました。そこで、トランスフォーマーではINT8に代わってFP16とBF16(Brain Float 16)が一般的なデータ・タイプとなりました。
トランスフォーマーの登場によって、現在の生成AIモデルの時代が到来しました。しかし生成AIモデルのパラメータ・サイズは、CNNや多くのVision Transformer(ViT)よりも数桁大きくなります。例えば、一般的なCNNアルゴリズムで必要なパラメータは2,500万程度ですが、ChatGPTでは1,750億パラメータが必要です。この結果、NPUの演算性能とメモリー帯域幅の大きな開きが問題となってきました。図1に示すように、AIニューラル・ネットワークのワークロードに向けたGPUの性能が飛躍的に向上しているのに対し、インターコネクト帯域幅の伸びはそれほど大きくありません。
通常、GPUはAIの学習およびサーバー・ワークロードに使用され、NPUは低消費電力と小面積が求められるAI推論用のAIプロセッサとして使用されます。このNPUで生成AIワークロードを処理しようとすると、演算性能とインターフェイス帯域幅の開きが大きな問題となります。エッジ機器に搭載されるNPUは、一般的にLPDDR5メモリー・インターフィスを使用しますが、LPDDRメモリー・インターフェイスは、主にサーバーで使用されるHBMインターフェイスよりも帯域幅が制限されます。
NPUを使用して帯域幅を削減する方法はいくつかあります。
2023年にOCP Microscaling Formats(MX)仕様が発表され、3つの浮動小数点フォーマット(MXFP8、NXFP6、MXFP4)と1つの整数フォーマット(MXINT8)が導入されました。MXFP8フォーマットは、OCPの8ビット浮動小数点(OFP8)がベースとなっています。図2に、これらのデータ・タイプを示します。
図2に示した4つのMX準拠データ・タイプは、いずれも32個の数値を1ブロックとし、ブロック内で8ビット指数部を共有することにより、メモリー・フットプリントを抑えながらハードウェアの性能と効率を向上させ、オーバーヘッドと運用コストの削減を実現しています。FP32またはFP16の重みと活性化値をオフライン・コンパイル時にこれらの浮動小数点MXフォーマットへ「直接キャスト」(圧縮/量子化)できることも、MXデータ・タイプの利点の1つです。
生成AIモデルの実装においてこのようなビット数の少ないデータ・タイプが必要とされているのは、NPUアーキテクチャ側の要求が変化していることに理由があります。ビット数の少ないデータ・フォーマットの方が生成AIモデルの演算とストレージのコストを抑えることができるため、NPUはこれらの新しいフォーマットをサポートすることが必須となっています。
図3に、AI機能を追加したシノプシスのSoC向けプロセッサIPソリューションを示します。NPX6 NPU IPは効率的でスケーラブルなAI推論エンジンを提供します。VPX DSP IPはVLIW/SIMDプロセッサ・ファミリに属する製品で、幅広い信号処理アプリケーションに対応しており、カスタム・ニューラル・ネットワーク・レイヤを処理できるほか、ニューラル・ネットワーク・モデルの前処理と後処理も実行できます。
先ごろ、シノプシスのNPX IPおよびVPX IPファミリに新しいAIデータ圧縮オプションが追加されました。これに浮動小数点演算ユニット(FPU)オプションを組み合わせると、すべてのARC NPX NPU IPプロセッサまたはVPX DSP IPプロセッサでINT4、BF16、OCP-FP8、およびOCP-MXのデータ圧縮をサポートできます。これらのAIデータ圧縮オプションは、OCP 8-bit Floating Point仕様(OFP8)(Rev. 1.0、2023年6月20日承認)、およびOCP Microscaling Formats(MX)仕様(バージョン1.0、2023年9月)に基づくOCP仕様に完全準拠しています。
AIデータ圧縮オプションは、DMAを使用してデータ・フォーマットを高速に変換します。システム・メモリーから内部メモリーへデータを移動する際に伸張を実行し、内部メモリーからシステム・メモリーへデータを移動する際に圧縮を実行します。例えばNPX6の場合、MXFP6フォーマットをFP16フォーマットに変換して内部で処理できます。NPX6 NPU IPで実行するLLMは演算ではなく帯域幅がボトルネックとなっているため、内部演算にFP16を使用しても全体的な性能が低下することはありません。図4に、NPX6 NPU IPおよびVPX DSP IPでこれらの新しいオプションを使用した場合にサポートされるデータ・タイプを示します。これらのデータ・タイプの多くは、DMAでサポートされます。この表には、各データ・タイプがどの内部データパスに割り当てられるかを示しています。
VPXとNPXは同じデータ・タイプをサポートしているため、新しいフォーマットを使用してパラメータや活性化値をプロセッサ間で容易に送信できます。これらのデータ・タイプをDMAに統合することで、必要な帯域幅とメモリー・フットプリントを削減できます。DMAで複数のデータ・タイプがサポートされるもう1つの利点は、プロセッサIPをコンバータへ直接接続できることです。例えば、10ビットA/DコンバータをNPXまたはVPXに接続するとハードウェアによって自動的に内部データ・タイプへ割り当てられるため、ソフトウェアでの変換が不要になります。
生成AIモデルは、かつてのCNNモデルと同じ軌跡をたどって進化していくものと考えられます。つまり、満足のゆくレベルの精度と効率が得られるまではモデルのパラメータ・サイズが巨大化し、その後、最適化へと舵を切った研究が進んでエッジ機器に適したモデルが登場するというという流れです。生成AIなど、AIを活用した機能に関心のあるSoC設計者の方は、新しいオプションの登場によって強化されたシノプシスARC NPX6 NPU IPおよびシノプシスARC VPX DSP IPをぜひご検討ください。