0.背景
官方虽然提供了源码编译文档,但是没有提供容器环境的编译环境,无法有效隔离。另外,官方文档中源码编译流程在910b环境下存在一些问题,不能直接完成编译,需要对源码做一些修改。
1.基础环境准备,把mindformers的镜像作为基础镜像,这样可以免去python,conda的安装过程。
镜像名称:swr.cn-central-221.ovaijisuan.com/mindformers/mindformers1.0_mindspore2.2.11:aarch_20240125
2.源码下载,gitee clone mindspore,切换到2.2.12分支;
源码编译依赖cann、驱动固件。他们直接存在版本依赖关系。其中驱动固件智能宿主机安装,cann可以挂载到容器内。因此mindspore版本需要与宿主机驱动版本对应。当前宿主机版本支持mindspore2.2.12.
3.基础依赖安装
a. 容器启动,需要挂载驱动/usr/local/Ascend/drivers
b. 配置环境变量(否则会找不到cann的so包):. /usr/local/Ascend/ascend-toolkit/set_env.sh
c. cmake配置设置,
vim ./cmake/ascend_variables.cmake
# CANN packages
set(ASCEND_CANN_RUNTIME_PATH ${ASCEND_PATH}/ascend-toolkit/latest/lib64)
set(ASCEND_CANN_AICPU_KERNEL_PATH ${ASCEND_PATH}/ascend-toolkit/latest/opp/built-in/op_impl/aicpu/aicpu_kernel)
e. 其他依赖安装
pip install wheel pip install -U setuptools
git安装,apt-get install git-lfs;git lfs install;
flex安装,apt-get install flex
tclsh安装,apt-get install tclsh
NUMA安装,apt-get install libnuma-dev
apt-get install gnupg2;
apt-get install autoconf;版本2.69
libtool 版本2.4.2
apt-get install software-properties-common; Fix add-apt-repository: command not found Error.
apt-get install lsb-release
4. 开始编译
cd mindspore bash build.sh -e ascend -S on -j16