多表格合并一起
1507
2022-05-29
通過WSL2 ubuntu18.04搭建CANN算子開發環境
不少開發者的個人電腦的主操作系統為Windows,但CANN算子的開發需要在Linux環境中進行。這個問題常見的解決方案為安裝Windows+Linux雙系統,或者安裝VMware、VirtualBox一類的虛擬機軟件,在上面配置Linux虛擬機環境。但這兩種方案有一定的局限性,安裝雙系統每次切換系統都需要重啟,且會涉及到修改啟動引導等一系列問題,安裝比較麻煩,而安裝虛擬機的方案宿主機和虛擬機的文件交換較為麻煩,且占用的資源量較多。
有沒有一個輕量級、安裝便捷、文件交換方便且性能優秀的解決方案呢?Windows Subsystem for Linux(WSL)就滿足了這幾個需求。WSL2作為WSL1的升級版,有著完整的 Linux 內核和完全的系統調用兼容性,甚至可以調用GPU加速計算。
本文記錄了在WSL2 Ubuntu18.04發行版上配置CANN算子開發環境的全過程,供各位昇騰開發者參考。
1. 環境介紹
CPU:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
內存:16G
系統版本:Windows 10 Pro x64 21H1
CANN版本:社區版 5.0.3.alpha005
2. 安裝WSL2系統內核
安裝前請確認Windows和BIOS是否支持并已經開啟虛擬化。
2.1 簡易安裝
參考鏈接:https://docs.microsoft.com/zh-cn/windows/wsl/install
如果您的Windows版本為Windows 10 版本 2004 及更高版本(內部版本 19041 及更高版本)或 Windows 11。那么安裝WSL2將較為簡單,只需要在Powershell中輸入以下命令,WSL2就會自動下載下載最新的 Linux 內核,將 WSL 2 設置為默認值,并安裝Ubuntu18.04。
wsl.exe --install -d Ubuntu-18.04
2.2 手動安裝
參考鏈接:https://docs.microsoft.com/zh-cn/windows/wsl/install-manual
如果您的Windows版本高于1903,但低于版本2004,可以升級Windows至2004及更高的版本,然后執行簡易安裝的命令,如果不希望進行升級,則可采用手動安裝的方式。低于1903的版本,必須升級Windows版本才能安裝WSL2,否則只能安裝WSL1。安裝步驟如下
2.2.1 啟用WSL:以管理員身份打開PowerShell,運行以下代碼:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.2.2 啟用虛擬機功能:以管理員身份打開PowerShell,運行以下代碼后重啟計算機:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2.2.3 下載Linux內核
-:適用于 x64 計算機的 WSL2 Linux 內核更新包,下載后雙擊安裝。
2.2.4 設置WSL2為默認WSL版本
wsl --set-default-version 2
2.2.5 下載Ubuntu18.04發行版
打開Microsoft Store,搜索Ubuntu 18.04 LTS,點擊“獲取”按鈕進行下載安裝。
2.3 檢查是否已經安裝Ubuntu 18.04
當開始菜單中出現Ubuntu 18.04 LTS時,說明WSL2 Ubuntu18.04發行版已經安裝成功。
2.4 配置Ubuntu 18.04
點擊Ubuntu 18.04 LTS的圖標后,會出現以下對話框。稍等片刻后,會要求您設置用戶名和密碼,請按照提示進行配置。
配置完成后,如果出現以下界面,就說明Ubuntu已經配置完成。本文配置的用戶名為davilsu,下文中涉及路徑設置時,需要把用戶名改為上一步設置的用戶名。
3. 安裝系統依賴項
3.1 替換軟件源并進行升級
Ubuntu官方源服務器不在國內,下載速度非常慢,把軟件源服務器換成國內源能加速下載軟件包,大幅縮短下載時間,有效提升開發者的幸福感。常用的國內軟件源包括清華源、阿里源等等,這里以阿里源為例,進行軟件源配置。注意這里一定要選Ubuntu 18.04的軟件源。
清華源鏈接:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
阿里源鏈接:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11E2BHIM
3.1.1 輸入sudo su命令并輸入密碼,進入root用戶
3.1.2 備份Ubuntu官方軟件源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
3.1.3 編輯軟件源
vim /etc/apt/sources.list
將您在鏡像站復制的軟件源粘貼在vim文本編輯器中,以阿里源為例。
輸入wq! 進行保存
3.1.4 進行更新
配置好軟件源后,建議進行一次軟件源更新,并更新系統軟件。命令如下:
sudo apt update && apt upgrade -y
等待軟件更新完成即可,具體耗時和網速、磁盤性能等因素有關。
3.2 安裝CANN依賴項
參考鏈接:https://support.huaweicloud.com/instg-cli-cann503-alpha002/atlasdeploy_03_0002.html
3.2.1 安裝系統依賴項
WSL2 Ubuntu 18.04安裝完成后,已安裝的軟件包并不完全包含CANN依賴項,需要執行以下命令,安裝系統依賴項。
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev libncursesw5-dev
3.2.2 安裝Python3.7
由于WSL2 Ubuntu 18.04默認安裝的Python版本為Python3.6,不滿足版本為3.7的要求,需要手動編譯Python3.7并安裝。從更新日志可以看到,在Python3.7.8后不再進行bug修復,僅進行安全性修復。
目前Python3.7的最新版本為3.7.12,經測試該版本可用,建議安裝最新版本。這里以3.7.12為例進行編譯安裝,有特殊需求的開發者可以自行選擇需要的Python3.7版本。
安裝步驟如下:
參考鏈接:https://support.huaweicloud.com/instg-cli-cann503-alpha002/atlasdeploy_03_0022.html
3.2.2.1 下載并解壓Python3.7.12源碼
wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz tar -zxvf Python-3.7.12.tgz
3.2.2.2 配置Python3.7.12編譯
cd Python-3.7.12 ./configure --prefix=/usr/local/python3.7.12--enable-loadable-sqlite-extensions --enable-shared
可以將第二行的命令改為
./configure --prefix=/usr/local/python3.7.12--enable-loadable-sqlite-extensions --enable-shared --enable-optimizations
這樣會啟用Python編譯優化選項,有助于提高Python運行性能,但是加上這個參數后會大幅延長Python編譯時間。
3.2.2.3 編譯安裝Python3.7.12
make -j6 sudo make install
make命令后面的-j參數用于指定編譯線程數,請根據CPU線程數和內存大小合理設置,一般不應超過CPU線程數,而更多的線程數也會提升內存的占用。本次安裝測試環境CPU為六核十二線程,內存16G,線程數設為6較為合適。等待編譯安裝完成。
3.2.2.4 設置Python路徑
分別在root用戶和開發用戶輸入以下命令,編輯.bashrc文件
vim ~/.bashrc
在文件末尾添加以下內容
export LD_LIBRARY_PATH=/usr/local/python3.7.12/lib:$LD_LIBRARY_PATH export PATH=/usr/local/python3.7.12/bin:$PATH
配置效果如下
在root用戶下,執行以下命令,修改Python3.7.12文件夾權限,使所有用戶可以訪問執行Python3.7.12。
chmod -R 777 /usr/local/python3.7.12
安裝完成之后,執行如下命令查看安裝版本,如果返回相關版本信息,則說明安裝成功。
python3 --version pip3 --version
3.2.2.5 設置pip源
將pip源設置為國內源,提升下載速度,這里以華為源為例。
mkdir ~/.pip cd ~/.pip vim pip.conf
修改文件內容為
[global] index-url = https://mirrors.huaweicloud.com/repository/pypi/simple trusted-host = mirrors.huaweicloud.com timeout = 120
3.2.2.6 安裝CANN Python依賴項
輸入以下命令進行安裝
pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests
4. 安裝CANN軟件包
4.1 下載CANN toolkit軟件包
進入CANN社區版官網:https://www.hiascend.com/software/cann/community
選擇x86-64,下載Ascend-cann-toolkit_5.0.3.alpha005_linux-x86_64.run。
此時下載的文件位于Windows下,如何拷貝進Linux呢?微軟考慮到了這一點,Windows下的分區全部掛載在/mnt目錄下,下圖中/mnt下的c文件夾就映射著Windows下的C盤
此時我們輸入以下命令,就可以將Windows下載的安裝包拷貝到Linux下了,這里假設軟件包下載在Windows的桌面上。
cp /mnt/c/Users/DavilSu/Desktop/Ascend-cann-toolkit_5.0.3.alpha005_linux-x86_64.run .
這樣就實現了Windows到Linux的文件拷貝操作。
4.2 安裝CANN toolkit軟件包
登入開發用戶,進入軟件包所在目錄,執行以下命令進行安裝。
./Ascend-cann-toolkit_5.0.3.alpha005_linux-x86_64.run --install
出現這個界面時,CANN toolkit就安裝完成了。
接下來輸入vim ~/.bashrc,在文件末尾加上下面內容,實現打開終端自動配置CANN toolkit路徑
source /home/davilsu/Ascend/ascend-toolkit/set-env.sh
輸入wq!?進行保存。
至此WSL2 Ubuntu18.04 CANN算子開發環境就搭建完成了。
5. 配置Windows下VSCode WSL連接(可選)
上面的步驟已經完成了WSL2 Ubuntu CANN算子開發環境的配置,但WSL默認不會安裝GUI桌面,算子開發工作只能在終端下進行,這并不是非常方便。
這一部分主要介紹VSCode連接WSL2 Ubuntu18.04的步驟,實現在Windows下使用VSCode進行代碼開發。
5.1 下載安裝VSCode
請在Windows環境下載VSCode安裝包,雙擊運行并按照指引進行安裝。
下載連接:https://code.visualstudio.com/
5.2 安裝Remote-WSL插件
安裝完成后,打開VSCode,在擴展商店里搜索Remote-WSL插件并安裝。
安裝完成后,左側功能欄的擴展商店下方會出現一個遠程連接的圖標,點擊后就可以看到剛才配置的Ubuntu 18.04。
點擊連接到WSL的圖標。
Windows下的VSCode就連接到了WSL2 Ubuntu18.04,此時的WSL就等同于一個配置好了CANN開發環境的遠程服務器。
5.3 代碼編寫測試
這里編寫了一個簡單的Add TIK算子用于測試,可以看到tikdb正常運行。
Windows 昇騰
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。