AI に「大きな力と小さな心」を与える - ユニバーサル CNN アクセラレーション設計

AI に「大きな力と小さな心」を与える - ユニバーサル CNN アクセラレーション設計

[[207759]]

導入

FPGA ベースの汎用 CNN アクセラレーション設計により、FPGA 開発サイクルが大幅に短縮され、ビジネス ディープラーニング アルゴリズムの迅速な反復がサポートされます。GPU に匹敵するコンピューティング パフォーマンスを提供しながら、GPU と比較して桁違いのレイテンシの利点があり、ビジネス向けの最も強力なリアルタイム AI サービス機能を構築します。

いつ?ディープラーニングにおけるヘテロジニアスコンピューティングの現状

インターネットユーザーの急速な増加とデータ量の劇的な拡大に伴い、データセンターにおけるコンピューティングの需要も急速に高まっています。同時に、人工知能、高性能データ分析、金融分析などのコンピューティング集約型の分野の台頭により、従来の CPU プロセッサの能力をはるかに超えるコンピューティング能力に対する需要が生まれました。

ヘテロジニアスコンピューティングは、現段階ではこのコンピューティングギャップを解決するための重要な技術であると考えられています。現在、「CPU + GPU」と「CPU + FPGA」は、業界で最も人気のあるヘテロジニアスコンピューティングプラットフォームです。従来の CPU 並列コンピューティングよりも効率が高く、レイテンシが低いというコンピューティング パフォーマンス上の利点があります。このような巨大な市場に直面して、テクノロジー業界の多くの企業が多額の資金と人材を投入しており、異種プログラミングの開発基準は徐々に成熟しており、主流のクラウドサービスプロバイダーは積極的に計画を立てています。

なぜ?汎用CNN FPGAアクセラレーション

業界では、Microsoft などの大企業が AI 推論の高速化のために大量の FPGA を導入しているのを目にしてきました。他のデバイスと比較した FPGA の利点は何でしょうか?

柔軟性: 急速に進化するMLアルゴリズムには、プログラミングが自然に適合します。

  • DNN、CNN、LSTM、MLP、強化学習、決定木など。
  • 任意精度のダイナミックサポート
  • モデル圧縮、スパースネットワーク、より高速で優れたネットワーク

パフォーマンス: リアルタイム AI サービス機能の構築

  • GPU/CPUよりも桁違いに優れた低レイテンシ予測機能
  • GPU/CPUと比較してワット当たりのパフォーマンスが桁違いに向上

規模

  • ボード間の高速相互接続IO
  • Intel CPU-FPGA アーキテクチャ

同時に、FPGA の欠点も非常に明白です。FPGA は開発に HDL ハードウェア記述言語を使用するため、開発サイクルが長く、参入障壁も高いです。 Alexnet や Googlenet などの個別の古典的なモデルを例にとると、モデルのカスタマイズされた加速開発には数か月かかることがよくあります。ビジネス側と FPGA アクセラレーション チームは、アルゴリズムの反復と FPGA ハードウェア アクセラレーションへの適応の両方を考慮する必要があり、これは非常に困難です。

FPGAはCPU/GPUと比べても十分競争力のある低レイテンシかつ高性能なサービスを提供する必要があり、一方でFPGAの開発サイクルはディープラーニングアルゴリズムの反復サイクルに追いつく必要があります。この2つの点を踏まえて、汎用的なCNNアクセラレータを設計・開発しました。主流のモデル演算子の一般的な設計を考慮して、コンパイラはモデル加速を駆動する命令を生成し、短時間でモデルの切り替えをサポートできます。同時に、新興のディープラーニングアルゴリズムについては、この一般的な基本バージョン上で関連演算子の迅速な開発と反復が行われ、モデル加速の開発時間が数か月から1〜2週間以内に短縮されます。

方法? 一般的な CNN FPGA アーキテクチャ

FPGA ベースの一般的な CNN アクセラレータの全体的なフレームワークは次のとおりです。Caffe/Tensorflow/Mxnet などのフレームワークでトレーニングされた CNN モデルは、コンパイラの一連の最適化を通じてモデルに対応する命令を生成します。同時に、画像データとモデルの重みデータは最適化ルールに従って前処理および圧縮され、PCIe を介して FPGA アクセラレータに送信されます。 FPGA アクセラレータは、命令バッファ内の命令セットに従って完全に駆動されます。アクセラレータは、命令バッファ全体の命令を実行することで、画像深度モデルの計算加速を完了します。各機能モジュールは比較的独立しており、個々のモジュールの計算要求に対してのみ責任を負います。アクセラレータはディープラーニングモデルから分離されており、各レイヤーのデータ依存関係や前後の実行関係は命令セットで制御されます。

簡単に言えば、コンパイラの主な仕事は、モデル構造を分析および最適化し、FPGA で効率的に実行できる命令セットを生成することです。コンパイラ最適化の基本理念は、MAC DSP の計算効率を高め、メモリ アクセス要件を減らすことです。

次に、Googlenet V1 モデルを例に、アクセラレータの設計最適化のアイデアを簡単に分析します。 Inception v1 ネットワークは、1x1、3x3、5x5 の conv と 3x3 のプーリングをスタックします。これにより、一方ではネットワークの幅が広がり、他方ではネットワークの拡張性が向上します。下の図は、モデルにおける Inception の基本構造を示しています。

データ依存性分析

このセクションでは、主にマイニング モデルにおけるパイプライン化および並列化された計算を分析します。パイプライン設計により、アクセラレータ内のコンピューティング ユニットの利用率が向上し、並列コンピューティングでは、同時に可能な限り多くのコンピューティング ユニットを利用できます。

パイプラインに関しては、FPGAチップ上のDDRからSRAMへのデータロード操作とPE計算のパイプラインを解析部分に含めています。この最適化により、メモリアクセス時間が重複し、DSPは列全体の計算制御プロセスを計算し、DSP利用率の向上を保証します。

並列処理に関しては、PE コンピューティング アレイと、アクティベーション、プーリング、正規化などの「後処理」モジュールとの並列関係を分析することに重点を置く必要があります。データの依存関係を判別し、競合を防ぐ方法が、ここでの設計の鍵となります。 Inception では、ネットワーク構造から、ブランチ a/b/c の 1x1 畳み込み計算とブランチ d のプーリングが並列に計算でき、両者の間にデータ依存性がないことがわかります。ここでの最適化により、3x3 最大プーリング層の計算を完全にオーバーラップできます。

モデルの最適化

設計では、モデル構造の最適化を見つけることと、動的な精度調整のための固定小数点最適化をサポートすることという 2 つの側面が主に考慮されます。

FPGA は大量の並列計算をサポートするデバイスです。モデル構造から高次元の並列性を見つけることは、計算効率の向上とメモリアクセスの削減に非常に有意義です。 Inception V1 では、branch a\ branch b\ branch c の最初の 1x1 畳み込み層にまったく同じ入力データがあり、畳み込み層のストライドとパッドが一貫していることがわかります。出力特徴マップを次元内で整列させて重ね合わせることはできますか? 重ね合わせた後、入力データのメモリ要件は元の 1/3 に削減されます。

一方、FPGA ハードウェア アクセラレーションの特性を十分に発揮させるには、モデルの推論プロセスでモデルに対する固定小数点演算が必要になります。 FPGAでは、INT8の性能はINT16の2倍になります。しかし、社内およびTencent Cloudの顧客が、精度の低下を抑えるためにINT8モデルを再トレーニングする必要なく、トレーニング済みの浮動小数点モデルを気づかれることなく展開できるようにするために、動的な精度調整をサポートする固定小数点INT16ソリューションを採用しました。この方法を使用すると、ユーザーのトレーニング済みモデルを、精度をほとんど損なうことなくコンパイラーを介して直接デプロイできます。

メモリアーキテクチャ設計

帯域幅の問題は常に、コンピュータ アーキテクチャのパフォーマンスを制限するボトルネックの 1 つであり、メモリ アクセスはアクセラレーション デバイスの電力消費効率に直接影響します。

モデル計算中の DDR メモリ アクセスを最小限に抑えるために、次のメモリ アーキテクチャを設計しました。

  • パイプラインと並列機能を最大限に活用するための入力バッファと出力バッファのピンポン設計
  • 入力バッファと出力バッファ自体の間の内部コピー操作をサポート
  • 入力バッファと出力バッファ間のクロスコピー操作

このアーキテクチャにより、現在の主流モデルのほとんどにおいて、アクセラレータはすべての中間データを FPGA チップ上に保持できます。モデルの重みをロードする以外に、追加のメモリ操作は必要ありません。中間特徴マップを完全にオンチップで保存できないモデルの場合、チャネル次元でのスライスシャーディングの概念と、特徴マップ次元でのパートシャーディングの概念を設計に導入しました。コンパイラは、畳み込みまたはプーリング\Norm 操作を合理的に分割し、DDR メモリ アクセス操作と FPGA 高速計算をパイプライン化し、DSP コンピューティング効率を優先しながら DDR メモリ アクセス要件を最小限に抑えることができます。

コンピューティングユニットの設計

FPGA ベースの汎用 CNN アクセラレータの核となるのは、そのコンピューティング ユニットです。このアクセラレータの現在のバージョンは、Xilinx Ku115 チップに基づいて設計されています。PE コンピューティング ユニットは、500MHz で動作する 4096 個の MAC DSP コアで構成され、理論上のピーク コンピューティング能力は 4TFLOP です。基本的な組織体制を下図に示します。

KU115 チップは 2 つのスタックされた DIE ペアで構成され、アクセラレータは 2 セットの処理ユニット PE を並列に配置します。各 PE は、32x16=512 個の MAC コンピューティング DSP コアで構成される 4 つの XBAR で構成されています。設計の鍵となるのは、設計におけるデータ再利用を改善して帯域幅を削減し、各レイヤーのモデル重みの再利用と特徴マップの再利用を実現し、コンピューティング効率を向上させることです。

アプリケーションシナリオとパフォーマンスの比較

現在主流のディープラーニングでは、ディープラーニングのトレーニングプロセスにGPUを使用しています。オンライン推論を導入する場合は、リアルタイム性、低コスト、低消費電力を総合的に考慮してアクセラレーションプラットフォームを選択する必要があります。ディープラーニングの応用シナリオの分類によると、広告推奨、音声認識、画像/動画コンテンツのリアルタイム監視などはリアルタイムAIサービスであり、スマート交通、スマートスピーカー、無人運転などの端末のリアルタイム低消費電力シナリオも同様です。GPUと比較して、FPGAはビジネスに強力なリアルタイム性と高性能のサポートを提供できます。

ユーザーにとって、プラットフォームのパフォーマンス、開発サイクル、使いやすさはどのようなものですか?

  • パフォーマンスの加速

実際の googlenet v1 モデルを例にとると、CPU テスト環境は、6 コア CPU (E5-2620v3) が 2 個、メモリが 64G です。

マシン全体のCPUをフル活用することで、KU115ベースのアクセラレータ単体の性能がCPUに比べて16倍向上し、画像1枚の検出遅延が250msから4msに短縮され、TCOコストが90%削減されます。

同時に、FPGA 予測パフォーマンスは Nvidia の GPU P4 よりもわずかに優れていますが、レイテンシは桁違いに最適化されています。

  • 開発サイクル

一般的な CNN FPGA アクセラレーション アーキテクチャは、Googlenet/VGG/Resnet/ShuffleNet/MobileNet などの従来のモデルや新しいモデル バリアントを含む、ビジネスの迅速な反復とディープラーニング モデルの継続的な進化をサポートできます。

既存のアクセラレーション アーキテクチャは、標準レイヤーに基づいて開発された従来のモデルとアルゴリズムのバリアントをすでにサポートしています。モデルの対応する命令セットは、コンパイラーを通じて 1 日以内に実装し、オンラインで展開できます。

非対称畳み込み演算子や非対称プーリング演算など、独自開発の特殊モデルについては、実際のモデル構造に基づいて、このプラットフォーム上で関連演算子を反復的に開発する必要があります。サポートのために開発サイクルを 1 ~ 2 週間に短縮できます。

  • 使いやすさ

FPGA CNN アクセラレータは、基盤となるアクセラレーション プロセスをカプセル化し、アクセラレーション プラットフォームのビジネス側に使いやすい SDK を提供します。ビジネス側では、ビジネス ロジック自体をほとんど変更せずに、単純な API 関数を呼び出すだけで高速化操作を完了できます。

オンライン モデルを変更する必要がある場合は、モデル初期化関数を呼び出して、対応するモデル命令セットで FPGA を初期化するだけで、数秒以内にアクセラレーション サービスを切り替えることができます。

結論

FPGA ベースの一般的な CNN アクセラレーション設計により、FPGA 開発サイクルが大幅に短縮され、ビジネス ディープラーニング アルゴリズムの迅速な反復がサポートされます。GPU に匹敵するコンピューティング パフォーマンスを提供しながら、GPU と比較して桁違いのレイテンシの利点があります。一般的な RNN/DNN プラットフォームは現在集中的に開発されており、FPGA アクセラレータはビジネス向けの最も強力なリアルタイム AI サービス機能を構築します。

クラウド分野では、2017 年初頭に Tencent Cloud 上で中国初の FPGA パブリック クラウド サーバーを立ち上げました。今後は、パブリック クラウド上で基本的な AI アクセラレーション機能を段階的に立ち上げていく予定です。

AI ヘテロジニアス アクセラレーションの戦場は大きく、刺激的です。社内およびクラウド ビジネスに最適なソリューションを提供することが、Jiaping FPGA チームが取り組み続ける方向性です。

オリジナルリンク: https://www.qcloud.com/community/article/811840

著者: テンセントアーキテクト

[この記事は51CTOコラムニスト「テンセントクラウドテクノロジーコミュニティ」によるオリジナル記事です。転載の許可を得るには51CTOを通じて原作者に連絡してください]

この著者の他の記事を読むにはここをクリックしてください

<<:  1行のコマンドで顔認識を実装する方法を教えます

>>:  Microsoft、Spark 向けディープラーニング ライブラリ MMLSpark をオープンソース化

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

MIT の中国人博士共同執筆者: 確率プログラムモデリングを使用して世界モデルを解明!

言語は思考にどのように影響しますか?人間は言語からどのように意味を引き出すのでしょうか?これら 2 ...

2020 年のデータサイエンスのトレンド

企業が自社が所有するビッグデータを高速かつ効率的、コスト効率よく革新的な方法で活用することをますます...

...

業界大混乱! 2020年に人工知能がIT業界にもたらす4つの変化

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

人工知能時代の罠を回避し、実装を実現する方法

つい最近、カリフォルニア大学バークレー校で活躍している、インターネットで有名な無人食品配達車「Kiw...

...

...

畳み込みニューラルネットワークの「修理工」のための「マニュアル」

[[242145]]ビッグデータダイジェスト制作編集者: Luo Ran、Xue Qing、Ail...

IoTとAIがコロナウイルスの流行中に企業の事業再開をどのように可能にしているか

[[333668]]数か月に及ぶ極度の不確実性、経済の閉鎖、孤立の後、ようやくゆっくりと経済が機能し...

...

Redditのランキングアルゴリズムの仕組み

これは、「Hacker News のランキング アルゴリズムの仕組み」に続く、ランキング アルゴリズ...

完全にプログラム可能な初の光量子コンピュータが発表されました。最強のスーパーコンピュータ「富岳」の7.8兆倍の性能です。

スーパーコンピュータは、従来のコンピュータでは解決できない問題を解決するためによく使用されます。しか...

超音波脳読み取りはマスクの脳コンピューターインターフェースよりも正確で侵襲性が低い

脳コンピューターインターフェース分野で新たなニュースがあります。 IEEE Spectrum による...

SQL Serverは最短経路検索アルゴリズムを実装しています

これは去年の質問です。今日メールを整理していたら偶然見つけました。とても興味深いと思ったので書き留め...