機械学習で広く使用されているオープンソースフレームワークである PyTorch は、高速性と高効率性という特徴を備えています。近年、広く評価されているAMDプロセッサは、マルチコア、優れたマルチタスク性能、高いコストパフォーマンスなどの利点を備えています。開発者たちは、この 2 つを組み合わせて、AMD プロセッサ上で PyTorch をディープラーニングの開発と研究に使用したいと考えていました。 少し前にリリースされた PyTorch 1.8 では、AMD ROCm のサポートが追加されました。これは、AMD でのディープラーニングに PyTorch を使用したい開発者にとって朗報です。 しかし、AMD CPU を使用している開発者にとって、PyTorch を AI 開発に使用するのはそれほどスムーズではないかもしれません。 ここでは、PyTorch の Github でそのような未解決の問題が見つかりました。 GitHub アドレス: 一部の開発者は、単一のマシンと複数の GPU でのデータ並列処理を使用して AMD CPU を搭載したコンピューターで CNN をトレーニングすると PyTorch がデッドロックするが、同じコードは Intel CPU を搭載したコンピューターではデッドロックしないと述べています。 TensorFlow にもこの問題はありません。 どのようなバグに遭遇しましたか? このデッドロックがどのように発生するのかを詳しく見てみましょう。 提出された問題では、開発者は、トレーニングの for ループでは、順方向伝播出力 = model(images) になるまでコードが実行され続けると述べています。コードは常にモデル (画像) ステージに留まり、GPU 使用率は 0% (メモリ使用量は 0 ではありません)、3 つの CPU コアの使用率は 100%、その他の CPU コアの使用率は 0% です。 ctrl+c と ctrl+z の使用を停止した後も、プロセス PID と GPU メモリ使用量は変更されません。 kill、pkill、fuser -k /dev/nvidia* コマンドは、ゾンビ プロセス (Defunct プロセスとも呼ばれます) を引き起こします。ゾンビ プロセスの親プロセスは pid 1 であるため、強制終了できません。唯一の解決策はシステムを再起動することです。 コードは Intel CPU を搭載した 3 台のマシンでは正常に実行されますが、AMD CPU を搭載した 4 台のマシンでは上記の問題が発生します。開発者はさらに、GTX 1080、Titan V、Titan RTX、Quadro RTX 8000、RTX 3090 をテストし、このバグが GPU モデルに依存しないことを証明しました。 さらに、このプロジェクトでは、分散データ並列処理 (DDP) にも同様の問題があることも言及されています。 関心のある開発者は、次の設定に従ってこのバグを再現できます。 AMD CPU と複数の NVIDIA GPU を搭載したマシンを使用します。 Linux、Python 3.8、cuda 11.0、pytorch 1.7.1、torchvision 0.8.2; torchvision で resnet18 モデルをトレーニングするためのコードを記述します。 データ並列処理 (DP) と分散データ並列処理 (DDP) をテストして、両方でこの問題が発生するかどうかを確認できます。 プロジェクトの説明によると、再現後に以下のことが起こる可能性があります。 AMD CPU を使用すると、トレーニングの最初のエポックと順方向伝播の最初の反復中にデッドロックが発生します。 同じコードは、Intel CPU を使用すると正常に実行されます。 まだ解決されていない 今回発見されたバグについて、一部のネットユーザーから同様の問題が存在するとの声が上がっている。 バグを発見した研究者は、ImagNet、mini ImageNet、CIFAR 10、およびその他のデータセットで実験を行いました。CIFAR 10 は軽量でデバッグが容易なため、開発者は CIFAR 10 に関する対応するコード例を提供しました。 なお、一部の開発者は、TensorFlow を使用するとこのバグは発生しないと述べています。 問題を提出した後、PyTorch 運用保守チームのメンバーも議論に参加するようメッセージを残しました。テストフェーズに AMD CPU を使用するユースケースが含まれていたかどうかを尋ねると、メンバーは次のように答えました。「他のチームメイトと話し合った結果、テストには AMD CPU を使用するユースケースがなかったことがわかりました。現在、この問題を再現する方法はありません。今年後半にさらに多くのハードウェアタイプをサポートしてテスト環境を改善したら、この問題について再度議論します。」 以前、一部のネットユーザーが、AMD CPU で PyTorch マルチカード並列がフリーズする問題を発見しました。ログを確認した結果、エラーの原因が判明し、問題は解決しました。今回明らかになったバグはまだ解決されていません。 |
<<: Facebookは色を表現するために通信する2つのニューラルネットワークを作成
Google は本日、データサイエンスと機械学習のコンテストを主催するオンライン サービスである K...
5月19日北京時間午後11時、マイクロソフトの年次「Build Developer Conferen...
最近、大規模言語モデル (LLM) はさまざまなタスクで優れたパフォーマンスを示しています。しかし、...
序文最近、アルゴリズムの基礎を固めるために、アルゴリズムの本にある基本的なアルゴリズムをもう一度見直...
休暇で旅行するときは、写真を撮ることが必須です。しかし、景勝地で撮影した写真の多くは、背景に何かが写...
交通分野における人工知能 (AI) の応用は、車両とインフラのより効果的で的を絞った使用に向けたイノ...
要点を一目でAI アライメントは、RLHF/RLAIF などの成熟した基本手法だけでなく、スケーラブ...
数日前、私の友人がByteDanceの面接を受けました。面接官は彼にリンクリストアルゴリズムの質問を...
事前のプログラミングやトレーニングなしで GPT-4 を使用してヒューマノイド ロボットを制御すると...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
ストレージを、手作業で手間がかかる必需品ではなく、自動運転車として考えることができたらどうでしょうか...
ニューラル ネットワークは、線形モジュールと非線形モジュールを巧みに組み合わせたものです。これらのモ...
[[393200]] [51CTO.com クイック翻訳]人工知能は企業に競争上の優位性をもたらし...
大規模な人工知能 (AI) により、容量とパフォーマンスの面でストレージ インフラストラクチャの水準...