前後搞了幾天吧,一直無法在 WSL 中成功調用 gpu,官方的 tutorial 都翻爛了。最後的最後在近鄰發狂的邊緣,看到某位網友說 WIN10 上用 WSL 調用 GPU,系統必須是 21H2 版本。WIN+R 輸入 winver 查了一下我的是 20H2,問題發現了。現在回過頭想想官方 tutorial 真的屎啊,喊你加入預覽者計劃,但是不告訴你要手動更新系統版本,我特麼就傻傻的研究了好幾天。
這裡記錄一下大概的配置流程
-
去這裡 [https://insider.windows.com/en-us/getting-started#register] 註冊參加預覽者計劃;
-
在設置→更新和安全→Windows 更新中,找到並更新系統到 21H2。
-
在 win 系統裡下載安裝包含 wsl 的 cuda 驅動 [https://developer.nvidia.com/cuda/wsl/download]
-
安裝更新 wsl,並升級到版本 2 [https://docs.microsoft.com/en-us/windows/wsl/install-manual]
-
去 Microsoft Store 搜索 Ubuntu,安裝好後打開啟動一個容器,設置好用戶名和密碼。
-
在 WIndows PowerShell 裡運行,確認 Ubuntu 容器版本為 2。
wsl -l -v
-
在容器內安裝 CUDA,注意容器內不需要安裝驅動 [https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers]。從 4.2.6 Building Your Own GPU-accelerated Application on WSL 2 開始就好。
-
添加環境變量
vim ~/.bashrc export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin:${PATH} source ~/.bashrc
-
這時應該就可以正常使用下面兩句命令了。
nvcc --version nvidia-smi
如果上面第二步沒有更新系統,nvidia-smi 會提示因為系統限制,無法調用 GPU 設備。