通过WSL2 Ubuntu18.04搭建CANN算子开发环境
通过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正常运行。
- 点赞
- 收藏
- 关注作者
评论(0)