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

华为CANN/opbase OP_OUTSHAPE宏

OP_OUTSHAPE

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

宏功能

针对需要计算结果来确定输出shape的算子,如NonZero算子,该宏用于存放此类算子输出shape的aclTensor。

宏原型

OP_OUTSHAPE(x...)

参数说明

参数输入/输出说明
x...输入包含两部分,第一个参数是存放输出tensor shape的aclTensor,第二个参数是存放需要更新输出shape的tensor索引。

约束说明

只支持存放一个输出tensor shape的Tensor(outShapeTensor), 其对应shape为(9*需要刷新的tensor个数,)。每个输出tensor的shape占9位,其中第一位表示维数,剩下8位表示具体的每个维度的具体值。

调用示例

// 表示算子将输出tensor的shape存放到outShapeTensor中,并且用来更新idx=0的输出tensor的shape OP_OUTSHAPE({outShapeTensor, 0}); // 刷新多个输出tensor的shape的时候,可以参考如下示例,本例中需要更新idx=0,3,4三个输出tensor的shape // host侧 Shape outShapeShape{27}; auto outShapeTensor = executor->AllocTensor(outShapeShape, DataType::DT_INT64, Format::FORMAT_ND); aclnnStatus ret = ADD_TO_LAUNCHER_LIST_AICORE( xxx, OP_INPUT(...), OP_OUTPUT(...), OP_ATTR(...), OP_OUTSHAPE({outShapeTensor, 0}), OP_OUTSHAPE({outShapeTensor, 3}), OP_OUTSHAPE({outShapeTensor, 4}), ); // kernel侧 __aicore__ inline void CopyOutShape(uint64_t dimNums1, uint64_t *dimNums2, uint64_t dimNums3) { LocalTensor<uint64_t> shapeTensor = shapeBuf_.Get<uint64_t>(); shapeTensor.SetValue(0, 1); // 第一个输出tensor的维度信息 shapeTesnor.SetValue(1, dimNums1); // 第一个输出tensor的第一维的shape值 shapeTensor.SetValue(9, 1); // 第二个输出tensor的维度信息 shapeTensor.SetValue(10, *(dimNums2)); // 第二个输出tensor的第一维的shape值 shapeTensor.SetValue(11, *(dimNums2+1)); // 第二个输出tensor的第二维的shape值 shapeTensor.SetValue(18, 1); // 第三个输出tensor的维度信息 shapeTesnor.SetValue(19, dimNums3); // 第三个输出tensor的第一维的shape值 ... DataCopyPad(...); }

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

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

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

相关文章:

  • 2026卖家精灵优惠折扣码更新 跨境新手必看帮你少走弯路 - 李先生sir
  • 企业级AI决策系统实战:从知识图谱到多智能体协作的架构演进
  • 智能游戏助手:解放星穹铁道日常任务的终极效率方案
  • DevChat:AI编程助手如何无缝集成IDE,提升开发效率与代码质量
  • 自动驾驶AI算法演进:从L0到L5的技术跃迁与工程挑战
  • CANN/metadef GenerateTask接口
  • 强力破解Windows热键冲突:Hotkey Detective一键定位占用程序
  • 即梦视频怎么去水印?即梦如何无损下载?2026最新 去水印工具与方法实测指南 - 爱上科技热点
  • 强化学习优化量子反馈控制:从麦克斯韦妖到量子热机设计
  • CANN/driver设备故障查询API
  • 突破性技术方案:MyTV-Android实现安卓低版本系统流畅直播体验架构解析
  • Oumuamua-7b-RP效果展示:温度0.3 vs 1.2下角色性格稳定性对比实测
  • ChatGLM3-6B应用案例:打造个人知识库助手,长文本分析利器
  • CANN/ops-cv aclnn返回码详解
  • 机器学习性能基线:Zero Rule算法原理与Weka实践
  • 上下文向量在NLP中的三大实战应用
  • CANN / community 开源代码片段引入操作指南
  • CANN/cann-learning-hub:AICPU Tiling下沉编程
  • 数字孪生安全:从数据泄露到物理攻击的工业4.0风险全景与防护实践
  • GitHub Profile动态化:用SVG与Twitter API打造个人技术名片
  • 为内部知识库问答系统配置 Taotoken 作为可靠大模型后端
  • CANN/driver DCMI设备cgroup信息获取
  • 2026 大连包包变现实测:五家平台分级,30 年老牌领跑 - 奢侈品回收测评
  • RNN与LSTM序列预测模型实战指南
  • RimSort终极指南:三步告别环世界MOD加载混乱的智能管理器
  • 文本嵌入技术实战:从原理到五大应用场景解析
  • CANN/asc-devkit Abs-15 API文档
  • Taotoken的APIKey管理与访问控制功能切实提升了安全性
  • CANN/pyasc获取特殊基础配置API文档
  • Claude Code 用户如何通过 Taotoken 解决访问不稳定与额度焦虑