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.0 |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | >= CANN 9.0.0 |
| Atlas 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_ARCHITECTURES=dav-2201;make -j; # 默认npu模式 ./demo使用 CPU调试 或 NPU仿真 模式时,添加
-DCMAKE_ASC_RUN_MODE=cpu或-DCMAKE_ASC_RUN_MODE=sim参数即可。示例如下:
cmake -DCMAKE_ASC_RUN_MODE=cpu -DCMAKE_ASC_ARCHITECTURES=dav-2201 ..;make -j; # cpu调试模式 cmake -DCMAKE_ASC_RUN_MODE=sim -DCMAKE_ASC_ARCHITECTURES=dav-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),仅供参考