CANN/asc-devkit类型特性样例
type_traits类型特性直调样例【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit概述本样例通过Ascend C编程语言实现了type_traits类型特性用例类型特性接口包括is_void/remove_const/add_const等。使用内核调用符来完成算子核函数在NPU侧运行验证的基础流程给出了对应的端到端实现。本样例支持的产品及CANN软件版本产品CANN软件版本Ascend 950PR/Ascend 950DT CANN 9.1.0Atlas A3 训练系列产品/Atlas A3 推理系列产品 CANN 9.0.0Atlas A2 训练系列产品/Atlas A2 推理系列产品 CANN 9.0.0目录结构├── type_traits │ ├── CMakeLists.txt // 编译工程文件 │ ├── data_utils.h // 数据读入写出函数 │ ├── type_traits.asc // Ascend C算子实现 调用样例 │ └── README.md // 样例介绍功能描述type_traits类型特性接口接口包括is_void/is_integral/is_floating_point/is_array/is_pointer/is_reference/is_const/remove_const/remove_volatile/remove_cv/remove_reference/remove_pointer/add_const/add_volatile/add_cv/add_pointer/add_lvalue_reference/add_rvalue_reference可用于在程序编译时对类型的判断、增加、删除、转换等处理。算子实现kernel实现Ascend C调用各接口打印接口返回值和ascendc_assert判断。调用实现使用内核调用符调用核函数。编译运行在本样例根目录下执行如下步骤编译并执行算子。配置环境变量 请根据当前环境上CANN开发套件包的安装方式配置环境变量。source ${install_path}/cann/set_env.sh说明${install_path}为CANN包安装目录未指定安装目录时默认安装至/usr/local/Ascend下。样例执行在本样例目录下执行如下命令。mkdir -p build cd build; cmake .. -DCMAKE_ASC_ARCHITECTURESdav-2201;make -j; # 默认npu模式 ./demo使用 CPU调试 或 NPU仿真 模式时添加-DCMAKE_ASC_RUN_MODEcpu或-DCMAKE_ASC_RUN_MODEsim参数即可。示例如下cmake -DCMAKE_ASC_RUN_MODEcpu -DCMAKE_ASC_ARCHITECTURESdav-2201 ..;make -j; # cpu调试模式 cmake -DCMAKE_ASC_RUN_MODEsim -DCMAKE_ASC_ARCHITECTURESdav-2201 ..;make -j; # NPU仿真模式注意切换编译模式前需清理 cmake 缓存可在 build 目录下执行rm CMakeCache.txt后重新 cmake。编译选项说明 | 选项 | 可选值 | 说明 | |------|--------|------| |CMAKE_ASC_RUN_MODE|npu默认、cpu、sim| 运行模式NPU 运行、CPU调试、NPU仿真 | |CMAKE_ASC_ARCHITECTURES|dav-2201默认、dav-3510| NPU 架构dav-2201 对应 Atlas A2 训练系列产品/Atlas A2 推理系列产品和 Atlas A3 训练系列产品/Atlas A3 推理系列产品dav-3510 对应 Ascend 950PR/Ascend 950DT |执行结果如下说明执行成功。test pass!【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考