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

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

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

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

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

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

アルゴリズムのメモリ帯域幅要件は通常、「演算強度 (または算術強度)」という量を使用して表現され、単位は 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 を公開

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

ブログ    
ブログ    
ブログ    

推薦する

...

AI時代には、ナレッジグラフとナレッジマネジメントの二重の価値を活用する必要がある

[[402551]]ナレッジマネジメントは企業と個人の両方にとって非常に重要です。従来の知識管理は、...

...

AIは敵ではなく友達でしょうか?自殺防止技術が25人の命を救うことに成功

世界保健機関によれば、毎年80万人が自殺で亡くなっている。 この数字は年々高いままですが、人工知能と...

ディープラーニングを使って心臓病を診断する方法

[[204301]]概要: この論文では、心臓磁気共鳴画像 (MRI) データセットからの画像内の右...

Facebookは機械学習を使ってコンパイラを最適化

Facebook は最近、コンパイラ最適化タスクを実行するための高性能で使いやすい強化学習 (RL)...

eMule プロトコル スライス選択アルゴリズムの分析

ダウンロードはデータの送信であることはご存じのとおりです。この点に関しては、すでに合意内容について多...

機械学習は数字を数え、マウスをクリックしてモデルをトレーニングし、残りはコンピューターに任せます

[[432947]] JAVA ベースで開発された Weka は、機械学習やデータマイニングに適した...

AIが自動化に適した日常的なITタスク3つ

AIで自動化できる3つのITタスク幸いなことに、人工知能が役に立ちます。ここでは、AI が手動で実行...

最新のClaude2.1とLlama 2をご利用いただけます。アマゾンが生成型AI開発の参入障壁を下げる

良いニュースです。生成 AI アプリケーションの敷居が大幅に下がりました。先ほど、Amazon We...

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

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

...

スマートテクノロジーが現代のビジネス運営を改善する7つの方法

1. 生産性の向上多くの組織がリモートワークに移行するにつれて、効率性を維持することが重要になります...

【必見】機械学習分野の世界トップ16企業

[[227073]] [51CTO.com クイック翻訳] 機械学習は多くの企業が興味を持っている新...

2019年の技術予測: クラウド、ビッグデータ、AI、IoT、ブロックチェーン

[[258103]]テンセントテクノロジーニュース:フォーブスの寄稿者であるスティーブ・ウィルクス氏...