样例目录
example/ 目录按学习阶段组织,可从快速入门逐步学习到基础能力、高级能力、性能分析和场景化主题。
目录总览
- 0_quickstart:快速入门,包含最基础的 Runtime Hello World、自定义 Kernel
<<<>>>调用、错误处理、系统信息和兼容性主题。 - 1_basic_features:基础特性,覆盖 Context、Device、Stream、Event、Memory。
- 2_advanced_features:高级特性,覆盖 Kernel、Model RI、Callback、Notify、TDT、Label 和内建任务。
- 3_memory_advanced:高级内存管理,覆盖自定义分配器、Host 注册、托管内存、缓存维护与流序内存池主题。
- 4_reliability:可靠性主题,覆盖溢出检测、错误恢复和容错执行。
- 5_performance:性能分析与精度调试,包含 Profiling 和 Adump。
- 6_scenarios:场景化主题,面向训练流水线、多设备推理和容错执行等典型用法。
使用方式
编译运行样例前,请先完成固件、驱动和 CANN 软件包安装,具体操作请参见仓库根目录的 README。
编译运行样例时依赖算子包,请完成Ascend-cann-${soc_version}-ops_${cann_version}_linux-${arch}.run包安装。下载链接
# 确保安装包具有可执行权限
chmod +x Ascend-cann-${soc_version}-ops_${cann_version}_linux-${arch}.run
# 安装命令
./Ascend-cann-${soc_version}-ops_${cann_version}_linux-${arch}.run --install --force --quiet --install-path=${install_path}
# 以950为例
# ./Ascend-cann-950-ops_9.0.0_linux-aarch64.run --install --force --quiet --install-path=${install_path}
- ${soc_version}:表示NPU型号简写,如950等。
- ${cann_version}:表示CANN包版本号。
- ${arch}:表示CPU架构,如aarch64、x86_64。
- ${install_path}:表示指定安装路径,可选,root用户默认安装在
/usr/local/Ascend目录,普通用户默认安装在当前目录。
典型运行步骤如下:
# ${install_root} 替换为 CANN 安装根目录,默认安装在`/usr/local/Ascend`目录
source ${install_root}/cann/set_env.sh
export ASCEND_INSTALL_PATH=${install_root}/cann
# ${ascend_name} 替换为昇腾AI处理器的型号,可通过 npu-smi info 查看 Name 字段并去掉空格获得,例如 ascend910b3
export SOC_VERSION=${ascend_name}
# 部分样例中涉及调用AscendC算子,需配置AscendC编译器 ascendc.cmake 所在路径
export ASCENDC_CMAKE_DIR=${cmake_path}
# 以基础内存样例为例
cd ${git_clone_path}/example/1_basic_features/memory/0_h2h_memory_copy
bash run.sh
请注意:
- 具体运行方式以各样例子目录中的
README.md为准。 - 部分主题目录用于集中说明某类能力,便于按主题查找相关样例。
- 部分样例依赖额外算子包或特定环境能力,请按样例说明准备环境。
- 涉及 AscendC Kernel 的样例还需要提前设置
SOC_VERSION和ASCENDC_CMAKE_DIR。
共享文件
以下目录和文件供多个样例复用,一般无需单独运行:
kernel_func/:Kernel 与部分 Callback 样例复用的 AscendC 核函数源码。utils.h:多个样例共享的日志与错误检查宏。
示例代码说明
所有示例演示了 CANN Runtime API 的典型使用模式。
- 样例代码用于学习和接口理解。
- 为了突出核心流程,部分示例会简化工程化处理。
- 用于生产环境前,请补充完整的错误处理、资源管理和边界检查。