现如今RISC-V软件生态正在建设中,难免会出现大量常用软件包无法直接方便使用的情况。本文就教大家如何在RISC-V环境中安装PyTorch。 系统环境如图所示: CPU型号为SOPHON SG2042,RV64GC架构,支持V拓展,64核心,主频2.0GHz。 相关工具链版本如下:
使用OpenEuler的dnf软件包管理器安装,命令如下:
sudo dnf install python3-{hypothesis,psutil,pyyaml,requests,sympy,filelock,networkx,jinja2,fsspec,packaging,numpy,venv}
使用以下命令创建虚拟环境:
cd; python3 -m venv --system-site-packages venv
其中,--system-site-packages
选项意为继承系统Python环境,从而使用全局环境的PyPI包。
使用 以下命令激活所创建的环境
source ~/venv/bin/activate
也可将其放入~/.bashrc
中,使之登陆时自动激活
激活venv环境后,使用pip安装其他依赖项:
pip install expecttest types-dataclasses lark optree
我们提供了两种安装PyTorch的方法:源码安装和Wheel安装。
从我们的仓库下载适用于RISC-V架构的PyTorch Wheel包:
- GitHub发布包:https://github.com/xforcevesa/pytorch-riscv64-oe24/releases/tag/2.3.0-alpha
- Gitee发布包:https://gitee.com/xforcevesa/pytorch-riscv64-oe24/releases/tag/2.3.0-alpha
下载后,将其上传至服务器,并安装到环境中:
source ~/venv/bin/activate
pip install torch-2.3.0a0+gitunknown-cp311-cp311-linux_riscv64.whl
后面是为从源码安装的同学准备的,若已有wheel,可直接跳过这一步。
我们推荐安装PyTorch 2.3.0版本。首先下载源码(这一过程可先在本地进行然后上传到服务器):
wget https://github.com/pytorch/pytorch/releases/download/v2.3.0/pytorch-v2.3.0.tar.gz
解压它:
tar xvf pytorch-v2.3.0.tar.gz
cd pytorch-v2.3.0/
执行以下操作,更新cpuinfo
:
cd third_party/
rm cpuinfo/ -rf
git clone https://github.com/sophgo/cpuinfo.git
cd ..
然后更改以下内容:
aten/src/ATen/CMakeLists.txt
将语句:if(NOT MSVC AND NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
替换为:if(FALSE)
。caffe2/CMakeLists.txt
将语句:target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main)
替换为:target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 gtest_main)
test/cpp/api/CMakeLists.txt
在语句下:add_executable(test_api ${TORCH_API_TEST_SOURCES})
添加:target_compile_options(test_api PUBLIC -Wno-nonnull)
做好更改后保存,若是在本地进行更改请将更改后的源码上传至服务器。 撰写构建脚本:
#!/bin/bash
source ~/venv/bin/activate
export USE_CUDA=0 # RISC-V架构服务器无法使用CUDA
export USE_DISTRIBUTED=0 # 不支持分布式
export USE_MKLDNN=0 # 并非英特尔处理器,故不支持MKL
export MAX_JOBS=5 # 编译进程数,根据自己实际需求进行更改
python3 setup.py develop --cmake
将其保存为build.sh
于服务器上的pytorch-v2.3.0/
目录下。
执行此脚本:
bash build.sh
其将自动完成构建。构建时间很长,本人在此环境使用5进程的情况下构建时长达两三小时,可挂tmux
或screen
,此二者若使用需自行使用dnf包管理器进行安装。
若安装过程中不存在报错,那么安装过程算告一段落。以下为检验测试: 若按如图所示操作可得到相应输出,则PyTorch安装成功。