40 Star 30 Fork 343

Ascend / metadef

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

metadef

metadef,即昇腾元数据定义,即相关数据结构以及对外接口定义.

目录结构介绍

metadef
├── error_manager                       #  相关错误码定义
├── exe_graph
|   ├── lowering                        #  执行图构图接口相关实现
|   ├── runtime                         #  执行图执行接口相关实现
├── graph                               #  图相关接口实现,包括图缓存模块、序列化
├── inc
|   ├── common                          #  一些公共头文件
|   ├── exe_graph                       #  执行图头文件
|   ├── external                        #  对外发布的头文件(保证兼容性)
|   ├── graph                           #  图接口相关头文件
|   ├── register                        #  算子注册头文件
├── proto                               #  图相关proto定义
├── register                            #  算子注册实现
├── tests                               #  开发者测试目录

环境准备

在源码编译前,请确保环境满足如下要求:

  • 编译环境已安装CANN开发套件包(Ascend-cann-toolkit_<soc_version>_linux_<arch>),CANN开发套件软件包请从Link获取。支持的操作系统、安装依赖及安装步骤请参见对应的用户手册的“CANN软件包支持的操作系统”与“安装开发环境”章节。

说明: Metadef仓源代码与CANN软件包存在配套关系,源码编译前请获取并安装对应版本的CANN软件包。

  • 源码编译依赖如下依赖,若环境中不存在,请自行安装。
    • gcc:7.5.0版本及以上 (建议7.5.0)
    • cmake:3.20.0版本及以上 (建议3.20.0)
    • compile cache,编译器缓存优化工具,加快二次编译速度
    sudo apt-get install ccache
    • graph-easy (可选)
    sudo apt-get install libgraph-easy-perl

编译第三方开源库

Metadef仓依赖一些第三方开源库, 在正式编译Metadef之前,需要首先完成依赖的三方库编译:

bash build_third_party.sh

此命令下载所有依赖的第三方库源码,并完成完成编译。如果不指定任何选项,上述脚本从gitee下载三方库源代码,完成编译后,二进制生成到./output/third_party目录。您可以通过-h查看脚本选项,选择期望的下载方式和生成路径。该脚本仅需在编译Metadef前调用一次,生成的二进制目录不会被其他脚本删除。

当指定源代码目录为本地目录时,本地目录的组织形式为:

some-path-name
└── libs
    ├── abseil-cpp
    │   └── abseil-cpp-20220623.1.tar.gz
    ├── benchmark
    │   └── v1.5.5.tar.gz
    ├── cares
    │   └── c-ares-cares-1_18_1.tar.gz
    ├── ge_gtest
    │   └── release-1.10.0.tar.gz
    ├── ge_nlohmann_json
    │   └── v3.11.2
    │       └── include.zip
    ├── grpc
    │   └── grpc-v1.41.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
    └── zlib
        └── zlib-v1.2.13.tar.gz

编译

Metadef仓提供一键式编译能力,具体可以通过bash build.sh -h查看:

bash build.sh --ascend_install_path=${CANN_INSTALL_PATH}

--ascend_install_path选项的默认值为/usr/local/Ascend/ascend-tools/latest,编译完成后会在output/package目录下生成CANN-metadef-linux.{x86_64/aarch64}.run

build.sh脚本默认从./output/third_party下查找三方库,若在执行build_third_party.sh时,指定了其他生成三方库的目录,可以通过build.sh --ascend_3rd_lib_path=<指定的三方库路径>选项做配置

本地验证(UT/ST)

Metadef仓提供一键式编译执行开发者测试,详细配置可通过bash tests/run_test.sh -h查看

bash tests/run_test.sh -u --ascend_install_path=${CANN_INSTALL_PATH}

--ascend_install_path选项的默认值为/usr/local/Ascend/ascend-tools/latest

tests/run_test.sh脚本查找三方库的方法与build.sh脚本相同

安装

编译完成后,可通过如下命令安装或回滚:

# 安装:
./CANN-metadef-linux.{x86_64/aarch64}.run --full --quiet --install-path=${CANN_INSTALL_PATH}
# 回滚:
./CANN-metadef-linux.{x86_64/aarch64}.run --rollback --quiet --install-path=${CANN_INSTALL_PATH}

贡献指南

针对Metadef仓,开发者准备本地代码与提交PR时需要重点关注如下几点:

  1. 请输出满足Google编程规范的代码,详细可参见Google 开源项目风格指南
  2. 提交PR时,请按照PR模板仔细填写本次PR的业务背景、目的、方案等信息。
  3. 若您的修改不是简单的bug修复,而是涉及到新增特性、新增接口、新增配置参数或者修改代码流程等,请务必先通过Issue进行方案讨论,以避免您的代码被拒绝合入。若您不确定本次修改是否可被归为“简单的bug修复”,亦可通过提交Issue进行方案讨论。

空文件

简介

Ascend Metadata Definition 展开 收起
C++ 等 5 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/ascend/metadef.git
git@gitee.com:ascend/metadef.git
ascend
metadef
metadef
master

搜索帮助