在docker容器下pytorch分布式訓練環境搭建
docker鏡像的選擇
開始我選擇的是anaconda的鏡像,想根據conda自己構建出pytorch分布式的訓練,后來根據pytorch官方指令
conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch
安裝成功了。
也檢測了GPU可用
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)
但是出現錯誤RuntimeError: NCCL Error 2: unhandled system error
經過查詢資料發現應該是NCCL包有問題。但由於我用的學校的服務器,沒有sudo權限,無法安裝,就放棄了。
然后選擇了docker中的pytorch/pytorch鏡像
容器的建立
docker run -itd --gpus all -v /home/tianll:/root/ --name pt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all pytorch/pytorch:latest
采用的守護式容器建立,能夠把宿主機的文件和容器映射起來,還有GPU硬件的掛載這樣就創建好容器了
程序測試
發現報錯,CUDA的驅動程序太久了,然后理由同上,我無法更新驅動。然后重新利用conda按照官方conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch
重新指定了版本,就能夠使用了
至於分布式訓練代碼的改變
可以查看pytorch的官方代碼