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

CANN/ATVOSS临时对象函数方法

PlaceHolderTmpLike

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

功能说明

在Compute表达中,用户定义临时对象的函数方法。

所属头文件链接

/include/expression/expr_template.h

函数原型

template <std::size_t N, typename T = void, typename L> __host_aicore__ constexpr auto PlaceHolderTmpLike(Expression)

参数说明

参数名称参数类型输入/输出数据类型参数说明默认值
N模板参数输入NA临时对象位序,从1开始顺序编号NA
T模板参数输入NA临时对象类型,可以是基础类型和Tensor,如果不传,使用L模板参数的类型void
L模板参数输入NA临时对象按照L指定的对象来生成,L必须是struct Param类型NA

返回值说明

返回值数据类型返回值说明
Expression >返回一个LocalVar表达式对象

约束说明

NA

使用示例

template <typename InputDtype, typename OutputDtype> struct AddSubConfig { struct AddSubCompute { template <template <typename> class Tensor> __host_aicore__ constexpr auto Compute() const { auto in1 = Atvoss::PlaceHolder<1, Tensor<InputDtype>, Atvoss::ParamUsage::IN>(); auto in2 = Atvoss::PlaceHolder<2, Tensor<InputDtype>, Atvoss::ParamUsage::IN>(); auto in3 = Atvoss::PlaceHolder<3, InputDtype, Atvoss::ParamUsage::IN>(); auto out = Atvoss::PlaceHolder<4, Tensor<OutputDtype>, Atvoss::ParamUsage::OUT>(); // 🔥🔥🔥 使用示例 🔥🔥🔥 auto tmp = Atvoss::PlaceHolderTmpLike<1>(in1); // 🔥🔥🔥 使用示例 🔥🔥🔥 return (tmp = in1 + in2; out = tmp - in3); }; }; using ArchTag = Atvoss::Arch::DAV_3510; using BlockOp = Atvoss::Ele::BlockBuilder<AddSubCompute, ArchTag>; using KernelOp = Atvoss::Ele::KernelBuilder<BlockOp>; using DeviceOp = Atvoss::DeviceAdapter<KernelOp>; }; template <typename InputDtype, typename OutputDtype> static void Run() { /* ACL init and stream create */ ... Atvoss::Tensor<InputDtype> in1(deviceIn1, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); Atvoss::Tensor<InputDtype> in2(deviceIn2, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); InputDtype in3 = 5.0; Atvoss::Tensor<OutputDtype> out(deviceOut, {{3, 4, 0, 0, 0, 0, 0, 0}}, 2); auto arguments = Atvoss::ArgumentsBuilder{}.inputOutput(in1, in2, in3, out).attr("dim", 5).build(); using DeviceOp = typename AddSubConfig<InputDtype, OutputDtype>::DeviceOp; DeviceOp deviceOp; deviceOp.Run(arguments, stream); } int main(int argc, char const* argv[]) { Run<float, float>(); return 0; }

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

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

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

相关文章:

  • CANN工具SIG项目
  • 亨得利名表子官方授权服务点全网最全测评:2026年南京/无锡/上海/北京/深圳/杭州门店地址+预约避坑指南,修表人必看! - 亨得利腕表维修中心
  • 【2026年最新】网安学习路线!最详细没有之一!看了这么多分享网安学习路线的一个详细的都没有!
  • 核心概念扫盲:Pawn、PlayerController 和 GameMode
  • Flutter for OpenHarmony番茄工作法学习计时器
  • Go语言怎么做密码加密_Go语言bcrypt密码哈希教程【总结】
  • 【Pocket Flow】源码剖析(一):100 行代码的极简哲学——Node、Flow 与 Shared Store
  • 在Windows终端环境中使用Taotoken CLI管理多个项目的API配置
  • AutoCAD软件许可浪费严重?合规回收闲置许可,共享给同事
  • Spring AI 2.0 开发Java Agent智能体 - 对话与提示词工程(Prompt)
  • 键盘上的麦克风按钮:笔记本静音/开启的终极指南
  • CANN/HCCL Ring集合通信算法
  • LeetCode HOT100 - 子集
  • 2026年5月上海卖金实时行情,川沙城隍庙古北三店报价全知道/瑞鑫奢饰品黄金回收 鸿泰黄金回收 鸿鑫黄金回收
  • CANN基础设施机器人使用指南
  • 三线城市北方县城返乡创业开茶叶店,加盟哪个岩茶品牌靠谱容易盈利回本快品牌推荐白皮书——以溪谷留香为基准样本的下沉市场深度决策指南 - 商业科技观察
  • PyAsc算子开发指南
  • 海量存储芯片现货
  • 火车采集器:深耕15年,零代码全能网页数据采集神器,新手也能轻松玩转!
  • 如何5分钟完成淘金币全任务:终极自动化脚本解放你的双手
  • AI 工具开始收费后:小团队如何判断哪些订阅值得买?
  • KH Coder:无需编程技能也能完成的专业文本挖掘工具
  • eas 热更新相关
  • 亨得利名表子官方授权服务点全网最全测评:2026年最新门店地址、400电话预约避坑指南与真实维修保养体验分享 - 亨得利腕表维修中心
  • CANN驱动AI Core信息获取
  • WarcraftHelper:魔兽争霸3现代兼容性修复与性能优化完全指南
  • 为什么WHERE中的函数调用会引发灾难:揭秘KES与Oracle的函数执行顺序
  • 航材院内部流出!三套工作站黄金配置单,专治VASP算三天、Abaqus总崩溃、AI显存爆,科研党速抄!
  • 三月七小助手:如何5分钟完成《崩坏:星穹铁道》全部日常任务
  • 终极免费替代方案:500KB轻量级工具全面掌控Alienware灯光与散热系统