Windows11使用WSL Ubuntu搭建paddle的GPU環(huán)境

Windows11使用WSL Ubuntu搭建paddle的GPU環(huán)境

最近升級(jí)到了Windows11砾脑,突然有個(gè)大膽的想法:在Windows11上安裝WSL幼驶,將所有開(kāi)發(fā)環(huán)境安裝到WSL中。這樣就能在windows各種QQ/微信/Steam玩的飛起韧衣,又能在Linux中敲代碼盅藻。

當(dāng)前時(shí)間:2022-08-13,本文章中所有步驟都是根據(jù)官網(wǎng)的安裝方法畅铭,如果時(shí)間比較長(zhǎng)了氏淑,可能需要切換到最新的官方文檔。

本文章為安裝成功后的分享硕噩,可以放心參考假残。

paddle的坑

  1. 目前不兼容ubuntu22.04,查資料說(shuō)是paddle不支持高版本gcc
  2. 直接運(yùn)行paddle提供的docker鏡像是可行榴徐,但是docker內(nèi)的python版本過(guò)低(python3.7)守问,導(dǎo)致matplotlib無(wú)法安裝,如果不需要個(gè)別依賴包可以不用折騰
  3. 吐槽下坑资,ubuntu22.04都發(fā)布半年了耗帕,還做不到兼容,天天吹流弊有個(gè)錘子用

版本/型號(hào)

項(xiàng)目 型號(hào)
當(dāng)前時(shí)間 2022-08-13
CPU Intel i7-11700
顯卡 GTX 1050 Ti
Windows 11 64位 專業(yè)版 21H2
WSL2 5.10.102.1
Ubuntu 22.04
CUDA 11.7
cuDNN 8.5.0.*

疑問(wèn)

在完成安裝前袱贮,自己對(duì)WSL也有疑問(wèn)的地方仿便,可能大家也有類似的疑問(wèn),所以列舉出來(lái)。

  • 疑問(wèn)1:WSL就是指Windows中運(yùn)行的Linux系統(tǒng)嗎嗽仪?

    • WSL是個(gè)工具荒勇,用于運(yùn)行/管理子系統(tǒng)(如:Ubuntu/Centos)
    • (為了方便表述,下面用ubuntu指代其中一個(gè)子系統(tǒng))
  • 疑問(wèn)2:WSL吃資源嗎闻坚?

    • WSL工具本身不吃資源沽翔,但是運(yùn)行子系統(tǒng)需要吃資源,畢竟多跑了個(gè)系統(tǒng)
  • 疑問(wèn)3:WSL安裝后一直在后臺(tái)運(yùn)行吃資源嗎窿凤?

    • WSL是個(gè)工具仅偎,且子系統(tǒng)不會(huì)自啟動(dòng)(默認(rèn)情況),還可以手動(dòng)雳殊。即不使用的時(shí)候不吃資源
  • 疑問(wèn)4:docker要Windows中安裝橘沥,還是要在ubuntu中安裝?

    • 在Windows中安裝Docker Desktop相當(dāng)于在WSL下又安裝了一個(gè)跑docker的子系統(tǒng)
    • 在Ubuntu中安裝按照docker服務(wù)器安裝的步驟安裝即可
    • 推薦在ubuntu中安裝夯秃,更加節(jié)省內(nèi)存
    • 以下數(shù)據(jù)是在"任務(wù)管理器"中的"性能"頁(yè)面觀察得到座咆,數(shù)據(jù)并不嚴(yán)謹(jǐn),不排除期間開(kāi)了其他軟件等影響仓洼,但內(nèi)存使用量懸殊不影響結(jié)果判斷:
      • 未打開(kāi)所有子系統(tǒng)介陶,內(nèi)存使用:4.5G
      • 打開(kāi)ubuntu20,內(nèi)存使用:5.8G
      • 打開(kāi)Ubuntu20內(nèi)的docker衬潦,內(nèi)存使用:6.1G
      • 打開(kāi)ubuntu20斤蔓,docker子系統(tǒng)(安裝在windows上)植酥,內(nèi)存使用:10.7G
      • 原因:安裝在windows上的docker需要一個(gè)子系統(tǒng)來(lái)跑dockers服務(wù)镀岛,而在ubuntu中安裝只是多運(yùn)行了一個(gè)服務(wù),節(jié)省了系統(tǒng)運(yùn)行環(huán)境需要的資源
  • 疑問(wèn)5:在windows中安裝了驅(qū)動(dòng)友驮,ubuntu中還需要安裝顯卡驅(qū)動(dòng)/CUDA/cuDNN嗎漂羊?

    • ubuntu中不需要再安裝顯卡驅(qū)動(dòng),但是需要安裝CUDA/cuDNN
  • 總結(jié)

    • WSL是個(gè)子系統(tǒng)管理工具(可以類比為docker運(yùn)行時(shí))
    • 從WSL或微軟商店安裝的Ubuntu/Centos才是真正的子系統(tǒng)(可以類比為docker的容器)
    • Docker最好安裝在子系統(tǒng)中(節(jié)省內(nèi)存)

步驟

Windows11安裝WSL

官網(wǎng)-安裝WSL
官網(wǎng)-WSL基本命令

  1. 打開(kāi)"Windows功能"卸留,將"Hyper-V"/"適用于Linux的Windows子系統(tǒng)"/"虛擬平臺(tái)"都勾選上走越,重啟

  2. windows系統(tǒng)就自動(dòng)安裝了wsl工具

  3. 在微軟商店搜索"Ubuntu",直接點(diǎn)擊安裝等待完成(這里選擇ubuntu20.04耻瑟,因?yàn)閜addle不兼容ubuntu22旨指,因?yàn)椋?/p>

  4. 打開(kāi)"ubuntu20.04",如果如下報(bào)錯(cuò)

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernel

Press any key to continue...
  1. 請(qǐng)更新下WSL內(nèi)核并重啟即可
wsl --update

配置ubuntu20.04的環(huán)境

官網(wǎng)-安裝Docker Engine on Ubuntu

  1. 進(jìn)入ubuntu內(nèi)部
  2. 安裝miniconda當(dāng)作python管理工具
  3. 更換"ubuntu"/"conda"/"pypi"國(guó)內(nèi)鏡像源
  4. 安裝Dockers喳整,注意是安裝Dockers Engine,而不是Docker Desktop

驅(qū)動(dòng)/CUDA/cuDNN關(guān)系

顯卡谆构、顯卡驅(qū)動(dòng)、cuda 之間的關(guān)系是什么框都? - 智星云服務(wù)的回答 - 知乎

應(yīng)用層到硬件的分層結(jié)構(gòu)
TensorRT for Inference: Paddle
GPU Accelerated SDKcuDNN
CUDA ToolKits
GPU Driver
OS
GPU Computing Servers

安裝CUDA

官網(wǎng)-安裝cuda命令

  1. 提前安裝好miniconda(安裝命令會(huì)自動(dòng)配置conda環(huán)境)
  2. 打開(kāi)上面的地址搬素,訪問(wèn)比較慢瑟匆,刷不出來(lái)多試幾次宗侦,環(huán)境不同安裝的命令也不同,選擇好參數(shù)后會(huì)有安裝命令,照抄命令就可以了
  3. 有些文章說(shuō)安裝cuda后要改環(huán)境變量论悴,我提前裝好了miniconda,所以安裝好自動(dòng)配置了崎苗,不需要改谷徙,打開(kāi)"~/.bashrc"最下方可以看到配置的內(nèi)容
  4. 下面以我選擇的參數(shù)"Linux"/"x86_64"/"Ubuntu"/"20.04"/"deb(network)",生成的代碼如下:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
  • 在執(zhí)行最后一個(gè)命令時(shí)揭措,我遇到了個(gè)報(bào)錯(cuò)戒傻,根據(jù)提示在命令后方加上"--fix-missing"即可,大家安裝的時(shí)候注意觀察安裝過(guò)程中是否有報(bào)錯(cuò)

自動(dòng)添加的環(huán)境變量如下蜂筹,本人的登錄用戶名為"x"需纳,所以每個(gè)人安裝的路徑都有區(qū)別

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/x/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/x/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/x/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/x/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

安裝cuDNN

官網(wǎng)-安裝cuDNN

  1. 注意看里面的目錄,自行選擇對(duì)應(yīng)的系統(tǒng)和安裝方式
  2. 我選擇的是ubuntu的網(wǎng)絡(luò)安裝艺挪,執(zhí)行的代碼如下:
# 由于文檔中的地址使用了變量不翩,用export方式賦值
export OS=ubuntu2004
export cudnn_version=8.5.0.*
export cuda_version=cuda11.7

# 安裝
wget https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin 

sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/ /"
sudo apt-get update
sudo apt-get install libcudnn8=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-dev=${cudnn_version}-1+${cuda_version}

完成

上面完成了所有配置,測(cè)試下是否成功

  1. 進(jìn)入ubuntu
  2. 進(jìn)入conda環(huán)境
  3. 打開(kāi)python命令行
import paddle
paddle.utils.run_check()

其他

  • ubuntu中可以直接訪問(wèn)windows中的文件麻裳,掛載在"/mnt"目錄下
  • WSL搭配vscode使用非常順滑口蝠,可以參考VsCode輕松使用docker容器 視頻,將"Remote SSH"插件改為"Remote WSL"即可津坑,操作大同小異
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妙蔗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疆瑰,更是在濱河造成了極大的恐慌眉反,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穆役,死亡現(xiàn)場(chǎng)離奇詭異寸五,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耿币,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門梳杏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人淹接,你說(shuō)我怎么就攤上這事十性。” “怎么了塑悼?”我有些...
    開(kāi)封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵劲适,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拢肆,道長(zhǎng)减响,這世上最難降的妖魔是什么靖诗? 我笑而不...
    開(kāi)封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮支示,結(jié)果婚禮上刊橘,老公的妹妹穿的比我還像新娘。我一直安慰自己颂鸿,他們只是感情好促绵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著嘴纺,像睡著了一般败晴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栽渴,一...
    開(kāi)封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天尖坤,我揣著相機(jī)與錄音,去河邊找鬼闲擦。 笑死慢味,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的墅冷。 我是一名探鬼主播纯路,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寞忿!你這毒婦竟也來(lái)了驰唬?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腔彰,失蹤者是張志新(化名)和其女友劉穎叫编,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萍桌,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵溅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了上炎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雏搂,死狀恐怖藕施,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凸郑,我是刑警寧澤裳食,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站芙沥,受9級(jí)特大地震影響诲祸,放射性物質(zhì)發(fā)生泄漏浊吏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一救氯、第九天 我趴在偏房一處隱蔽的房頂上張望找田。 院中可真熱鬧,春花似錦着憨、人聲如沸墩衙。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)漆改。三九已至,卻和暖如春准谚,著一層夾襖步出監(jiān)牢的瞬間挫剑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工柱衔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暮顺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓秀存,卻偏偏與公主長(zhǎng)得像捶码,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子或链,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容