CANN/ge源码构建指南
源码构建【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge1. 环境准备在源码编译前请先完成基础环境搭建。具体操作请参见快速安装。2. 环境验证安装完CANN包后需验证环境是否正常。# 查看CANN Toolkit的version字段提供的版本信息默认路径安装arch表示CPU架构aarch64或x86_64。WebIDE场景下请将/usr/local替换为/home/developer。 cat /usr/local/Ascend/cann/arch-linux/ascend_toolkit_install.info # 查看CANN ops的version字段提供的版本信息默认路径安装opsname表示待查询的ops子包的名称请用户根据实际安装路径替换。WebIDE场景下请将/usr/local替换为/home/developer。 cat /usr/local/Ascend/cann/arch-linux/ascend_ops_install.info3. 环境变量配置根据实际场景选择合适的命令# 默认路径安装以root用户为例非root用户将/usr/local替换为${HOME} source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 source ${install_path}/cann/set_env.sh4. 源码编译4.1 下载源码开发者可通过如下命令下载本仓源码# 下载项目源码以master分支为例 git clone https://gitcode.com/cann/ge.git4.2 安装依赖安装依赖以下所列为GE源码编译用到的依赖请注意版本要求如果遇到安装问题请尝试切换镜像源。[!NOTE] 注意 如使用镜像方式进行项目体验所有依赖已包含在init_env.sh中可跳过此安装依赖步骤。GCC 7.3.xPython3 3.9.x除了CANN开发套件包需要的Python依赖外还需要额外安装coverage并将Python3的bin路径添加到PATH环境变量中命令示例如下pip3 install coverage # 修改下面的PYTHON3_HOME为实际的PYTHON安装目录 export PATH$PATH:$PYTHON3_HOME/binCMake 3.16.0 建议使用3.20.0版本bash 5.1.16ccache/asan/autoconf/automake/libtool/gperf/lcov/libasan/patch/perl/graph-easy(其中graph-easy可选)# Ubuntu操作系统安装命令示例如下其他操作系统依赖可能有部分差异请自行安装 # asan以gcc 7.5.0版本为例安装的是libasan4其他版本请安装对应版本asan sudo apt-get update sudo apt-get install cmake ccache bash lcov libasan4 autoconf automake libtool gperf libgraph-easy-perl patch perl安装Python其他依赖## 进入项目源码根目录执行安装命令 cd ge pip3 install -r requirements.txt检查编译环境安装完成后建议执行环境检查脚本确认当前环境是否满足编译要求。bash scripts/check_env.sh检查结果说明如下状态含义处理建议[PASS]检查通过无需处理[WARNING]非关键依赖缺失或版本存在偏差建议修复不影响核心编译[ERROR]关键依赖缺失或版本不兼容必须修复否则无法编译[!NOTE] 注意 环境检查脚本中所有的检查项和版本约束严格来源于 docs/build.md 和 requirements.txt如文档和依赖更新请同步修改脚本。4.3 编译[!NOTE] 注意 若您的编译环境无法访问网络由于无法通过git指令下载代码须在联网环境中下载源码及三方库依赖后手动上传至目标环境参见离线编译指导。 若您的编译环境可以访问网络通过git指令下载代码后编译过程中将自动下载开源第三方软件。若您的编译环境可以访问网络或已经完成离线编译指导GE提供一键式编译能力进入代码仓根目录可通过如下命令进行编译bash build.sh --pkg_type--pkg_type可选表示子包类型取值包括ge_compiler、ge_executor与dflow不同编译参数编译不同子包不设置则同时编译三种子包。更多编译参数可以通过bash build.sh -h查看编译成功后会在build_out目录下生成cann-component_version_arch.run软件包。component表示子包名称取值包括ge-compiler、ge-executor与dflow-executor。version表示版本号。arch表示操作系统架构取值包括x86_64与aarch64。4.4 本地验证UT/ST[!NOTE] 注意 若您的编译环境无法访问网络请确保已经完成了4.3 编译章节中的离线编译指导。编译完成后用户可以进行开发者测试。编译执行UT测试用例#编译执行所有的UT测试用例 bash tests/run_test.sh --ut #编译执行特定的UT测试用例推荐 bash tests/run_test.sh --ut${TARGET}--ut必选可以指定${TARGET}编译特定对象的ut测试用例取值可通过bash tests/run_test.sh -h查看。编译执行ST测试用例#编译执行所有的ST测试用例 bash tests/run_test.sh --st #编译执行特定的ST测试用例推荐 bash tests/run_test.sh --st${TARGET}--st必选可以指定${TARGET}编译特定对象的st测试用例取值可通过bash tests/run_test.sh -h查看。统计代码覆盖率:使用tests/run_test.sh脚本的-c参数可以在测试用例运行过程中生成代码覆盖率统计文件。前置条件确保lcov工具已正确安装编译运行环境上的gcc和gcov必须是配套版本使用方法bash tests/run_test.sh -c [其他参数]输出位置生成的覆盖率文件位于代码根目录下的cov/目录中。执行指定用例执行完成UT/ST后可以通过直接执行测试可执行文件进行单独测试。前置条件已经执行了UT/ST对应的测试命令并正确生成了测试可执行文件。使用方法示例已经执行了bash tests/run_test.sh --utge_common并希望单独执行验证ut_libge_multiparts_utest# 测试UT/ST会对部分依赖so进行打桩处理需要清除LD_LIBRARY_PATH和ASCEND_OPP_PATH环境变量避免宿主机已安装的 CANN/Ascend 环境干扰测试 unset LD_LIBRARY_PATH unset ASCEND_OPP_PATH ./tests/ge/ut/ge/ut_libge_multiparts_utest # 可以通过 --gtest_list_tests 查看包含的单用例并通过 --gtest_filter 参数执行单用例清理产物UT/ST测试用例编译输出目录为build_ut和build_st如果想清除历史编译记录可执行如下操作rm -rf build_ut/ build_st/ output/ build/ build_out/ cov/[!NOTE]说明tests/run_test.sh脚本支持的详细命令参数可通过bash tests/run_test.sh -h查看。4.5 安装与卸载安装本地验证完成后可执行如下命令安装编译生成的GE软件包执行安装命令时请确保安装用户对软件包具有可执行权限。./cann-component_version_arch.run --full --install-path${install_path}[!CAUTION]注意此处的安装路径无论默认还是指定需与前面安装toolkit包时的路径保持一致。安装完成后用户编译生成的GE软件包会替换已安装CANN开发套件包中的GE相关软件。cann-dflow-executor_version_arch.run软件包仅在使用dflow特性时需要若仅使用GE图编译和执行功能可选择不安装。该包中含有cann-udf-compat.tar.gz(UDF兼容升级包)会在业务启动时加载至Device侧加载过程中驱动默认会进行安全验签以确保包的可信性。开发者通过本仓源码自行编译产生的cann-udf-compat.tar.gz不含签名头因此必须关闭驱动的安全验签机制才能使用。关闭验签方式关闭验签功能依赖Ascend NPU驱动软件包Ascend HDK 25.5.T2.B001及以上版本可以通过该Ascend HDK配套的npu-smi工具查询版本和关闭验签详见查询基本信息设置自定义验签能力使能状态设置验签模式命令文档需要以root用户在物理机上执行由于权限问题WebIDE暂不支持。以device 0为例 其中 -i 后面的参数是device idnpu-smi info # 查询基本信息包含驱动版本npu-smi set -t custom-op-secverify-enable -i0-d 1 # 使能自定义验签npu-smi set -t custom-op-secverify-mode -i0-d 0 # 设置成关闭验签模式卸载若您想卸载安装的cann-component_version_arch.run软件包可执行如下命令。./cann-component_version_arch.run --uninstall --install-path${install_path}执行时需要将上述命令中的软件包名称替换为实际的自定义cann-component_version软件包名称。安装完成后可以参考样例执行运行样例。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考