メモリ帯域幅とコンピューティング能力、どちらがディープラーニング実行パフォーマンスの鍵となるのでしょうか?

メモリ帯域幅とコンピューティング能力、どちらがディープラーニング実行パフォーマンスの鍵となるのでしょうか?

モデルのハードウェア要件に関して、まず頭に浮かぶのは計算量、つまりディープラーニング モデルがフィードフォワードを完了するために必要な回数です。ただし、計算量に加えて、モデルのメモリ帯域幅の要求も、実際の計算に必要な時間に影響を与える重要なパラメータです。以下で説明するように、メモリ帯域幅が制限されている場合、計算量を単純に減らしても計算時間は比例して短縮されません。

メモリ帯域幅がハードウェア システムのパフォーマンスに与える影響は、上の図に示されています。メモリをボトル、コンピューティング ユニットをカップに例えると、データはボトル内のカラフルな粒子であり、メモリ インターフェイスはボトルの口です。ボトルの口からのみ、データがカップに入り、消費 (処理) されます。メモリ帯域幅はボトルネックの幅です。ボトルの口幅が狭いほど、データがカップ(処理装置)に入るまでに時間がかかります。 「料理が上手な人は米がなければ料理ができない」ということわざがあります。帯域幅が制限されている場合、たとえ処理ユニットが最速であっても、処理ユニットはほとんどの場合データを待っているだけなので、計算能力が無駄になります。

ディープラーニングネットワークとルーフラインモデル

エンジニアにとって、定性的な分析だけでは不十分です。アルゴリズムのメモリ帯域幅の需要とそれがコンピューティング パフォーマンスに与える影響を定量的に分析できる必要もあります。

アルゴリズムのメモリ帯域幅要件は通常、「演算強度 (または算術強度)」という量を使用して表現され、単位は OPs/バイトです。この量は、アルゴリズムに読み込まれるデータの単位ごとに平均して何回の計算操作をサポートできるかを意味します。計算の強度が高ければ高いほど、データ単位でサポートできる操作が多くなり、アルゴリズムのメモリ帯域幅の要件が低くなります。つまり、計算の強度が高いのは良いことです。

例を見てみましょう。ストライドが 1 の 3x3 畳み込み演算の場合、入力データ プレーンのサイズは 64x64 であると想定されます。簡単にするために、入力機能と出力機能の両方が 1 であると仮定します。このとき、合計 62x62 回の畳み込み演算が必要で、各畳み込みには 3x3=9 回の乗算と加算演算が必要なので、計算総数は 34596 回となり、データ量は (データと畳み込みカーネルの両方が単精度浮動小数点数 2 バイトを使用すると仮定)、64x64x2 (入力データ) + 3x3x2 (畳み込みカーネル データ) = 8210 バイトとなり、計算量は 34596/8210=4.21 となります。 1x1畳み込みに切り替えると、計算の総数は64x64=4096になり、必要なデータ量は64x64x2 + 1x1x2=8194になります。明らかに、1x1 畳み込みに切り替えると計算量は 9 倍近く削減できますが、演算強度も 0.5 に低下します。つまり、メモリ帯域幅の要求も 9 倍近く増加します。したがって、メモリ帯域幅が 1x1 畳み込み計算のニーズを満たせない場合は、1x1 畳み込み計算に切り替えると計算量を 9 倍近く削減できますが、計算速度を 9 倍に上げることはできません。

ここで、ディープラーニング コンピューティング デバイスには 2 つのボトルネックがあることがわかります。1 つはプロセッサのコンピューティング能力であり、もう 1 つはコンピューティング帯域幅です。どれがコンピューティング パフォーマンスを制限しているかを分析するにはどうすればよいでしょうか? Roofline モデルを使用できます。

上の図は、典型的なルーフライン曲線モデルを示しています。座標軸は、コンピューティング パフォーマンス (垂直軸) とアルゴリズムのコンピューティング強度 (水平軸) を表しています。ルーフライン曲線は、左側の上昇領域と右側の飽和領域の 2 つの部分に分かれています。アルゴリズムの計算強度が低い場合、曲線は上向きのゾーンにあります。つまり、計算パフォーマンスは実際にはメモリ帯域幅によって制限され、多くの計算処理ユニットがアイドル状態になります。アルゴリズムの計算強度が増加すると、つまり、アルゴリズムが同じ量のデータでより多くの計算を完了できるようになると、アイドル状態の計算ユニットがますます少なくなり、計算パフォーマンスが向上します。その後、計算の強度が増すにつれて、アイドル状態の計算ユニットの数が減少し、最終的にすべての計算ユニットが使用されるようになります。ルーフライン曲線は飽和ゾーンに入ります。このとき、計算の強度が増しても計算ユニットが利用できなくなるため、計算性能はそれ以上向上しません。言い換えると、計算性能は計算能力(メモリ帯域幅ではない)によって決まる「ルーフ」に遭遇します。前述の 3x3 畳み込みと 1x1 畳み込みの例を取り上げると、3x3 畳み込みはルーフライン曲線の右側の飽和領域にある可能性がありますが、1x1 畳み込みは計算強度の低下によりルーフラインの左側の上昇領域に達する可能性があります。このように、1x1 畳み込みの計算パフォーマンスは低下し、ピークパフォーマンスに到達できなくなります。 1x1 畳み込みの計算量は 9 倍近く削減されますが、計算性能の低下により、実際の計算時間は 3x3 畳み込みの 9 分の 1 にはなりません。

明らかに、コンピューティング システムのメモリ帯域幅が非常に広い場合、アルゴリズムは、非常に計算集約的になることなく、コンピューティング能力の上限によって決定される「天井」に簡単に到達する可能性があります。下の図では、計算能力は変化せず、メモリ帯域幅が増加するにつれて、計算能力の上限に到達するために必要な計算強度は低下します。

ルーフライン モデルは、アルゴリズムとハードウェアの共同設計に非常に役立ちます。これにより、アルゴリズムとハードウェアの最適化の方向を決定できます。メモリ帯域幅を増やすか、メモリ帯域幅の要件を減らすか、またはコンピューティング能力を向上させるか、コンピューティング能力を減らすかなどです。アルゴリズムがルーフライン曲線の上昇領域にある場合は、メモリ帯域幅を増やすか、メモリ帯域幅要件を減らす必要があります。この場合、計算能力を増やしたり、計算量を減らしたりしても役に立ちません。逆に。

実際の例を見て、さまざまな機械学習アルゴリズムがルーフライン モデルでどのように機能するかを比較してみましょう。次の図は、Google の TPU 論文「Tensor Processing Unit のデータセンター内パフォーマンス分析」から引用したものです。図からわかるように、LSTMアルゴリズムは計算強度が最も高いため、ルーフラインモデルの上昇領域の真ん中に留まっています。つまり、TPUがLSTMアルゴリズムを実行すると、メモリ帯域幅の制限により、パフォーマンスは約3TOPSにしかならず、ピークパフォーマンス(90TOPS)の30分の1にすぎません。古典的な全接続ニューラルネットワーク(多層パーセプトロン、MLP)の計算強度は LSTM よりわずかに優れていますが、ルーフライン曲線の上昇領域にもとづいており、実際の実行パフォーマンスは 10TOPS 程度です。畳み込みニューラル ネットワーク モデル、特に CNN0 は、畳み込みカーネルを畳み込みニューラル ネットワークで再利用できるため、計算強度が非常に高く、TPU ルーフライン曲線のルーフ (86 TOPS) に非常に近づくことができます。 CNN1 モデルも計算強度は高いものの、さまざまな理由によりトップに到達できません (論文では、CNN1 モデルの特徴深度が浅く、TPU の計算ユニットを十分に活用できないと述べられています)。この例は、ハードウェア アルゴリズムの共同設計におけるもう 1 つの重要なポイントを示しています。メモリ帯域幅に加えて、アルゴリズムが屋根に到達するのを妨げる可能性のある「その他の理由」があり、これらの「その他の要因」を最小限に抑えるように努める必要があります。

<<:  Alipay のディープラーニング エンジン xNN を公開

>>:  ディープラーニングにおける多体問題の解決方法

ブログ    
ブログ    

推薦する

人工知能企業が利益を上げるのは難しいと言われていますが、具体的に何が難しいのでしょうか?

[[272155]] 2016年にAlphaGoが「人間対機械」の競争に勝利して以来、人工知能への...

人工知能は人間に取って代わるでしょうか?

この記事のタイトルは少し大まかです。私の意見では、実際には 2 つの意味が含まれています。1 つ目は...

3D AI が新しい遊び方を生み出します。何時間もかかる代わりに、1 枚の写真からわずか 45 秒で 3D モデルを生成できます。

3D AI生成は近年急速に発展しており、最新の作品の多くは文章・画像から高品質な3Dモデルを生成で...

スマートシティの建設が加速、ドローンが4つの面で貢献

[[415675]]都市化が継続的に加速し、都市人口が継続的に増加したことで、人々は質の高い都市生活...

テキストの説明に基づいてビデオから画像を切り取る、Transformer:このクロスモーダルタスクは私が最も得意とすることです

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Uber Ludwig は、ローコード機械学習用のオープンソース フレームワークです。

[[330500]] 【51CTO.com クイック翻訳】ディープラーニング モデルのトレーニング...

AIキャンパス採用プログラマーの最高給与が明らかに!テンセントは年俸80万元でトップで、北京戸口を提供している。

[[213294]]写真はインターネットからアルゴリズム関連人材の市場では、需要と供給の不均衡が深...

...

英国最高裁:特許の「発明者」は人工知能ではなく自然人でなければならない

ロイター通信は12月21日、現地時間20日に発表された英国最高裁判所の判決で、米国のコンピューター科...

360、認知汎用大型モデル「360 Brain 4.0」をリリース、360ファミリーバケットに完全統合

「デジタルヒューマン『周紅一』を我が社のスポークスマンにしよう。彼が正しいことを言ったら、それは私の...

顔認識技術を乱用しないでください

[[415783]]最高人民法院は最近、「顔認識技術を用いた個人情報処理に関する民事訴訟における法律...

アルゴリズム モデルをエンドツーエンドのインテリジェント モデルに変換するにはどうすればよいでしょうか?

エッジ インテリジェント テクノロジーのエンジニアリング プラクティスを紹介する前に、避けることので...

...

...

ユニサウンドがマルチモーダルAIチップ戦略を発表、同時に開発中の3つのチップを公開

昨年5月に業界初となるモノのインターネット(IoT)向けAIチップ「Swift」とそのシステムソリュ...