バグがあります! PyTorch が AMD CPU 搭載のコンピューターでハングする

バグがあります! PyTorch が AMD CPU 搭載のコンピューターでハングする

機械学習で広く使用されているオープンソースフレームワークである PyTorch は、高速性と高効率性という特徴を備えています。近年、広く評価されているAMDプロセッサは、マルチコア、優れたマルチタスク性能、高いコストパフォーマンスなどの利点を備えています。開発者たちは、この 2 つを組み合わせて、AMD プロセッサ上で PyTorch をディープラーニングの開発と研究に使用したいと考えていました。

少し前にリリースされた PyTorch 1.8 では、AMD ROCm のサポートが追加されました。これは、AMD でのディープラーニングに PyTorch を使用したい開発者にとって朗報です。

しかし、AMD CPU を使用している開発者にとって、PyTorch を AI 開発に使用するのはそれほどスムーズではないかもしれません。

ここでは、PyTorch の Github でそのような未解決の問題が見つかりました。

GitHub アドレス:
pytorch の最新バージョンをダウンロード

一部の開発者は、単一のマシンと複数の 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つのニューラルネットワークを作成

>>:  人工知能、機械学習、ディープラーニング

ブログ    
ブログ    
ブログ    

推薦する

...

SafetyNet: 自動運転における機械学習戦略のための安全な計画アプローチ

[[427712]] 2021年9月28日にarXivにアップロードされた論文「SafetyNet:...

初のヒューマンモーションキャプチャーモデルをリリース! SMPLer-X: 7つのチャートを一掃

表現力豊かな人間の姿勢と形状の推定 (EHPS) の分野では大きな進歩が遂げられていますが、最も先進...

人工知能はあなたよりも多くの XXX スターを知っている

[[206395]]さまざまな興味の組み合わせに応じて必要な動画を検索できるのは、毎日無数の動画コン...

...

...

MAEよりも強力なFAIRの新しいメソッドMaskFeatはHOGを使用して複数のSOTAを更新します

マスク・アンド・予測法は、コンピュータービジョンの分野における新しい流派となるかもしれません。自己教...

OpenAI が Stable Diffusion を救います! Ilya Song Yang らによるオープンソースの Dall E3 デコーダー

予想外にも、OpenAI は「競合相手」である Stable Diffusion を活用しました。話...

...

絶えず繰り返されるアルゴリズムとプログラミング技術が若者の発達を促している

人間の進化と発達は、脳の潜在能力を最大限に活用して世界を変えるプロセスです。その中で、インターネット...

AI(人工知能)について知っておくべきこと

どのような AI テクノロジーが人気があり、人間の生活に影響を与えるでしょうか? [[398271]...

スタートラインで勝つ: データサイエンスに必須の 5 つのスキル

データサイエンスの分野は競争が激しく、人々はますます多くのスキルと経験を急速に身につけています。 「...

テレンス・タオがGPT-4のチャット履歴を公開、研究アシスタントを入手するにはここをクリック

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

Nature 誌に「室温超伝導体は科学をどう変えるのか?」という記事が掲載されました。

7月末にLK-99が引き起こした熱狂は、8月中旬には徐々に沈静化しました。いくつかの権威ある組織が...