当前位置: 首页 > news >正文

CANN/asc-devkit SIMD向量函数Dump接口

SimdVF Dump接口功能说明

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

概述

本样例介绍simd_vf侧asc_dump系列接口使用方法,在vector函数中通过asc_dump_ubufasc_dump_regasc_dump等接口实现UB和寄存器数据的可视化打印。核函数从二进制文件读取输入数据,执行Adds计算后写出输出数据,通过比较输出与真值进行校验。

支持的产品

  • Ascend 950PR/Ascend 950DT

目录结构介绍

├── simd_vf_dump │ ├── scripts │ │ ├── gen_data.py // 输入数据和真值数据生成脚本 │ │ └── verify_result.py // 验证输出数据和真值数据是否一致 │ ├── CMakeLists.txt // 编译工程文件 │ ├── data_utils.h // 数据读入写出函数 │ └── simd_vf_dump.asc // Ascend C样例实现&调用样例

样例描述

  • 样例功能:

    使用vector编程模式,展示simd_vf侧asc_dump系列接口的基本使用方法。核函数通过ReadFile读取二进制输入数据,使用asc_vf_call调用simd_vf函数进行dump打印,执行Adds计算后通过WriteFile写出二进制输出数据,最终通过校验脚本比对输出与真值。

    1. asc_dump_ubuf<T>-打印UB数据
    2. asc_dump_reg<T>-打印寄存器数据
    3. asc_dump<T>-打印UB/Reg数据(通用接口)
  • simd_vf dump接口用法:

    接口地址类型示例
    asc_dump_ubuf<T>__ubuf__asc_dump_ubuf<float>(input, desc, dump_size);
    asc_dump_reg<T>Regasc_dump_reg<float>(input, desc, dump_size);
    asc_dump<T>__ubuf__/ Regasc_dump<float>(input, desc, dump_size);

    参数说明:

    • 模板参数T:指定数据类型(float/half等)
    • input:UB数据地址或Reg寄存器对象
    • desc:打印控制描述符
    • dump_size:单次dump的数据元素个数
  • 调用实现

    __global__ __vector__核函数内使用asc_vf_call<FuncName>()调用simd_vf函数完成dump打印,随后通过AscendC::Adds执行计算并将结果写回GM。Host侧通过ReadFile/WriteFile完成二进制数据的读写。

编译运行

  • 配置环境变量 在本样例根目录下执行如下步骤,编译并执行样例。 请根据当前环境上CANN开发套件包的安装方式,选择对应配置环境变量的命令。

    • 默认路径,root用户安装CANN软件包

      source /usr/local/Ascend/cann/set_env.sh
    • 默认路径,非root用户安装CANN软件包

      source $HOME/Ascend/cann/set_env.sh
    • 指定路径install_path,安装CANN软件包

      source ${install_path}/cann/set_env.sh
  • 样例执行

    mkdir -p build && cd build; # 创建并进入build目录 cmake -DCMAKE_ASC_ARCHITECTURES=dav-3510 ..;make -j; # 编译工程 python3 ../scripts/gen_data.py # 生成测试输入数据 ./demo # 执行编译生成的可执行程序,执行样例 python3 ../scripts/verify_result.py output/output.bin output/golden.bin # 验证输出结果是否正确,确认算法逻辑正确
  • 编译选项说明

    选项可选值说明
    CMAKE_ASC_ARCHITECTURESdav-3510(默认)NPU架构:dav-3510对应Ascend 950PR/Ascend 950DT
  • 执行结果 最终执行结果如下,说明精度对比成功。

    test pass!

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/918810/

相关文章:

  • HarmonyOS SnapshotUtil 窗口截图与系统截屏监听:snapshot() 和 onSnapshotListener 详解
  • 创业者必看:柳州螺蛳粉技术培训哪家靠谱?实力全测评 - 资讯纵览
  • 树莓派Pico与BMP180传感器:从I2C通信到微型气象站搭建实践
  • 5分钟实战:draw.io桌面版深度构建指南,从源码到跨平台安装包
  • SmolLM2-1.7B-Instruct部署优化:NPU与CPU环境下的性能调优技巧
  • 灵达科技亮相天津智博会,存储互联+高速互联双赛道
  • 告别密密麻麻!ECharts饼图图例太多怎么优雅分页?scroll配置全解析
  • 提升用户体验:gh_mirrors/li/live2d_demo事件触发与交互设计指南
  • 2026南充瑜伽普拉提培训机构深度评测报告 - 资讯纵览
  • 三步轻松备份微信聊天记录:你的数字记忆保险箱 [特殊字符]️
  • ControlNet-XS with Stable Diffusion XL完全指南:从安装到生成高质量图像的简单教程
  • xss-filters实战教程:保护HTML数据与属性的10个最佳实践
  • 186、运动控制中的行业应用:无人机飞控
  • 三协议合一:如何用LuckyLilliaBot打造你的全能QQ机器人助手
  • ACE-Step 1.5 XL Turbo商业授权指南:合法合规使用AI生成音乐的终极攻略
  • 鸣潮自动化工具终极指南:如何实现后台智能战斗与资源收集
  • 基于ESP8266与PI算法的公交车智能限速系统设计与实现
  • DLSS Swapper技术架构深度解析:跨平台游戏DLSS文件管理系统的实现原理
  • 别再让远处的模型糊成一片了!在Unity/UE4里正确开启Mipmap的保姆级教程
  • 日喀则本地专业防水TOP5靠谱推荐:家里漏水不用愁,免费上门不求人。本地最新防水企业资讯:专业师傅持证上门,收费透明无隐藏收费,质保5-10年,售后有保障 - 企业资讯
  • SANA-WM模型架构深度解析:2.6B参数扩散变换器的设计哲学
  • 如何零成本将3D视频变2D?VR-Reversal让你告别VR设备也能享受沉浸体验
  • 房地产AI合规红线清单(含住建部新规+GDPR+生成式AI备案要求),错过即停用
  • 紧急通知:NIST AI RMF 1.1已强制要求部署文档包含风险溯源字段——Gemini文档编写的最后72小时合规补救方案
  • CatPPT部署实战:从本地环境到云端服务的完整配置指南
  • 西安本地专业防水TOP5靠谱推荐:家里漏水不用愁,免费上门不求人。本地最新防水企业资讯:专业师傅持证上门,收费透明无隐藏收费,质保5-10年,售后有保障 - 企业资讯
  • 别再手动调顶点!Unity程序化生成Mesh的5个实战场景(附完整代码)
  • Cowabunga Lite 终极指南:免越狱iOS深度定制完整解决方案
  • Fetch GitHub Hosts终极指南:免费快速解决GitHub访问难题
  • 终极Windows驱动管理指南:如何用Driver Store Explorer彻底解决系统卡顿问题