針對 Azure 資料科學虛擬機器 的問題進行疑難解答
本文說明如何使用 Azure 資料科學虛擬機器 來尋找並更正您可能遇到的錯誤或失敗。
Ubuntu
修正 NVIDIA A100 GPU 晶片上的 GPU - Azure NDasrv4 系列
ND A100 v4 系列虛擬機是 Azure GPU 系列的旗艦新增專案。 其會處理高端深度學習訓練,並緊密結合、相應增加和相應放大 HPC 工作負載。
由於其獨特的架構,因此需要針對高需求工作負載設定不同的設定,才能使用 TensorFlow 或 PyTorch 架構從 GPU 加速中獲益。
我們正在建置 ND A100 機器 GPU 的現成支援。 同時,如果您新增 NVIDIA Fabric 管理員並更新驅動程式,您的 GPU 可以處理 Ubuntu。 請遵循終端機中的下列步驟:
[選擇性]您也可以從該存放庫更新 CUDA 驅動程式
安裝 NVIDIA Fabric Manager 驅動程式:
sudo apt-get install cuda-drivers-460 sudo apt-get install cuda-drivers-fabricmanager-460
重新啟動 VM (準備驅動程式)
開啟並啟動新安裝的 NVIDIA Fabric Manager 服務:
sudo systemctl enable nvidia-fabricmanager sudo systemctl start nvidia-fabricmanager
執行此程式碼範例來確認您的 GPU 和驅動程式是否正常運作:
systemctl status nvidia-fabricmanager.service
此螢幕快照顯示正在執行的 Fabric Manager 服務:
線上到桌面環境失敗
如果您可以透過 SSH 終端機連線到 DSVM,但無法透過 x2go 連線,x2go 可能會有錯誤的工作階段類型設定。 若要連線到 DSVM 桌面環境,請將 x2go/session 喜好設定/工作階段中的會話類型設定為 XFCE。 目前不支援其他桌面環境。
使用 x2go 連線到 DSVM 時字型看起來錯誤
當您連線到 x2go 時,特定的 x2go 工作階段設定可能會導致某些字型看起來錯誤。 線上到 DSVM 之前,請先取消核取工作階段喜好設定對話框 [輸入/輸出] 索引標籤中的 [設定顯示 DPI] 複選框。
提示輸入未知的密碼
您可以將 DSVM 驗證類型 設定設定為 SSH 公鑰。 建議您不要使用密碼驗證。 如果您使用 SSH 公鑰,則不會收到密碼。 不過,在某些情況下,某些應用程式仍會要求密碼。 執行 sudo passwd <user_name>
以建立特定使用者的新密碼。 透過 sudo passwd
,您可以為根使用者建立新的密碼。
執行此命令並不會變更 SSH 組態,且允許的登入機制會維持不變。
在執行 sudo 命令時提示輸入密碼
當您在 Ubuntu 電腦上執行 sudo
命令時,可能會收到重複輸入密碼的要求,以確認您是登入的使用者。 這是預期的預設Ubuntu行為。 不過,在某些情況下,不需要重複的驗證,而且相當令人惱火。
若要停用大部分情況下的重新驗證,您可以在終端機中執行此命令:
echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers
重新啟動終端機之後,sudo 不會要求另一個登入,它會將會話登入的驗證視為足夠。
無法使用 Docker 作為非根使用者
若要使用 docker 作為非根使用者,您的使用者需要 docker 群組中的成員資格。 此命令 getent group docker
會傳回屬於該群組的用戶清單。 若要將使用者新增至 Docker 群組,請執行 sudo usermod -aG docker $USER
。
Docker 容器無法透過網路與外部互動
根據預設,Docker 會將新的容器新增至所謂的「網橋網路」: 172.17.0.0/16
。 該網橋網路的子網可能會與您 DSVM 的子網重疊,或與您訂用帳戶中擁有的另一個私人子網重疊。 在此情況下,主機與容器之間沒有網路通訊。 此外,無法連線到在容器中執行的 Web 應用程式,而且容器無法從 apt 更新套件。
若要修正此問題,您必須重新設定 Docker,使其網橋網路使用 IP 位址空間,而該網路不會與訂用帳戶的其他網路重疊。 例如,如果您新增
"default-address-pools": [
{
"base": "10.255.248.0/21",
"size": 21
}
]
/etc/docker/daemon.json
至 JSON 檔案,Docker 會將另一個子網指派給網橋網路。 您必須使用 sudo 編輯檔案,例如執行 sudo nano /etc/docker/daemon.json
。
變更之後,請執行 service docker restart
以重新啟動 Docker 服務。 若要判斷您的變更是否生效,可以執行 docker network inspect bridge
。 IPAM 底下 的值。Config.Subnet 應該對應到稍早指定的位址池。
Docker 容器中無法使用 GPU(s)
DSVM 上安裝的 Docker 資源預設支援 GPU。 不過,該支援需要特定必要條件。
- DSVM 的 VM 大小必須至少包含一個 GPU。
- 當您使用
docker run
啟動 Docker 容器時,您必須新增 --gpus 參數:例如--gpus all
。 - 包含 NVIDIA A100 GPU 的 VM 大小需要安裝其他軟體套件,特別是 NVIDIA Fabric 管理員。 這些套件可能不會預安裝於映像中。
Windows
虛擬機第 2 代 (第 2 代) 無法運作
當您嘗試根據虛擬機第 2 代 (Gen 2) 建立 資料科學 VM 時,它會失敗。
目前,我們維護並提供以 Windows 2019 Server 為基礎的 資料科學虛擬機器 (DSVM) 映射,僅適用於第 1 代 DSVM。 尚未支援 Gen 2 ,但我們計劃在近期支持它們。
存取 SQL Server
當您嘗試連線到預安裝的 SQL Server 實例時,可能會遇到「登入失敗」錯誤。 若要成功連線到 SQL Server 實例,您必須以系統管理員模式執行您想要連線的程式,例如 SQL Server Management Studio (SSMS)。 系統管理員模式是必要的,因為 DSVM 預設行為,只有系統管理員才能連線。
Hyper-V 無法運作
如預期的行為,Hyper-V 一開始無法在 Windows 上運作。 為了獲得最佳效能,我們已停用一些服務。 若要啟用 Hyper-V:
- 開啟 Windows DSVM 上的搜尋列
- 輸入 「服務」,”
- 將所有 Hyper-V 服務設定為 「手動」
- 將 [Hyper-V 虛擬機管理] 設定為 [自動]
您的最終畫面看起來應該像這樣: