news 2026/5/27 17:39:11

CANN/ops-tensor 空后处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-tensor 空后处理

Block Epilogue Empty

【免费下载链接】ops-tensorops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor

代码位置

功能说明

空后处理组件,用于不支持后处理操作的矩阵乘 Kernel。作为BlockEpilogue的默认实现,满足 Kernel 模板参数要求但不执行任何实际计算。

继承自:Block Epilogue 基础框架

特殊约束

用途限制

仅用于不支持后处理的 Kernel,作为模板参数占位。

Kernel 兼容性

仅支持 Basic Kernel:

using BlockEpilogue = Blaze::Gemm::Block::BlockEpilogueEmpty; using MatmulKernel = Blaze::Gemm::Kernel::KernelMatmulBasic< ProblemShape, BlockMmad, BlockEpilogue, BlockScheduler>;

不支持 StreamK Kernel(StreamK Kernel 需要BlockEpilogueStreamK)。

无实际计算

所有成员函数均为空实现,不执行任何操作:

  • Run():直接返回
  • operator():直接返回或调用Run()(空)

参数兼容

提供多种调用接口以匹配 Kernel 模板要求,但参数均无实际用途。

特殊数据结构

Arguments

struct Arguments { Arguments() = default; };

说明:空参数结构体,无任何成员。

Params

struct Params { Params() = default; };

说明:空参数结构体,无任何成员。

特殊成员方法

构造函数

__aicore__ inline BlockEpilogueEmpty()

功能:构造 BlockEpilogueEmpty 对象(空实现)。

Run函数

__aicore__ inline void Run() { return; // 直接返回,不执行任何操作 }

功能:执行后处理操作(空实现)。

operator函数(参数版本)

__aicore__ inline void operator()(Arguments const& params) { Run(); // 调用空的 Run() }

功能:执行后处理操作(参数版本)。 说明:参数params无实际用途,仅满足接口要求。

operator函数(Block版本)

__aicore__ inline void operator()( BlockShape const& blockShape, BlockCoord const& blockCoord, int64_t dstStartOffset = 0, int64_t srcStartOffset = 0) { return; // 直接返回,不执行任何操作 }

功能:执行后处理操作(Block 坐标版本)。 说明:所有参数均无实际用途,仅满足接口要求。

调用示例

在 Kernel 模板中使用

// 定义 BlockEpilogue using BlockEpilogue = Blaze::Gemm::Block::BlockEpilogueEmpty; // 组装 Kernel using MatmulKernel = Blaze::Gemm::Kernel::KernelMatmulBasic< ProblemShape, BlockMmad, BlockEpilogue, BlockScheduler>;

实例化与调用(可选)

BlockEpilogue epilogue; // 以下调用均无实际效果 epilogue.Run(); epilogue({}); epilogue(blockShape, blockCoord, 0, 0);

设计说明

为什么需要 BlockEpilogueEmpty

  1. 模板参数要求KernelMatmulBasic模板需要BlockEpilogue参数
  2. 接口一致性:保持与其他 Epilogue 组件(如 StreamK)相同的接口
  3. 扩展性:未来可替换为实际的后处理组件(如 ReLU、Add 等)
  4. 零开销:空实现不会引入额外计算开销

性能影响

影响项说明
编译时间无影响(空类编译开销极小)
运行时间无影响(空函数直接返回)
内存占用无影响(无成员变量)
流水线无影响(不参与计算流程)

与 BlockEpilogueStreamK 的关系

BlockEpilogueEmpty ← 当前实现(空,用于 Basic Kernel) ↓ BlockEpilogueStreamK ← 实际实现(用于 StreamK Kernel) ├── workspace 汇聚(K 轴切分累加) ├── 类型转换(float → half/bf16) └── ReLU 激活(可选)

扩展建议

如需添加后处理功能,可参考以下设计模式:

// 自定义 Epilogue 示例(伪代码) class BlockEpilogueRelu { public: struct Arguments { float threshold; // ReLU 参数 }; __aicore__ inline void Init(Arguments const& args) { threshold_ = args.threshold; } __aicore__ inline void Run() { AscendC::Relu(outputTensor, inputTensor, threshold_); } __aicore__ inline void operator()(Arguments const& args) { Init(args); Run(); } private: float threshold_; AscendC::GlobalTensor<float> outputTensor_; AscendC::GlobalTensor<float> inputTensor_; };

适用场景

  • Basic Kernel:不需要后处理的简单矩阵乘场景
  • 无 workspace:不需要存储中间结果
  • 单核计算:仅需 AIC 计算,无需 AIV 参与
  • 原型开发:快速验证 Kernel 框架,后续可替换为实际实现

【免费下载链接】ops-tensorops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor

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

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

在Python项目中实现多模型自动降级与容灾调用策略

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Python项目中实现多模型自动降级与容灾调用策略 构建高可用的AI服务时&#xff0c;服务的连续性至关重要。模型供应商的API偶尔会…

作者头像 李华
网站建设 2026/5/27 17:35:47

自编码器在下一代通信系统设计中的原理、挑战与应用实践

1. 项目概述在通信系统设计的漫长演进中&#xff0c;我们一直遵循着一个经典范式&#xff1a;将复杂的通信链路拆解为一系列独立的、经过理论优化的功能模块&#xff0c;比如信源编码、信道编码、调制、均衡和解码。这套方法在过去几十年里取得了巨大成功&#xff0c;但它有一个…

作者头像 李华
网站建设 2026/5/27 17:34:47

Page Assist终极指南:浏览器侧边栏本地AI助手完整教程

Page Assist终极指南&#xff1a;浏览器侧边栏本地AI助手完整教程 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist Page Assist是一款革命性的开源…

作者头像 李华
网站建设 2026/5/27 17:33:36

HyperFPGA:开源SoC-FPGA集群如何革新异构计算与可重构超级计算研究

1. 项目概述与核心价值在计算架构研究的前沿&#xff0c;我们正面临一个日益严峻的挑战&#xff1a;传统基于冯诺依曼架构的超级计算机&#xff0c;其性能提升曲线正在放缓&#xff0c;而能耗却持续攀升。这背后是晶体管微缩的物理极限、日益复杂的片上系统带来的“暗硅”问题&…

作者头像 李华
网站建设 2026/5/27 17:32:06

ChatGPT技术文档写作最后窗口期:Gartner预警2025年起,未通过AI文档可信度认证的交付将拒收(附自测工具包)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ChatGPT技术文档写作的范式迁移与合规临界点 传统技术文档写作以静态结构、专家主导和线性交付为特征&#xff0c;而ChatGPT驱动的智能协作模式正推动其向动态生成、人机协同与实时校验的范式跃迁。这一迁移并…

作者头像 李华