選單

有bug!PyTorch在AMD CPU的計算機上卡死了

機器之心報道

編輯:小舟、陳萍

AMD,No?PyTorch在AMD CPU的機器上出現死鎖了。

PyTorch 作為機器學習中廣泛使用的開源框架,具有速度快、效率高等特點。而近年來廣受好評的 AMD 處理器具有多核、多工效能良好、價效比高等優勢。開發者們一直希望二者聯合起來,在 AMD 處理器上使用 PyTorch 進行深度學習的開發和研究。

前段時間釋出的 PyTorch 1。8 新增了對 AMD ROCm 的支援,對於想在 AMD 上用 PyTorch 進行深度學習的開發者來說,這是一個好訊息。

但是,對使用 AMD cpu 的開發者用 PyTorch 做 AI 開發,也許沒那麼順利。

這不,我們就從 PyTorch 的 Github 上發現這麼一個還未解決的 issue。

有bug!PyTorch在AMD CPU的計算機上卡死了

GitHub 地址:https://github。com/pytorch/pytorch/issues/52142

有開發者表示:PyTorch 在 AMD CPU 的計算機上,用資料並行單機和多 GPU 訓練 CNN 會導致死鎖,而相同的程式碼在 Intel CPU 的計算機中就不會出現死鎖。TensorFlow 也不會出現這種問題。

遇到了什麼 bug

讓我們來具體看一下這個死鎖是怎麼產生的?

在提交的 Issue 中,開發者表述在訓練的 for 迴圈中,程式碼會一直執行,直到前向傳播 output = model(images)。程式碼會一直停留在 model(images)階段,而 gpu 的利用率為 0% (記憶體佔用率不是 0),有 3 個 cpu 核的利用率達到 100%,而其他 cpu 核為 0%。使用 ctrl+c 和 ctrll+z 停止後,程序 PID 和 GPU 記憶體使用情況保持不變。kill 、pkill 和 fuser -k /dev/nvidia * 命令導致殭屍程序(也稱為 Defunct 程序)。殭屍程序的父程序 pid 為 1,因此不能 kill 它。唯一的解決辦法是重新啟動系統。

程式碼在 3 臺 Intel cpu 計算機上執行良好,但在 4 臺使用 AMD cpu 的機器上就會出現上述問題。開發者進一步測試了 GTX 1080、Titan V、 Titan RTX、Quadro RTX 8000 和 RTX 3090,證明該 bug 與 GPU 模型無關。

此外,該專案還提到分散式資料並行(DDP)也存在類似的問題。

感興趣的開發者可以按照如下配置復現一下這個 bug:

使用帶有 AMD cpu 和多個 NVIDIA gpu 的機器;

Linux、Python3。8、cuda 11。0、pytorch 1。7。1、 torchvision 0。8。2;

編寫程式碼在 torchvision 中訓練 resnet18 模型;

可以嘗試測試資料並行 (DP) 和分散式資料並行(DDP),以檢查是否都會出現這種情況。

根據該專案的描述,復現之後可能會出現:

當使用 AMD cpu 時,在訓練的第一個 epoch 和第一次迭代的前向傳播時會發生死鎖;

當使用 intel cpu 時,相同的程式碼執行良好。

尚未解決

對於這次發現的 bug,有網友表示也存在相同的問題。

有bug!PyTorch在AMD CPU的計算機上卡死了

發現該 bug 的研究者在 ImagNet、mini ImageNet、 CIFAR 10 以及其他資料集上進行了實驗,由於 CIFAR 10 具有輕量級、利於除錯的特點,因此開發者在 CIFAR 10 上給出了相應的程式碼示例:

有bug!PyTorch在AMD CPU的計算機上卡死了

此外,有開發者表示使用 TensorFlow 則不會出現該 bug。

提交 Issue 後,PyTorch 運維團隊的成員也留言參與了討論,在被問到「測試階段是否包含使用 AMD CPU 的用例」時,該成員表示:「在和其他隊友討論之後,我們意識到測試中沒有涉及 AMD CPU 的用例,目前我們還沒有辦法重現這個問題。如果今年晚些時候我們透過支援更多的硬體型別改進了測試環境,將重新討論這個問題。」

有bug!PyTorch在AMD CPU的計算機上卡死了

此前有網友發現了 AMD cpu 下 PyTorch 多卡並行卡死的問題,檢視日誌之後找到錯誤原因,問題才得以解決。而這次暴露的 bug 目前仍未解決。

參考連結:

https://github。com/pytorch/pytorch/issues/52142

https://blog。csdn。net/aakwnam6338/article/details/101270942

建新·見智 —— 2021亞馬遜雲科技 AI

線上大會

4月22日 14:00 - 18:00

大會包括

主題演講和六大分會場

。內容涵蓋亞馬遜機器學習實踐揭秘、人工智慧賦能企業數字化轉型、大規模機器學習實現之道、AI 服務助力網際網路快速創新、開源開放與前沿趨勢、合作共贏的智慧生態等諸多話題。

亞馬遜雲科技技術專家以及各個行業合作伙伴將現身說法,講解 AI/ML 在實現組織高效執行過程中的巨大作用。每個熱愛技術創新的 AI/ML 的愛好者及實踐者都不容錯過。