news 2026/5/9 18:59:33

CANN/ATVOSS设备适配层接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ATVOSS设备适配层接口

DeviceAdapter

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

功能说明

构造device适配层对象,用来桥接host和device。

所属头文件链接

/include/elewise/device/device_adapter.h

函数原型

template <typename KernelOp> class DeviceAdapter{ DeviceAdapter() {}; }

参数说明

参数名称参数类型输入/输出数据类型参数说明默认值
KernelOp模板参数输入NAkernel层的用户静态配置和调度策略NA

返回值说明

返回值数据类型返回值说明
DeviceAdapter返回device适配层对象

约束说明

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 18:58:11

CANN/pto-isa核心类型详解

核心类型详解 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend p…

作者头像 李华
网站建设 2026/5/9 18:57:59

CANN/cann-learning-hub:torch_npu IPC特性详解

1 背景介绍 【免费下载链接】cann-learning-hub CANN 学习中心仓&#xff0c;支持在线互动运行、边学边练&#xff0c;提供教程、示例与优化方案&#xff0c;一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.com/cann/cann-learning-hub IPC&#xff08;Inte…

作者头像 李华
网站建设 2026/5/9 18:55:06

DeepEn2023数据集:边缘AI能耗评估与低功耗模型优化实战指南

1. 项目概述与核心价值最近在边缘AI和可持续计算领域&#xff0c;一个名为DeepEn2023的数据集开始引起不少研究者和工程师的关注。如果你正在做移动设备上的模型部署、嵌入式AI芯片的能效优化&#xff0c;或者关心如何让AI应用更“绿色”&#xff0c;那么这个数据集很可能就是你…

作者头像 李华
网站建设 2026/5/9 18:53:29

鸿蒙PC多端适配的断点设计与布局策略

踩坑记录25&#xff1a;多端适配的断点设计与布局策略 阅读时长&#xff1a;10分钟 | 难度等级&#xff1a;高级 | 适用版本&#xff1a;HarmonyOS NEXT (API 12) 关键词&#xff1a;GridRow、GridCol、断点系统、响应式布局 声明&#xff1a;本文基于真实项目开发经历编写&…

作者头像 李华
网站建设 2026/5/9 18:53:20

CANN/sip CgemmBatched算子

HCgemmBatched 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库&#xff0c;基于华为Ascend AI处理器&#xff0c;专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 …

作者头像 李华