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

CANN/asc-devkit绕过DCache读取GM数据

ReadGmByPassDCache(ISASI)

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

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

头文件路径为:"basic_api/kernel_operator_scalar_intf.h"

不经过DCache从GM地址上读数据。

函数原型

template <typename T> __aicore__ inline T ReadGmByPassDCache(__gm__ T* addr)

参数说明

表1模板参数说明

参数名描述
T操作数的数据类型。

表2接口参数说明

参数名输入/输出含义
addr输入源GM地址。

数据类型

支持的数据类型为int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t。

返回值说明

源GM地址上的数据。

约束说明

调用示例

if (blockIdx == 0) { // 先写入被依赖数据,再通过DataSyncBarrier等待DDR访问完成。 AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(srcGm) + 1, DATA_VALUE); // DataSyncBarrier<DDR>阻塞后续GM写,确保上一条GM写对其他核可见。 AscendC::DataSyncBarrier<AscendC::MemDsbT::DDR>(); // 最后写入同步标记,block 1读到该标记后即可安全读取srcGm[1]。 AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(srcGm), SYNC_FLAG); } if (blockIdx == 1) { while (true) { __gm__ T *addr = const_cast<__gm__ T *>(srcGlobal.GetPhyAddr()); // 轮询GM第0个元素,等待block 0写入同步标记。 T flagValue = AscendC::ReadGmByPassDCache<T>(addr); if (flagValue == SYNC_FLAG) { // DataSyncBarrier保证同步标记之前的srcGm[1]写入已完成。 T dataValue = AscendC::ReadGmByPassDCache<T>(addr + 1); AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(dstGm), 2 * dataValue); return; } } }

完整样例请参考DataSyncBarrier样例。

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

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

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

相关文章:

  • 完全掌控你的微信聊天记录:本地化保存与智能分析工具
  • Windows鼠标指针方案制作教程:从Deltarune Aqua主题到完整光标包
  • 淮北收金不套路璟安黄金奢品回收带6家店秤准价高省心 - 新芸鼎珠宝首饰
  • 法律AI与提示词工程:技术挑战与应用实践
  • 2026年沈阳少儿编程机构挑选攻略 小卯编程及头部机构实测盘点 - 每天一杯纯牛奶
  • 2026 南京数码设备回收机房服务器回收实测,本地靠谱回收商家榜单测评 - LYL仔仔
  • 终极指南:在macOS上完美使用Xbox控制器的完整解决方案
  • 突破性AI视频剪辑方案:如何用FunClip实现智能语音识别驱动的精准剪辑
  • 3步掌握pip-autoremove:智能清理Python依赖的终极指南
  • R3nzSkin国服特供版:英雄联盟零风险换肤技术深度解析
  • CANN/Ascend C标量计算函数GetSFFValue
  • FPGA二进制转BCD码的移位加三算法实现与优化
  • Rusted PackFile Manager:终极《全面战争》模组制作指南,5步从新手变专家
  • 文件扩展名:技术原理、安全风险与实用管理技巧
  • 国内门禁考勤系统公司 用户力荐 - mypinpai
  • 如何永久保存微信聊天记录?WeChatMsg完整指南帮你轻松备份和分析
  • 云南私人定制六天行程真实记录:花费明细+3个选择复盘 - 老金2026
  • 全国大学生电子设计竞赛(六)--从基础到前沿:整流技术实战选型与效率优化
  • Unity3D 4.5离线安装包与确定性部署教程
  • 智能体编程:从代码补全到自主开发的范式转变
  • CSS自定义字体与性能优化实战指南
  • Scroll Reverser终极指南:三步彻底解决Mac多设备滚动混乱问题
  • AI Toolkit采样策略优化:三步解决图像生成质量与效率的平衡难题
  • 代餐粉、代餐奶昔代加工:解码健康食品产业新范式 - mac天空
  • Redis 5分钟快速部署:四大主流方式实操指南
  • MSP432 快速开发指南:如何解决XDS110驱动安装后的常见连接问题
  • 2026年小娃科技等医疗器械工厂18650/21700多并多串聚合物电芯定制厂家挑选攻略 - 每天一杯纯牛奶
  • 2026年口碑好的悬崖秋千制造厂家实力与用户口碑 - mypinpai
  • 手机号码定位终极指南:5分钟学会如何快速查询电话号码归属地位置
  • openEuler服务能力参考:5大基础服务详解与实施要点