機械学習で広く使用されているオープンソースフレームワークである 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つのニューラルネットワークを作成
近年、AIによる顔を変える技術がネットユーザーの間で大流行し、この人工知能の新興技術を一般人の生活に...
ロボットの重要性は明らかです。ロボットは効率的で柔軟性があり、安定した動作特性を備えているため、人間...
将来のある時点で、人類は火星探査の旅に出る可能性が高いでしょう。最近、NASAの研究者らが、コンパク...
1. 機械学習プラットフォームとビッグデータプラットフォームの関係の明確化[[346643]]機械...
海外メディアによると、グーグルの研究者は以前、グーグルが現在検索やその他のテキスト分析製品に使用して...
[[342701]] スマートホーム革命はかなり前から本格化しています。住宅所有者はデータと IoT...
機械学習アルゴリズムは、自動運転のさまざまなソリューションで広く使用されています。電子制御ユニットで...
建設分野では、ロボット工学は効率性と労働安全を向上させる能力があるため、注目すべきイノベーションであ...
[[318598]] Google は最近、24 個の合理化された BERT モデルをダウンロード...
[[220105]]画像出典: Visual China 2016年10月の雲旗大会で、ジャック・マ...
海通国際証券のアナリスト、ジェフ・プー氏は本日、 Appleが早ければ2024年末にもiPhoneと...