尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
cann/asc-devkit:gather_ld_reg样例
gather_ld_reg样例概述本样例基于Reg编程接口实现将离散数据从UB(Unified Buffer)搬入到RegTensor(Reg矢量计算基本单元)的功能支持两种场景通过 CMake 编译参数SCENARIO_NUM选择场景。SCENARIO_NUM搬入场景1Gather从UB按索引将单点数据收集到RegTensor2GatherB从UB按索引将DataBlock大小的数据收集到RegTensor本样例支持的产品及CANN软件版本产品CANN软件版本Ascend 950PR/Ascend 950DT CANN 9.1.0目录结构介绍├── reg_load_gather │ ├── scripts │ │ ├── gen_data.py // 输入数据和真值数据生成脚本 │ ├── CMakeLists.txt // 编译工程文件 │ ├── data_utils.h // 数据读入写出函数 │ ├── gather_ld_reg.asc // AscendC样例实现 调用样例 │ └── README.md // 样例介绍样例描述样例功能根据索引从源数据中离散收集元素到目的地址。场景1Gather模式使用Gather接口从UB按元素索引收集数据到RegTensor按元素收集dst[i] src[index[i]]源数据量为1024个元素索引数据量为128个元素输出数据量为128个元素。样例规格样例类型(OpType)AIV样例样例输入nameshapedata typesrc[1, 1024]halfindex[1, 128]uint16样例输出dst[1, 128]half核函数名gather_ld_reg样例实现 GatherVF函数内先通过LoadAlign加载索引数据到indexReg再调用Gather接口从源地址按索引收集数据到dstReg最后通过StoreAlign将结果写回UB。调用实现 使用内核调用符调用核函数启动1个核。场景2GatherB模式使用GatherB接口按32字节DataBlock收集源数据量为1024个元素索引数据量为8个元素对应8个DataBlock输出数据量为128个元素。样例规格样例类型(OpType)AIV样例样例输入nameshapedata typesrc[1, 1024]halfindex[1, 8]uint32样例输出dst[1, 128]half核函数名gather_ld_reg样例实现 GatherBVF函数内先通过LoadAlign加载索引数据到indexReg再调用GatherB接口按DataBlock从源地址收集数据到dstReg最后通过StoreAlign将结果写回UB。调用实现 使用内核调用符调用核函数启动1个核。编译运行在本样例根目录下执行如下步骤编译并执行样例。配置环境变量 请根据当前环境上CANN开发套件包的安装方式配置环境变量。source ${install_path}/cann/set_env.sh说明${install_path}为CANN包安装目录未指定安装目录时默认安装至/usr/local/Ascend下。样例执行在本样例目录下执行如下命令。SCENARIO_NUM1 # 选择执行场景1Gather2GatherB mkdir -p build cd build; # 创建并进入build目录 cmake -DSCENARIO_NUM$SCENARIO_NUM -DCMAKE_ASC_ARCHITECTURESdav-3510 ..;make -j; # 编译工程默认npu模式 python3 ../scripts/gen_data.py -scenarioNum $SCENARIO_NUM # 生成测试输入数据 ./demo # 执行编译生成的可执行程序执行样例使用 CPU调试 或 NPU仿真 模式时添加-DCMAKE_ASC_RUN_MODEcpu或-DCMAKE_ASC_RUN_MODEsim参数即可。示例如下cmake -DSCENARIO_NUM$SCENARIO_NUM -DCMAKE_ASC_RUN_MODEcpu -DCMAKE_ASC_ARCHITECTURESdav-3510 ..;make -j; # cpu调试模式 cmake -DSCENARIO_NUM$SCENARIO_NUM -DCMAKE_ASC_RUN_MODEsim -DCMAKE_ASC_ARCHITECTURESdav-3510 ..;make -j; # NPU仿真模式注意切换编译模式或场景前需清理 cmake 缓存可在 build 目录下执行rm CMakeCache.txt后重新 cmake。编译选项说明选项可选值说明SCENARIO_NUM1、2样例执行场景场景1Gather模式、场景2GatherB模式CMAKE_ASC_RUN_MODEnpu默认、cpu、sim运行模式NPU 运行、CPU调试、NPU仿真CMAKE_ASC_ARCHITECTURESdav-3510NPU 架构dav-3510 对应 Ascend 950PR/Ascend 950DT执行结果执行结果如下说明精度对比成功。test pass!创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

掌握LZ-String压缩算法:JavaScript数据压缩的5大实战技巧

掌握LZ-String压缩算法:JavaScript数据压缩的5大实战技巧

掌握LZ-String压缩算法:JavaScript数据压缩的5大实战技巧 【免费下载链接】lz-string LZ-based compression algorithm for JavaScript 项目地址: https://gitcode.com/gh_mirrors/lz/lz-string LZ-String是一个基于LZ77压缩算法的高效JavaScript库&#xff…

📅 2026/8/24 2:35:39
RimWorld终极角色定制指南:如何用EdB Prepare Carefully打造完美殖民者

RimWorld终极角色定制指南:如何用EdB Prepare Carefully打造完美殖民者

RimWorld终极角色定制指南:如何用EdB Prepare Carefully打造完美殖民者 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 厌倦了随机生成的殖民者无法满足你的…

📅 2026/9/13 2:33:42
CANN/asc-devkit:自定义算子工程多Vendor并行编译、打包和部署样例

CANN/asc-devkit:自定义算子工程多Vendor并行编译、打包和部署样例

自定义算子工程多 Vendor 并行编译、打包和部署样例 概述 本样例展示如何在一个顶层 CMake 工程中,使用 ExternalProject_Add 并行编译两个独立自定义算子工程: add_custom(AddCustom)leaky_relu_custom(LeakyReluC…

📅 2026/8/24 2:35:39
MORE NEWS

更多资讯

📰

Yolo 小白入门 70:封装 FastAPI 推理接口——从 best.pt 到可调用服务

Yolo 小白入门 70:封装 FastAPI 推理接口——从 best.pt 到可调用服务 [!NOTE] 你现在位于《Yolo 全速入门到精通【持续更新中】》的 第七章 推理工程化。这一篇不追求堆满参数,而是带你交付“FastAPI推理服务”的最小可验证闭环,并能说清它在数据、模型与业务之间的位置。…

📰

MySQL连接假活报错:The last packet sent successfully解析与根治方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

低代码平台落地指南:技术管理者如何选型、治理与量化价值

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

微信聊天记录导出指南:用 WeChatMsg 本地导出 HTML、Word 与 CSV 文档

微信聊天记录导出指南:用 WeChatMsg 本地导出 HTML、Word 与 CSV 文档 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tr…

📰

SQL中UNION与UNION ALL的区别:去重逻辑、性能差异与实战写法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Navicat试用期重置风险与合规数据库工具选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬