CANN/asc-tools快速入门指南
快速入门【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools️ 环境准备根据本地是否有NPU设备和使用目标选择对应的环境准备方式环境情况用于社区体验 / 算子开发CANN商用/社区版用于生态开发CANN master无NPU设备云开发环境云开发环境 手动下载安装CANN master有NPU设备基于CANN镜像的DockerDev Container 手动下载安装CANN master[!TIP] 选择建议为了保障开发体验环境的质量推荐用户基于容器化技术完成环境准备。如不希望使用容器也可在带NPU设备的主机上完成环境准备请参考CANN软件安装指南 - 在物理机上安装。针对仅体验编译安装本开源仓 仿真环境运行算子的用户不要求主机带NPU设备可跳过安装NPU驱动和固件直接安装CANN包请参考下载安装CANN包。1️⃣ 云开发环境对于无NPU设备的用户可使用云开发环境提供的NPU计算资源进行开发体验云开发环境提供了在线直接运行的昇腾ARM架构环境。目前仅适用于Atlas A2系列产品提供两种接入方式WebIDE开发平台即一站式开发平台提供网页版的便携开发体验。VSCode IDE支持远程连接云开发环境提供VSCode强大插件市场的支持。进入开源仓Gitcode页面单击云开发按钮使用已认证过的华为云账号登录。若未注册或认证请根据页面提示进行注册和认证。根据页面提示创建并启动云开发环境单击连接 WebIDE 或 Visual Studio Code进入云开发环境开源项目的资源默认在/mnt/workspace目录下。[!NOTE] 使用说明环境默认安装了最新的商用版NPU驱动和固件、CANN包源码下载时注意与软件配套。如需下载特定版本的CANN包请参考下载安装CANN包。更多关于WebIDE开发平台的介绍请参考云开发平台介绍。Huawei Developer Space插件为VSCode IDE接入云开发环境提供技术支持。2️⃣ 基于CANN镜像的Docker对于有NPU设备的用户可使用此环境进行开发体验。确认主机环境是否已安装NPU驱动和固件使用npu-smi info能够输出NPU相关信息如没有安装请参考CANN软件安装指南 - 在物理机上安装。是否已安装Docker使用docker --version能够输出Docker版本信息如没有安装请参考Docker官方安装指南。下载CANN镜像通过以下命令从昇腾镜像仓库拉取已预集成CANN镜像# 命令格式为docker pull ascend/cann:tag # 示例拉取ascend/cann:tag为9.0.0-beta.2的CANN社区包 docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-beta.2-910b-ubuntu22.04-py3.11[!NOTE] 使用说明镜像默认安装了对应版本的CANN包源码下载时注意与软件配套。镜像文件比较大正常网速下下载时间约为510分钟请您耐心等待。运行Docker拉取镜像后需要以特定参数启动以便容器内能访问宿主机的NPU设备。docker run --name cann_container \ --ipchost --nethost --privileged \ --device /dev/davinci0 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /home/your_host_dir:/home/your_container_dir \ -it ascend/cann:tag bash参数说明注意事项--name cann_container为容器指定名称便于管理自定义--ipchost与宿主机共享IPC命名空间NPU进程间通信共享内存、信号量所需---nethost使用宿主机网络栈避免容器网络转发带来的通信延迟---privileged赋予容器完整设备访问权限NPU驱动正常工作所需---device /dev/davinci0将宿主机的NPU设备卡映射到容器内可指定映射多张NPU设备卡必须根据实际情况调整davinci0对应系统中的第0张NPU卡。请先在宿主机执行npu-smi info命令根据输出显示的设备号如NPU 0,NPU 1来修改此编号--device /dev/davinci_manager映射NPU设备管理接口---device /dev/devmm_svm映射设备内存管理接口---device /dev/hisi_hdc映射主机与设备间的通信接口--v /usr/local/dcmi:/usr/local/dcmi挂载设备容器管理接口DCMI相关工具和库--v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi挂载npu-smi工具使容器内可以直接运行此命令来查询NPU状态和性能信息-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/将宿主机的NPU驱动库映射到容器内--v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info挂载驱动版本信息文件--v /etc/ascend_install.info:/etc/ascend_install.info挂载CANN软件安装信息文件--v /home/your_host_dir:/home/your_container_dir挂载宿主机的一个路径到容器中自定义-it-i交互式和-t分配伪终端的组合参数-ascend/cann:tag指定要运行的Docker镜像请确保此镜像名和标签tag与您通过docker pull拉取的镜像完全一致bash容器启动后立即执行的命令-3️⃣ DevContainer对于有NPU设备的用户推荐使用此环境进行生态开发者贡献。DevContainer基于VS Code Dev Containers通过仓库内.devcontainer配置自动构建一致的容器化开发环境内置conda、Python等开发工具链。与宿主机的NPU驱动共享设备访问适合需要编译源码、运行UT、向本仓贡献代码的场景。详细说明请参考.devcontainer/README.md。[!NOTE] 使用说明 DevContainer仅挂载宿主机的NPU驱动只读CANN toolkit和ops包需在容器启动后手动安装请参考下载安装CANN包。 下载安装CANN包CANN包分为CANN toolkit包和CANN ops包。下载CANN包下载CANN商用/社区版如果您想体验官网正式发布的CANN包请访问CANN安装部署-昇腾社区获取对应版本CANN包。下载CANN master如果您想体验CANN master请访问CANN master obs镜像网站下载日期最新的CANN包。安装CANN包安装CANN toolkit包 (必选)chmod x Ascend-cann-toolkit_${cann_version}_linux-$(uname -m).run ./Ascend-cann-toolkit_${cann_version}_linux-$(uname -m).run --install --install-path${install_path}安装CANN ops包 (可选)chmod x Ascend-cann-${soc_name}-ops_${cann_version}_linux-$(uname -m).run ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-$(uname -m).run --install --install-path${install_path}[!IMPORTANT] 安装说明 examples中部分算子样例的编译运行依赖本包若想完整体验样例编译运行流程建议安装此包。参数说明${cann_version}CANN包版本号${soc_name}NPU型号如910b${install_path}安装路径toolkit包和ops包需相同。默认root用户/usr/local/Ascend非root用户$HOME/Ascend✅ 环境验证[!NOTE] 使用前须知 云开发环境和基于CANN镜像的Docker已预装CANN包可直接执行以下命令验证DevContainer和手动安装用户请在安装CANN包后执行。验证环境和驱动是否正常检查NPU设备# 运行npu-smi若能正常显示设备信息则驱动正常 npu-smi info检查CANN包安装# 查看CANN包的version字段提供的版本信息默认路径安装。WebIDE场景下请将/usr/local替换为/home/developer cat /usr/local/Ascend/cann/$(uname -m)-linux/ascend_toolkit_install.info cat /usr/local/Ascend/cann/$(uname -m)-linux/ascend_ops_install.info⚙️ 环境变量配置[!NOTE] 使用前须知 云开发环境和基于CANN镜像的Docker已自动配置环境变量可跳过此步骤。按需选择合适的命令使环境变量生效# 默认路径安装以root用户为例非root用户将/usr/local替换为${HOME} source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 # source ${install_path}/cann/set_env.sh 源码编译步骤 下载源码可以使用以下两种方式下载请选择其中一种进行源码准备。若您的编译环境可以访问网络建议通过以下命令行方式下载下载时间较长但步骤简单。# 开发环境非root用户命令行中执行以下命令下载源码仓。git_clone_path为用户自己创建的某个目录。 cd ${git_clone_path} git clone https://gitcode.com/cann/asc-tools.git注如果需要切换到其它tag版本以v0.5.0为例可执行以下命令。git checkout v0.5.0若您的编译环境无法访问网络可以通过压缩包方式下载下载时间较短但步骤稍微复杂。注如果需要下载其它版本代码请先请根据前置条件说明进行asc-tools仓分支切换。下载压缩包命名跟tag/branch相关此处以master分支为例下载的名字将会是asc-tools-master.zip# 1. asc-tools仓右上角选择 【下载ZIP】。 # 2. 将ZIP包上传到开发环境中的普通用户某个目录中【例如${git_clone_path}/asc-tools-master.zip】。 # 3. 开发环境中执行以下命令解压zip包。 cd ${git_clone_path} unzip asc-tools-master.zip并且需要同样操作下载依赖的msot、mssanitizer、msopprof、msopgen、mskpp、mskl、msdebug代码仓的master分支的压缩包即点击各仓链接右上角选择【下载ZIP】。同时需要根据实际环境下载对应Release版本的闭源cpudebug包cpudebug x86_64包、cpudebug aarch64包以及开源第三方软件依赖列表如下开源软件版本下载地址makeself2.5.0makeself-2.5.0.tar.gzboost1.87.0boost-1_87_0.tar.gzgoogletest1.14.0googletest-1.14.0.tar.gzmockcpp2.7mockcpp-2.7.tar.gzmockcpp_patch2.7mockcpp-2.7.patchcann-cmakemaster-003cmake-master-003.tar.gz其中对于依赖的开源第三方软件提供一键式下载脚本install_dep_tar.py用户可以通过执行如下命令下载所有开源第三方软件依赖。python3 install_dep_tar.py --dest_dir${your_3rd_party_path} # 其中${your_3rd_party_path}为下载开源第三方软件的存放路径安装依赖[!NOTE] 使用前须知 如果您使用容器化技术容器中已为您安装好依赖可跳过此步骤。以下所列仅为本开源仓源码编译用到的依赖其中python、gcc、cmake的安装方法请参见配套版本的用户手册选择安装场景后参见“安装CANN 安装依赖”章节进行相关依赖的安装。python 3.7.0gcc 7.3.0 / g 7.3.0 (注意要求gcc与g版本一致)cmake 3.16.0ccache 4.6.1建议版本release-v4.6.1x86_64环境下载链接aarch64环境下载链接。x86_64环境安装步骤如下# 在准备安装的路径下创建buildtools目录如有则忽略 # 这里以安装路径/opt为例对安装命令进行说明 mkdir /opt/buildtools # 切换到安装包下载路径将ccache解压到安装路径 tar -xf ccache-4.6.1-linux-x86_64.tar.xz -C /opt/buildtools chmod 755 /opt/buildtools/ccache-4.6.1-linux-x86_64/ccache mkdir -p /usr/local/ccache/bin # 建立软链接 ln -sf /opt/buildtools/ccache-4.6.1-linux-x86_64/ccache /usr/local/bin/ccache ln -sf /opt/buildtools/ccache-4.6.1-linux-x86_64/ccache /usr/local/ccache/bin/ccache # 将ccache添加到环境变量PATH export PATH/usr/local/ccache/bin:$PATHaarch64环境安装步骤如下下载依赖项下载zstd和hiredis。编译安装# 在准备安装的路径下创建buildtools目录如有则忽略 # 这里以安装路径/opt为例对安装命令进行说明 mkdir /opt/buildtools # 切换到安装包下载路径将zstd解压到安装路径 tar -xf zstd-1.5.0.tar.gz -C /opt/buildtools cd /opt/buildtools/zstd-1.5.0 make -j 24 make install cd - # 切换到安装包下载路径将hiredis解压到安装路径 tar -xf hiredis-1.0.2.tar.gz -C /opt/buildtools cd /opt/buildtools/hiredis-1.0.2 make -j 24 prefix/opt/buildtools/hiredis-1.0.2 all make prefix/opt/buildtools/hiredis-1.0.2 install cd - # 切换到安装包下载路径将ccache解压到安装路径 tar -xf ccache-4.6.1.tar.gz -C /opt/buildtools cd /opt/buildtools/ccache-4.6.1 mkdir build cd build/ cmake -DCMAKE_BUILD_TYPERelease -DZSTD_LIBRARY/usr/local/lib/libzstd.a -DZSTD_INCLUDE_DIR/usr/local/include -DHIREDIS_LIBRARY/usr/local/lib/libhiredis.a -DHIREDIS_INCLUDE_DIR/usr/local/include .. make -j 24 make install mkdir -p /usr/local/ccache/bin # 建立软链接 ln -sf /usr/local/bin/ccache /usr/local/ccache/bin/ccache # 将ccache添加到环境变量PATH export PATH/usr/local/ccache/bin:$PATHlcov 1.13可选仅执行UT时依赖以Ubuntu系统为例x86_64环境执行以下命令安装apt install lcov以Euler系统为例aarch64环境执行以下命令安装yum install lcovpytest 8.3.2可选仅执行UT时依赖执行以下命令安装pip3 install pytestcoverage 4.5.4可选仅执行UT时依赖执行以下命令安装pip3 install coveragegoogletest可选仅执行UT时依赖建议版本release-1.11.0下载googletest源码后执行以下命令安装mkdir temp cd temp # 在googletest源码根目录下创建临时目录并进入 cmake .. -DCMAKE_CXX_FLAGS-fPIC -D_GLIBCXX_USE_CXX11_ABI0 make make install # root用户安装googletest # sudo make install # 非root用户安装googletest编译安装编译本开源仓提供一键式编译安装能力进入本开源仓代码根目录执行如下命令cd asc-tools bash build.sh --pkg若您的编译环境无法访问网络您需要在联网环境中下载上述依赖代码仓的压缩包、闭源压缩包及开源软件压缩包并手动上传至您的编译环境中。您需要在编译环境中新建一个{your_3rd_party_path}目录来存放依赖代码仓、闭源及第三方开源软件的压缩包。mkdir -p {your_3rd_party_path}创建好目录后将下载好的所依赖的压缩包上传至目录{your_3rd_party_path}后可以使用如下命令进行编译bash build.sh --pkg --cann_3rd_lib_path{your_3rd_party_path}编译完成后会在build_out目录下生成cann-asc-tools_cann_version_linux-.run软件包。[!CAUTION] 编译报错可能 本仓依赖其他CANN开源仓暂不支持独立升级须搭配对应版本的CANN包进行编译master分支 -- 使用最新的CANN master包特定Tag -- 使用对应版本的官网正式发布的CANN包安装在开源仓根目录下执行下列命令根据设置的环境变量路径将编译生成的run包安装到CANN包的装包路径同时会覆盖原CANN包中的Ascend C内容。# 切换到run包生成路径下 cd build_out # 默认路径安装run包 ./cann-asc-tools_cann_version_linux-arch.run --full # 指定路径安装run包 ./cann-asc-tools_cann_version_linux-arch.run --full --install-path${install_path}UT测试可选在开源仓根目录执行下列命令之一将依次批跑tests目录下的用例得到结果日志用于看护编译是否正常。bash build.sh -t或bash build.sh --test若您的编译环境无法访问网络您需要在联网环境中下载上述依赖代码仓的压缩包及开源软件压缩包并手动上传至您的环境中。 同时相比于编译UT不下载Release版本的cpudebug包而是需要根据实际环境下载对应Debug版本的闭源cpudebug包cpudebug x86_64包、cpudebug aarch64包Debug版本相比Release版本更方便进行调试。您需要在环境中新建一个{your_3rd_party_path}目录来存放依赖代码仓、闭源及第三方开源软件的压缩包。mkdir -p {your_3rd_party_path}创建好目录后将下载好的所依赖的压缩包上传至目录{your_3rd_party_path}后可以使用如下命令进行UT测试bash build.sh --test --cann_3rd_lib_path{your_3rd_party_path}UT测试显示覆盖率依赖项lcov 1.14执行命令bash build.sh --test --cov【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考