1 Star 0 Fork 393

前尘/metadef

forked from 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_<cann_version>_linux-<arch>)。

    CANN开发套件软件包请从Link获取,支持的安装方式及操作系统请参见配套版本的用户手册

    CANN开发套件包安装命令示例:

    • 使用默认路径安装

      ./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install
      
      • 若使用root用户安装,安装完成后相关软件存储在/usr/local/Ascend/ascend-toolkit/latest路径下。
      • 若使用非root用户安装,安装完成后相关软件存储在$HOME/Ascend/ascend-toolkit/latest路径下。
    • 指定路径安装

      # CANN开发套件包安装命令示例:
      ./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install --install-path=${install_path}
      

    安装完成后,相关软件存储在${install_path}指定路径下。

  • 已安装以下依赖:

  • 源码编译依赖如下依赖,若环境中不存在,请自行安装。

    • 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
    

源码下载

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参数

    在线下载的第三方库源码包有两个来源,分别是giteegithub。当没有指定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_64aarch64

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

更多编译参数可以通过bash build.sh -h查看。

本地验证(UT/ST)

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时需要重点关注如下几点:

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

附录

CLion配置

若开发者使用IDE CLion编译源码并执行测试用例,编译执行前需要进行如配置:

  1. 在菜单栏选择“File -> Settings”,进入“Settings”配置页面。
  2. 在“Settings”窗口左侧选择“Build,Execution,Deployment -> CMake”,进入“CMake”配置界面。
  3. 在“CMake”配置界面进行如下配置。
    • Build type,设置为“GCOV”。
    • CMake options,设置为如下值:
      -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的取值说明请参见配置环境变量

空文件

简介

Ascend Metadata Definition 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bluesky90/metadef.git
git@gitee.com:bluesky90/metadef.git
bluesky90
metadef
metadef
master

搜索帮助