機械学習で広く使用されているオープンソースフレームワークである 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つのニューラルネットワークを作成
[[427712]] 2021年9月28日にarXivにアップロードされた論文「SafetyNet:...
表現力豊かな人間の姿勢と形状の推定 (EHPS) の分野では大きな進歩が遂げられていますが、最も先進...
[[206395]]さまざまな興味の組み合わせに応じて必要な動画を検索できるのは、毎日無数の動画コン...
LiBai モデル ライブラリは、Hugging Face、Megatron-LM、DeepSpe...
マスク・アンド・予測法は、コンピュータービジョンの分野における新しい流派となるかもしれません。自己教...
予想外にも、OpenAI は「競合相手」である Stable Diffusion を活用しました。話...
人間の進化と発達は、脳の潜在能力を最大限に活用して世界を変えるプロセスです。その中で、インターネット...
どのような AI テクノロジーが人気があり、人間の生活に影響を与えるでしょうか? [[398271]...
データサイエンスの分野は競争が激しく、人々はますます多くのスキルと経験を急速に身につけています。 「...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
7月末にLK-99が引き起こした熱狂は、8月中旬には徐々に沈静化しました。いくつかの権威ある組織が...