同步操作将从 Ascend/metadef 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
metadef
,即昇腾元数据定义,即相关数据结构以及对外接口定义.
metadef
├── error_manager # 相关错误码定义
├── exe_graph
| ├── lowering # 执行图构图接口相关实现
| ├── runtime # 执行图执行接口相关实现
├── graph # 图相关接口实现,包括图缓存模块、序列化
├── inc
| ├── common # 一些公共头文件
| ├── exe_graph # 执行图头文件
| ├── external # 对外发布的头文件(保证兼容性)
| ├── graph # 图接口相关头文件
| ├── register # 算子注册头文件
├── proto # 图相关proto定义
├── register # 算子注册实现
├── tests # 开发者测试目录
在源码编译前,请确保环境满足如下要求:
已安装CANN开发套件包(Ascend-cann-toolkit_<cann_version>_linux-<arch>)。
CANN开发套件软件包请从Link获取,支持的安装方式及操作系统请参见配套版本的用户手册。
CANN开发套件包安装命令示例:
使用默认路径安装
./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install
/usr/local/Ascend/ascend-toolkit/latest
路径下。$HOME/Ascend/ascend-toolkit/latest
路径下。指定路径安装
# CANN开发套件包安装命令示例:
./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install --install-path=${install_path}
安装完成后,相关软件存储在${install_path}
指定路径下。
已安装以下依赖:
源码编译依赖如下依赖,若环境中不存在,请自行安装。
# 安装命令示例:
sudo apt-get install ccache
graph-easy
(可选)# 安装命令示例:
sudo apt-get install libgraph-easy-perl
git clone https://gitee.com/ascend/metadef.git
配置ASCEND_INSTALL_PATH
环境变量,指定Ascend-cann-toolkit
安装后相关软件存储路径。
Ascend-cann-toolkit
使用root用户、默认路径安装场景,配置示例:
export ASCEND_INSTALL_PATH=/usr/local/Ascend/ascend-toolkit/latest
Ascend-cann-toolkit
使用非root用户、默认路径安装场景,配置示例:
export ASCEND_INSTALL_PATH=$HOME/Ascend/ascend-toolkit/latest
Ascend-cann-toolkit
指定路径安装场景,若安装路径为${install_path},配置示例:
export ASCEND_INSTALL_PATH=${install_path}/ascend-toolkit/latest
说明:
若开发者使用IDE CLion进行后续的源码编译与测试用例执行,编译执行前需要进行CLion的CMake配置,详细请参见CLion配置。
Metadef
仓依赖一些第三方库, 在正式编译之前,需要先完成三方库的编译操作,其命令为:
bash build_third_party.sh --output_path=${THIRD_LIB_PATH}
此命令下载所有依赖的第三方库源码包,然后执行编译操作,并将编译结果复制到输出目录。
third_party_pkg_path
参数
如果指定了此参数,则脚本会从其指定的目录下取第三方库源码包,否则就会在线下载。
enable_github
参数
在线下载的第三方库源码包有两个来源,分别是gitee
和github
。当没有指定third_party_pkg_path
参数时,脚本就会在线下载第三方库源码包,此时如果指定了enable_github
参数,就会从github
下载,否则从gitee
下载。
output_path
参数
编译结果目录由此参数指定,其默认值为./output/third_party
。编译第三方库的输出结果目录可以长期保存,不需要每次重新编译,除非所依赖的第三方库有变更。
您可以通过bash build_third_party.sh -h
命令查看脚本选项的详细描述。
当指定的源码目录为本地目录时,要求其目录结构为:
some-path-name
└── libs
├── abseil-cpp
│ └── abseil-cpp-20220623.1.tar.gz
├── benchmark
│ └── v1.5.5.tar.gz
├── boost
│ └── boost_1_82_0.tar.gz
├── cares
│ └── c-ares-cares-1_18_1.tar.gz
├── ge_gtest
│ └── release-1.11.0.tar.gz
├── ge_nlohmann_json
│ └── v3.11.2
│ └── include.zip
├── grpc
│ └── grpc-v1.41.1.tar.gz
├── libjpeg-turbo
│ └── 2.1.1.tar.gz
├── openssl
│ └── openssl-3.0.9.tar.gz
├── protobuf
│ └── v3.13.0.tar.gz
├── pybind11
│ └── v2.10.3.tar.gz
├── re2
│ └── re2-2021-11-01.tar.gz
├── symengine
│ └── v0.10.1.zip
└── zlib
└── zlib-v1.2.13.tar.gz
Metadef
提供一键式编译能力,可通过如下命令进行编译:
bash build.sh --ascend_install_path=${ASCEND_INSTALL_PATH} --ascend_3rd_lib_path=${THIRD_LIB_PATH}
--ascend_install_path
选项的默认值为/usr/local/Ascend/ascend-toolkit/latest
,编译完成后会在output/package
目录下生成CANN-metadef-linux.<arch>.run
软件包,其中<arch>
表示操作系统架构,取值包括x86_64
与aarch64
。
build.sh
脚本默认从./output/third_party
下查找三方库,若在执行build_third_party.sh
时,指定了其他生成三方库的目录,可以通过build.sh --ascend_3rd_lib_path=<指定的三方库路径>
选项做配置。
更多编译参数可以通过bash build.sh -h
查看。
Metadef
仓提供一键式编译执行开发者测试,详细配置可通过bash tests/run_test.sh -h
查看
bash tests/run_test.sh -u --ascend_install_path=${ASCEND_INSTALL_PATH} --ascend_3rd_lib_path=${THIRD_LIB_PATH}
--ascend_install_path
选项的默认值为/usr/local/Ascend/ascend-toolkit/latest
tests/run_test.sh
脚本查找三方库的方法与build.sh
脚本相同
编译完成后,可通过如下命令安装:
./CANN-metadef-linux.<arch>.run --full --install-path=${install_path}/ascend-toolkit
若您想回退安装的自定义metadef
软件包,恢复到安装Ascend-cann-toolkit
后的状态,可执行如下命令。
./CANN-metadef-linux.<arch>.run --rollback --install-path=${install_path}/ascend-toolkit
针对Metadef
仓,开发者准备本地代码与提交PR时需要重点关注如下几点:
若开发者使用IDE CLion编译源码并执行测试用例,编译执行前需要进行如配置:
-DENABLE_OPEN_SRC=True
-DENABLE_METADEF_UT=True
-DENABLE_METADEF_ST=True
-DASCEND_INSTALL_PATH=${ASCEND_INSTALL_PATH}
-DASCEND_3RD_LIB_PATH=${THIRD_LIB_PATH}
ASCEND_INSTALL_PATH
的取值说明请参见配置环境变量。此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。