ホームページ >テクノロジー周辺機器 >AI >ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

WBOY
WBOY転載
2023-04-12 16:31:031206ブラウズ

誰もが知っているように、ディープ ラーニングとニューラル ネットワークのタスクを扱う場合は、CPU ではなく GPU を使用する方が良いです。ニューラル ネットワークに関しては、比較的ローエンドの GPU でもパフォーマンスが優れているためです。 CPU。

ディープ ラーニングは大量のコンピューティングを必要とする分野であり、GPU の選択がある程度、ディープ ラーニングのエクスペリエンスを根本的に決定します。

しかし、ここで問題が発生します。適切な GPU を選択する方法は、頭痛の種であり、頭を悩ませる問題でもあります。

トラブルに巻き込まれることを回避し、費用対効果の高い選択をするにはどうすればよいでしょうか?

著名な評価ブロガーである Tim Dettmers は、スタンフォード大学、UCL、CMU、NYU、UW から博士号取得のオファーを受けており、現在ワシントン大学で博士号取得を目指して勉強しています。ディープラーニングの分野でどのようなGPUが必要なのかを自身の経験と合わせて議論し、10,000ワードに及ぶ長い記事を書き上げ、最後にDL分野での推奨GPUを紹介しました。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?


#ティム・デットマースの研究方向は、表現学習とハードウェア最適化の深層学習であり、彼自身が作成したものです。ディープラーニングやコンピューターハードウェアの分野でもよく知られています。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

この記事で Tim Dettmers 氏が推奨する GPU はすべて N Factory のものです。彼は明らかに、AMD は名前を付ける価値がないと信じています。それは機械学習になります。

編集者は以下にオリジナルのリンクも掲載しました。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

元のリンク: https://timdettmers.com/2023/01/16/that-gpu-for-deep-learning /#GPU_Deep_Learning_Performance_per_Dollar

RTX 40 および 30 シリーズの長所と短所

NVIDIA Turing アーキテクチャ RTX 20 シリーズとの比較、新しい NVIDIA Ampere アーキテクチャ RTX 30シリーズには、スパース ネットワークのトレーニングや推論などの利点があります。新しいデータ型などの他の機能は、Turing アーキテクチャと同じパフォーマンスの向上を提供しながら、追加のプログラミング要件を必要としないため、使いやすい機能として捉える必要があります。

Ada RTX 40 シリーズには、上で紹介した Tensor メモリ アクセラレータ (TMA) や 8 ビット浮動小数点演算 (FP8) など、さらに進化した機能が搭載されています。 RTX 40 シリーズには、RTX 30 と比較して同様の電力と温度の問題があります。 RTX 40 の電源コネクタ ケーブルの溶けの問題は、電源ケーブルを正しく接続することで簡単に回避できます。

スパース ネットワーク トレーニング

Ampere を使用すると、緻密な構造のスパース行列を高密度の速度で自動的に乗算できます。これはどのように行われるのでしょうか?重み行列を例として、4 つの要素を含む部分に分割します。ここで、これら 4 つの要素のうち 2 つがゼロであると想像してください。図 1 は、この状況がどのようなものかを示しています。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

#図 1: Ampere アーキテクチャ GPU のスパース行列乗算関数によってサポートされる構造

この疎な重み行列と密な入力を乗算すると、Ampere の疎行列 Tensor コア機能によって、疎行列が図 2 に示すサイズの半分の密な表現に自動的に圧縮されます。

圧縮後、高密度に圧縮された行列タイルがテンソル コアに供給され、通常のサイズの 2 倍の行列乗算が計算されます。これにより、共有メモリでの行列乗算中に必要な帯域幅が半分になるため、実質的に 2 倍の速度向上が得られます。

図 2: 疎行列は、行列の乗算の前に密表現に圧縮されます。

私は研究でスパース ネットワーク トレーニングに取り組んでおり、スパース トレーニングに関するブログ記事も書きました。私の研究に対する批判の 1 つは、「ネットワークに必要な FLOPS は削減できますが、GPU は高速な疎行列の乗算を実行できないため、速度は向上しません」というものでした。

Tensor コアのスパース行列乗算機能の追加により、私のアルゴリズムまたは他のスパース トレーニング アルゴリズムは、トレーニング中に実際に最大 2 倍の速度向上を実現します。

開発されたスパース トレーニング アルゴリズムには 3 つの段階があります: (1) 各層の重要性を決定します。 (2) 最も重要でない重みを削除します。 (3) 各層の重要性に比例した新しい重み付けを促進します。

この機能はまだ実験段階であり、スパース ネットワークのトレーニングはまだ一般的ではありませんが、GPU にこの機能があるということは、将来に備えてスパース ネットワークのトレーニングがすでに完了していることを意味します。

低精度計算

私の研究では、新しいデータ型によってバックプロパゲーションの安定性中の低精度が改善できることを以前に示しました。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

図 4: 低精度ディープラーニングの 8 ビット データ型。高度に特殊化されたデータ型によるディープ ラーニング トレーニングの利点 通常の FP16 データ型は、[-65,504, 65,504] の範囲の数値のみをサポートします。勾配がこの範囲を超えると、勾配は NaN 値に爆発的に変化します。

FP16 トレーニングでこの状況を防ぐには、通常、損失スケーリングを実行します。つまり、バックプロパゲーションの前に損失に小さな数を乗算して、この勾配の爆発を防ぎます。

Brain Float 16 形式 (BF16) は、可能な数値の範囲が FP32 と同じになるように、指数に多くのビットを使用します。BF16 の精度、つまり有効桁数は低くなりますが、勾配の精度は学習にとってそれほど重要ではありません。

つまり、BF16 では、損失スケーリングを行う必要がなくなり、勾配が急速に爆発することを心配する必要がなくなります。したがって、BF16 形式を使用すると、精度が若干低下しますが、トレーニングの安定性が向上するはずです。

これはあなたにとって何を意味しますか。 BF16 精度を使用すると、同じ速度向上を実現しながら、FP16 精度を使用した場合よりもトレーニングが安定する可能性があります。 TF32 の精度により、FP32 に近い安定性が得られ、FP16 に近い速度の向上が得られます。

良い点は、これらのデータ型を使用するには、FP32 を TF32 に、FP16 を BF16 に置き換えるだけで済み、コードを変更する必要がないことです。

しかし、一般に、これらの新しいデータ型は、追加のプログラミング作業 (適切な損失スケーリング、初期化、正規化、Apex の使用) で取り除くことができるため、遅延データ型と見なすことができます。 ) 古いデータ型の利点をすべて享受できます。

したがって、これらのデータ型は速度を提供するものではなく、トレーニングの精度は低くても使いやすさを向上させます。

ファン設計と GPU 温度

RTX 30 シリーズの新しいファン設計は、GPU の冷却には非常に優れていますが、 -Founder Edition GPU ファンの設計が異なると追加の問題が発生する可能性があります。

GPU が 80C を超えると、セルフスロットルが発生し、計算速度/処理能力が低下します。この問題の解決策は、PCIe エクステンダーを使用して GPU 間にスペースを作成することです。

PCIe エクステンダーを使用して GPU を分散することは、冷却に非常に効果的です。ワシントン大学の他の博士課程の学生と私は、このセットアップを使用して大きな成功を収めました。見た目はあまり良くありませんが、GPU を冷却します!

次のシステムは 4 年間問題なく稼働しています。これは、PCIe スロットにすべての GPU を取り付けるのに十分なスペースがない場合にも使用できます。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

図 5: PCIE 拡張ポートを備えた 4 枚のグラフィックス カード システムはごちゃごちゃに見えますが、放熱効率は非常に高いです。

電力制限の問題を適切に解決する

GPU に電力制限を設定することができます。その結果、RTX 3090 の電力制限を標準の 350 W ではなく 300 W にプログラムで設定できるようになります。 4 GPU システムでは、これは 200 W の節約に相当し、1600 W PSU で 4x RTX 3090 システムを実現するには十分な量と考えられます。

これは、GPU の冷却にも役立ちます。したがって、電力制限を設定すると、4x RTX 3080 または 4x RTX 3090 セットアップの主な問題である冷却と電力の両方が解決されます。 4x セットアップの場合も、GPU 用の効率的な冷却ファンが必要ですが、これにより電力の問題は解決されます。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

図 6: 電力制限を下げると、わずかな冷却効果があります。 RTX 2080 Ti の電力制限を 50 ~ 60 W 下げると、温度がわずかに低くなり、ファンの動作も静かになります

「GPU の速度が遅くなるのではないか」と疑問に思うかもしれません。 ?「 ?」 はい、確かに下がりますが、問題はその程度です。

図 5 に示す 4x RTX 2080 Ti システムをさまざまな電力制限でベンチマークしました。推論中の BERT Large の 500 ミニバッチの時間をベンチマークしました (ソフトマックス レイヤーを除く)。 BERT 大規模推論を選択すると、GPU に最大の負荷がかかります。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

#図 7: RTX 2080 Ti の特定の電力制限における速度低下の測定

##電力制限を設定してもパフォーマンスに重大な影響を与えないことがわかります。電力を 50W に制限しても、パフォーマンスは 7% 低下するだけです。

RTX 4090 コネクタの発火問題

RTX 4090 の電源コードが過度に曲がっているために発火するという誤解があります。実際にこれに当てはまるのはユーザーの 0.1% だけで、主な問題はケーブルが正しく接続されていないことです。

したがって、以下のインストール手順に従えば、RTX 4090 を完全に安全に使用できます。

1. 古いケーブルまたは古い GPU を使用している場合は、接点にゴミや埃がないことを確認してください。

2. 電源コネクタを使用して、カチッという音が聞こえるまでコンセントに差し込みます - これが最も重要な部分です。

3. コードを左から右にひねってフィット感をテストします。ケーブルが動いてはいけません。

4. ソケットとの接触を目視で確認し、ケーブルとソケットの間に隙間がないことを確認します。

H100 および RTX40 での 8 ビット浮動小数点のサポート

8 ビット浮動小数点 (FP8) のサポートは、RTX 40 シリーズおよび H100 です。 GPU にとっては大きな利点です。

8 ビット入力を使用すると、行列乗算用のデータを 2 倍の速さでロードでき、Ada および Hopper アーキテクチャの場合と比べて 2 倍の数の行列要素をキャッシュに保存できます。キャッシュは非常に大きく、FP8 tensor コアを使用すると、RTX 4090 で 0.66 PFLOPS のコンピューティングを実現できます。

これは、2007 年の世界最速のスーパーコンピューターの全体の計算能力よりも優れています。 RTX 4090 は FP8 の 4 倍の計算能力を備えており、2010 年の世界最速のスーパーコンピューターに匹敵します。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

ご覧のとおり、最適な 8 ビット ベースラインでは良好なゼロ点パフォーマンスが得られません。私が開発したメソッド LLM.int8() は、16 ビット ベースラインと同じ結果で Int8 行列の乗算を実行できます。

しかし、Int8 は RTX 30/A100/Ampere 世代の GPU ですでにサポートされているのに、RTX 40 で FP8 がさらに大きなアップグレードになるのはなぜでしょうか? FP8 データ型は Int8 データ型よりもはるかに安定しており、整数データ型では難しい層仕様や非線形関数での使用が簡単です。

これにより、トレーニングと推論での使用が非常にシンプルかつ簡単になります。これにより、数か月以内に FP8 のトレーニングと推論が比較的一般的なものになると思います。

以下に、Float データ型と Integer データ型に関するこの論文の関連する主な結果を示します。 FP4 データ型は Int4 データ型よりも多くの情報を保持しているため、4 つのタスク全体の平均 LLM ゼロ点精度が向上していることがわかります。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

#GPU ディープラーニング パフォーマンス ランキング

GPU の元のパフォーマンス ランキングを見て、誰が最も優れているかを見てみましょう。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

H100 GPU の 8 ビット パフォーマンスと、16 ビット パフォーマンスに最適化された古いカードとの間には、大きなギャップがあることがわかります。

上の図は、GPU の生の相対パフォーマンスを示しています。たとえば、8 ビット推論の場合、RTX 4090 のパフォーマンスは H100 SMX の約 0.33 倍です。

言い換えれば、H100 SMX は RTX 4090 と比較して 8 ビット推論で 3 倍高速です。

このデータに関して、彼は古い GPU の 8 ビット コンピューティングをモデル化しませんでした。

8 ビット推論とトレーニングは Ada/Hopper GPU でより効率的であり、Tensor Memory Accelerator (TMA) は 8 ビット マトリックスで非常に正確な多くのレジスタを節約するためです。乗算。

Ada/Hopper には FP8 サポートもあり、特に 8 ビット トレーニングの効率が向上します。Hopper/Ada では、8 ビット トレーニングのパフォーマンスが 3 ~ 4 倍になる可能性があります。 16 ビット トレーニングの回数。

古い GPU の場合、古い GPU の Int8 推論パフォーマンスは 16 ビット推論パフォーマンスに近くなります。

1 ドルあたりどのくらいのコンピューティング パワーを購入できますか?

問題は、GPU のパフォーマンスは強力ですが、私にはそれを買う余裕がないということです...

十分な予算がない人のために、次のグラフは各 GPU の価格とパフォーマンスの統計に基づいた 1 ドルあたりのパフォーマンスのランキング (1 ドルあたりのパフォーマンス) です。 GPUの有効性。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

ディープ ラーニング タスクを完了し、予算を満たす GPU を選択するには、次の手順に分けることができます。

  • まず、必要なビデオ メモリの量を決定します (画像生成には少なくとも 12 GB、Transformer 処理には少なくとも 24 GB)。
  • # # 8 ビットと 16 ビットのどちらを選択するかについては、可能であれば 16 ビットを使用することをお勧めします。8 ビットでは依然として複雑なエンコード タスクの処理が困難です。
  • #上の画像のメトリクスに基づいて、相対的なパフォーマンス/コストが最も高い GPU を見つけます。
  • RTX4070Ti は 8 ビットおよび 16 ビット推論に対して最もコスト効率が高く、RTX3080 は 8 ビットおよび 16 ビット推論に対して最もコスト効率が高いことがわかります。 16ビットトレーニング。

これらの GPU は最もコスト効率が高いですが、メモリにも欠点があり、10 GB と 12 GB のメモリではすべてのニーズを満たせない場合があります。

しかし、ディープラーニングを初めて使用する初心者にとっては理想的な GPU かもしれません。

これらの GPU の一部は Kaggle コンペティションに適しています。Kaggle コンペティションで好成績を収めるには、モデル サイズよりも作業方法が重要であるため、多くの小型 GPU が適しています。

Kaggle は世界最大のデータサイエンティストが集まるプラットフォームとして知られており、専門家が集まっており、初心者にも非常に優しいです。

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

学術研究やサーバー運用に使用する場合に最適な GPU は、A6000 Ada GPU のようです。

同時に、H100 SXM は大容量メモリと強力なパフォーマンスを備え、コスト効率も非常に優れています。

個人的な経験から言えば、企業/学術研究室用に小規模なクラスターを構築する場合は、66 ~ 80% の A6000 GPU と 20 ~ 33% の H100 SXM GPU をお勧めします。

総合的な推奨事項

ここまで述べてきましたが、ようやく GPU Amway セクションに進みます。

Tim Dettmers 氏が特別に「GPU 購入フローチャート」を作成しました。予算が十分にある場合は、より高い構成を選択できます。予算が十分でない場合は、こちらを参照してください。費用対効果の高い選択。

ここで最初に強調すべきことは、どの GPU を選択する場合でも、まずそのメモリがニーズを満たしていることを確認してください。これを行うには、いくつかの質問を自問する必要があります:

GPU を使って何をしたいですか? Kaggle コンテストへの参加、深層学習の学習、CV/NLP 研究、小規模プロジェクトの実行に使用されていますか?

ディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?

十分な予算がある場合は、上記のベンチマークをチェックして、最適な GPU を選択できます。

一定期間、vast.ai または Lambda Cloud で問題を実行することで必要な GPU メモリを見積もり、それがニーズを満たすかどうかを理解することもできます。

GPU が時々 (数日ごとに数時間) 必要になるだけで、大規模なデータセットをダウンロードして処理する必要がない場合は、vast.ai または Lambda Cloud も適切に機能します。仕事。

ただし、GPU が 1 か月間毎日使用され、使用頻度が高い (1 日あたり 12 時間) 場合、通常、クラウド GPU は適切な選択ではありません。

以上がディープラーニング GPU 選択ガイド: どのグラフィックス カードが私の錬金術炉に適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。