windows11安装wsl2(linux)+VScode+ miniconda+TVM+python环境部署
本人在读穷学生,受设备限制,只能在自己的笔记本上的wsl下配置TVM环境,尝试跑一些demo。配置历时好几天,全程没有熟手帮忙,期望给其他小伙伴避坑,建议不要一上来就照着blog配置,多浏览几篇博客,再下手。
在wsl上运行 TVM demo 环境配置
第一次安装,失败
1. Windows11 D盘安装wls(linux)
参考链接:windows11安装wsl 跳过C盘安装
-
开启Windows的wsl与虚拟平台
-
以管理员身份打开powershell下载ubuntu20.04
在D盘创建一个文件夹,如Linux;
Win+X 以管理员身份 打开powershell;
输入命令行D:
,直接跳转到D盘;
再输入命令行cd Linux
,进入子目录;
输入以下命令行 ,此命令行在cmd 无效,下载需10分钟左右;
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
备注:
也可以直接从文件路径直接输入powershell打开
3. 解压并安装
逐行运行以下命令
Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe
几分钟后,输想要的用户名和密码(用户名要小写)
4. 安装后测试
测试
wsl -l -v
关闭
wsl --shutdown
重新打开cmd,输入wsl
,可直接跳转ubuntu系统
2. 安装vscode并连接到WSL2
参考链接:安装vscode并连接到WSL2
- 下载vscode
我的vscode提前安装好了,所以此步跳过。 - 安装 wsl扩展插件
- 远程链接
点击左下角的绿色 ><,选择New WSL Windows,弹出新的vscode窗口
- 修改权限
提权,方便直接使用vscode编辑文件,777仅仅意味着将所有权利授予所有用户
sudo chmod 777 /etc/apt/sources.list
- 添加清华镜像
网上教程很多
3. wsl 安装miniconda
miniconda 相比于anaconda更为精简。安装较为简单,直接参考别的blog。
参考链接:wsl中安装miniconda
4. wls安装TVM
接下来的安装就比较费事了,按照网上的blog,出现了一系列的问题。
参考blog
WSL环境安装TVM:主要流程和依赖库等参考此blog,但是具体实施细节有差异
4.1 安装依赖库
记得关闭全局weipin
注意,下面的依赖库中没有安装 cmake,因为直接安装版本比较低,后面的安装要求CMake > 3.18
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential libedit-dev libxml2-dev
备注:以下命令安装后,版本过低
sudo apt install cmake
4.2 从源码安装cmkae
备注: cmake版本过低,卸载
sudo apt autoremove cmake
参考1,重点是流程 Linux 安装 CMake
参考2,重点可以学习cmake原理 ubuntu18.04下–CMake教程
预编译二进制下载过慢,所以采用源码安装,源码安装就是编译时太慢。
-
下载源码
官网下载cmake-3.24.3.tar.gz ,如图红色方框,
备注:sh文件安装,没有尝试过 -
解压并配置
cmd进入到下载的目录
tar -zxvf cmake-3.22.3.tar.gz -C <目标路径>
切换到 CMake 源目录并执行 bootstrap 脚本
cd cmake-3.22.3.tar.gz
配置
./bootstrap --parallel=32 #(可选)后续make时可以并行编译
./bootstrap --prefix=/usr/local/cmake #添加安装位置
- 编译
make -j 6 #6核并行编译
- 安装
make install
可以尝试 make install -j 6
ln -s /usr/local/bin/cmake /usr/bin/cmake
#软连接 ln [original filename] [link name]
- 测试
更改别名之类的,可以不需要
cmake -version
4.3 从源码安装LLVM
按照此blog中,从pre-build版本安装,后面的cmake ..
报错
寻找原因:
(1) 失败1:修改(USE_LLVM OFF) 的位置应该是cmake/config.cmake,而不是build/config.cmake,不报错了,直接编译通过,但是在make -j4时出错。
(2) 成功:原因(1)是错误的,仔细查看红字上方的报错,发现是没有lib,动态链接库。因此倒退回上一步安装此链接步骤1,下载的pre-build可能缺少我所需要的lib库
因此,采用源码编译
参考1:Ubuntu 18.04 安装Clang/LLVM 11
- 下载源码
到官网直接下载 LLVM各版本的源码、预编译二进制
或者在wsl中输入
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-11.0.0.src.tar.xz.sig
- 解压并进入
tar xvf llvm-11.0.0.src.tar.xz -C <目标目录>
# 进入解压后的目录
cd llvm-11.0.0.src
创建一个新的目录,用于存放 Clang/LLVM 编译的结果
mkdir build
cd build
- 编译并安装
使用 cmake 编译 Clang/LLVM
cmake ..
make -j 6
swap空间不足
https://www.linuxidc.com/Linux/2010-09/28915.htm
https://blog.csdn.net/vincentuva/article/details/83111447
还是有问题
make install -j 6
vim
4.4 安装TVM
- 获取源码
加快git 下载速度技巧:
打开weipin,选择常规,点击Port的那个端口号,点击"CMD",此时已复制代理地址,
打开cmd,输入
set http_proxy=http://我的IP:端口号 & set https_proxy=http://我的IP:端口号
下载TVM
git clone --recursive https://github.com/apache/tvm tvm
- 源码编译
解压到某个特定位置,
切换目录
cd tvm
mkdir build
复制
cp cmake/config.cmake build
- 修改 build/config.cmake
参考 blog
(1)修改 build/config.cmake 以添加 set(USE_LLVM /path/to/your/llvm/bin/llvm-config),该操作主要是绑定LLVM 后端 ,主要是将llvm-config 文件的绝对路径,添加至 USE_LLVM 属性。
(2)PyTorch 的用户建议设置 set(USE_LLVM “/path/to/llvm-config --link-static”) 和 set(HIDE_PRIVATE_SYMBOLS ON) 以避免 TVM 和 PyTorch 使用的不同版本的 LLVM 之间潜在的符号冲突。
cd build
cmake ..
make -j4
make install
```## 5. 安装ffmpeg
主要流程参考 [ffmpeg安装 ](https://blog.csdn.net/lucky_mmg/article/details/123874216)
添加路径不可以有空格
```bash
export PATH=$PATH:/mnt/~/ffmpeg/bin # (定位到FFmpeg文件夹即可,如果不知道FFmpeg文件夹所在位置,可以使用pwd命令查看)
第二次安装 失败
主要参考 服务器(CentOS7)上安装 TVM0.9 + python3.7
1. 查看环境依赖库、下载源码
打开wsl,创建 python=3.8.2
conda create -n tvmBuild python=3.8.2
查看目前版本
cmake /3.24.3
gcc /9.4.0
Ubuntu/20.04
llvm 未安装
2,安装llvm
centos7编译安装llvm
wget 下载过慢,直接用链接在浏览器下载
mkdir llvm-8.0.0
cd llvm-8.0.0
wget http://releases.llvm.org/8.0.0/llvm-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/cfe-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/clang-tools-extra-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/compiler-rt-8.0.0.src.tar.xz
解压
mv cfe-8.0.0.src clang
mv clang/ llvm-8.0.0.src/tools/
mv clang-tools-extra-8.0.0.src extra
mv extra/ llvm-8.0.0.src/tools/clang/
mv compiler-rt-8.0.0.src compiler-rt
mv compiler-rt llvm-8.0.0.src/projects/
配置并编译安装
mkdir build-8.0.0
cd build-8.0.0
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../llvm-8.0.0.src/
make -j 4
出现警告
最终报错 make: *** [Makefile:152:all] Error 2
https://www.bilibili.com/read/cv13148974/ 出处:bilibili
参考 https://blog.csdn.net/hans774882968/article/details/127043163
降低g++,gcc 版本
参考 https://www.bilibili.com/read/cv13148974/
尝试直接
sudo apt install llvm
退回到cmake … 重新编译
build/config.cmake 352 行
libbacktrace
第三次安装 成功
LLVM下载
使用预编译安装
sudo tar xvf clang+llvm-11.0.0-rc5-x86_64-linux-gnu-ubuntu-20.04.tar.xz
mv clang+llvm-11.0.0-rc5-x86_64-linux-gnu-ubuntu-20.04 llvm-11
export PATH=$PATH:/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin"
linux 配置环境变量,直接用export是临时设置,重启后无法识别
改用vim
vim ~/.bashrc
export PATH=/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin:$PATH
source ~/.bashrc
添加好环境变量后,which 查看/llvm-config
/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin/llvm-config
vim 编辑
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main
shell执行
sudo apt update
sudo apt install clang-11
编译TVM
出现以下问题
参考此篇blog
重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!
重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!
重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!
安装tvm,用vim .bashrc配置环境没有作用,直接用以下命令,从build目录退出到tvm目录
cd ..
cd python
#确认python子环境是否激活为tvmBuild,不要再base当中使用
conda activate tvmBuild
python setup.py install --user
安装依赖包
conda install numpy decorator attrs # 必须安装
conda install tornado psutil xgboost cloudpickle #选择安装
测试环境
python
import tvm
from tvm import relay
打开vscode测试,成功
更多推荐
所有评论(0)