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

CANN/ATVOSS设备适配器运行接口

DeviceAdapter::Run

【免费下载链接】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{ template <typename Args> int64_t Run(const Args& arguments, aclrtStream stream = nullptr) }

参数说明

参数名称参数类型输入/输出数据类型参数说明默认值
Args模板参数输入NA用户的输入参数列表,类型根据用户传入的参数实例化NA
arguments函数形参输入Args用户传入的参数列表NA
stream函数形参输入aclrtStream用户创建的stream流对象nullptr

返回值说明

返回值数据类型返回值说明
int64_tdevice层执行的结果,0:成功,-1:失败

约束说明

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),仅供参考

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

相关文章:

  • Flux2-Klein-9B-True-V2详细步骤:supervisorctl管理服务状态全流程
  • OpenVINO? C# API . 全新发布,基于 AI 大模型的全栈重构,全面进化!
  • 2026年想找靠谱家政?这份持证的西安家政机构推荐别错过! - 品牌企业推荐师(官方)
  • 2026年国内专业美业学校排名分析:3家高行业认可度院校深度解读 - 产业观察网
  • iVersion核心功能解析:从版本检测到用户通知的完整流程
  • AI赋能戏剧治疗:Gemini3.1Pro打造智能情景库
  • 人生第一双高跟鞋排行:轻奢舒适款全维度对比 - 奔跑123
  • 不同专业论文AI率为什么差别大:理工文史各学科AIGC检测差异免费应对策略解读
  • 抖音视频下载终极指南:3分钟掌握无水印保存技巧
  • AI如何重塑运筹学:从参数生成到模型优化的全流程革新
  • ESP-WHO完全指南:10分钟快速上手人脸检测与识别框架
  • 潍坊巴盾劳保安全鞋:专业服务,守护工作安全 - 品牌企业推荐师(官方)
  • 2026年4月控制电缆源头厂家推荐,控制电缆/仪表电缆/耐火电缆,控制电缆生产厂家选哪家 - 品牌推荐师
  • Qwen3-4B-Thinking-Gemini-Distill实战教程:基于thinking标签的API开发规范
  • 2026年防爆电磁阀厂家哪家好 聚焦多行业工程适配需求 适配多场景 - 深度智识库
  • 【2026收藏版】小白程序员必看!AI Agent核心架构拆解
  • DCMM认证已成大数据科技企业投标加分核心资质 - 品牌企业推荐师(官方)
  • AI辅助全栈开发:Next.js+FastAPI+Supabase模板与Cursor规则实践
  • CANN/cann-bench UnsortedSegmentSum 算子 API 描述
  • CANN/cannbot-skills UB缓冲区管理指南
  • 2026年全国高压电磁阀厂家哪家强 适配新能源半导体工程 覆盖多场景 - 深度智识库
  • 实测 Taotoken 在多模型切换下的延迟表现与用量透明度
  • 传统认为团队人数越多接单能力越强,编程统计团队规模,接单量,利润数据,小团队接单利润率远超大型团队。
  • 2026年长三角地区美发学校实力排行解析:主流机构核心实力梳理 - 产业观察网
  • 2026论文AI检测工具推荐:教师批量筛查一键甄别 - 品牌种草官
  • AI专著写作全攻略:优质工具助力,快速打造20万字专著!
  • 2026 干粉砂浆/双轴无重力/腻子粉搅拌机厂家口碑TOP5 破解选型难题 - 品牌企业推荐师(官方)
  • 企业级应用如何通过 Taotoken 统一管理多个 AI 模型的 API 调用
  • CANN/ge GE 图 Dump 格式说明
  • Aimeos Base核心组件解析:深入理解缓存、配置和数据库抽象机制