news 2026/5/9 23:38:38

CANN/atvoss参数构建器属性方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/atvoss参数构建器属性方法

ArgumentsBuilder::attr

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

功能说明

用户侧属性对象构造方法,支持用户传入host侧的一些属性参数,这里传入的属性参数目前是提供给scheduleConfig的计算过程中使用。属性采用key-value键值对。

所属头文件链接

/include/utils/arguments/arguments.h

函数原型

struct ArgumentsBuilder { template<typename Key, typename Value> constexpr auto attr(Key key, Value value) const }

参数说明

参数名称参数类型输入/输出数据类型参数说明默认值
Key模板参数输入NA属性主键类型,根据用户传入的实参key类型实例化NA
Value模板参数输入NA属性值类型,根据用户传入的实参value类型实例化NA
key函数形参输入Key用户传入的属性主键NA
value函数形参输入Value用户传入的属性值NA

返回值说明

返回值数据类型返回值说明
ArgumentsBuilderImpl返回参数构建器对象

约束说明

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>(); return (out = in1 + in2 - 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 23:37:35

react 单向数据流理解

在 React 里&#xff0c;“单向数据流&#xff08;One-Way Data Flow&#xff09;” 是最核心的思想之一。简单理解&#xff1a;数据只能从父组件流向子组件&#xff0c;不能反过来直接修改。一、先用一句话理解React 中&#xff1a;父组件 state -> 子组件 props -> 页面…

作者头像 李华
网站建设 2026/5/9 23:35:32

Hitboxer:如何用3种智能模式解决游戏按键冲突问题

Hitboxer&#xff1a;如何用3种智能模式解决游戏按键冲突问题 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的游戏对抗中&#xff0c;明明按下了正确的按键组合&#xff0c;角色却像被冻住一样…

作者头像 李华
网站建设 2026/5/9 23:35:31

JupyterLab零基础实操指南:从安装到交互式图表全流程

1. 这不是“又一个Jupyter教程”&#xff0c;而是一份能让你今天下午就跑通第一个交互式分析流程的实操手册如果你刚在数据科学、机器学习、教学演示或科研复现场景里听到“JupyterLab”这个词&#xff0c;甚至被同事一句“你装好JupyterLab了吗&#xff1f;我们用它跑模型”问…

作者头像 李华
网站建设 2026/5/9 23:34:32

基于Docker Compose构建开源漏洞靶场:从原理到实战部署

1. 项目概述&#xff1a;一个为安全研究量身定制的开源靶场如果你是一名网络安全爱好者、渗透测试学习者&#xff0c;或者正在备考OSCP、eJPT这类实战认证&#xff0c;那么你一定对“靶场”这个概念不陌生。简单来说&#xff0c;靶场就是一个安全的、合法的环境&#xff0c;让你…

作者头像 李华
网站建设 2026/5/9 23:30:31

竞品分析(结合完美日记 × 花西子报告)

作为初学者&#xff0c;结合文档分析每一步的作用&#xff0c;先讲清楚概念&#xff0c;并附上完美日记和花西子的例子&#xff0c;帮助大家理解竞品分析&#xff08;结合完美日记 花西子报告&#xff09;一、分析目的没有目的的分析是瞎看&#xff0c;先定目标才能决定看什么…

作者头像 李华