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

CANN/catlass FP8转FP16反量化Tile操作

TileCastFp8ToFp16Dequant

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

代码位置

[TOC]

功能说明

TileCastFp8ToFp16Dequant模板负责将 FP8(int8_t存储)量化数据反量化(dequant)并转换为 FP16(half),结果直接写回 GM。常用于 A 矩阵(weight)的 Prologue 阶段,在计算前完成数据解量化。

流水线:GM(fp8) → UB → Dequant(fp8→fp16) → UB → GM(fp16),使用双缓冲(BUFFER_NUM=2)和 4 个 EventId 实现 MTE2/V/MTE3 三级流水并发。

TileCastInt8ToFp16Dequant的区别在于 Dequant 实现不同(FP8 使用查表/位运算),且支持 ColumnMajor 排布。

限制:仅支持 AtlasA2 架构(CATLASS_ARCH == 2201)。

模板原型

template < class ArchTag, // 架构标签:仅 Arch::AtlasA2 class SrcType_, // 源类型:Gemm::GemmType<ElementSrc, LayoutSrc> class DstType_, // 目标类型:Gemm::GemmType<ElementDst, LayoutDst> uint32_t COMPUTE_LENGTH // 每次 Vector 引擎计算的长度 > struct TileCastFp8ToFp16Dequant { using ElementSrc = typename SrcType_::Element; // int8_t(FP8) using ElementDst = typename DstType_::Element; // half(FP16) using LayoutTagSrc = typename SrcType_::Layout; using LayoutTagDst = typename DstType_::Layout; };
  • COMPUTE_LENGTH:单次 Dequant 计算长度,影响 UB buffer 分配大小
  • LayoutSrc/LayoutDst:只支持 RowMajor 或 ColumnMajor,且两者必须相同

构造与析构

构造函数

TileCastFp8ToFp16Dequant(Arch::Resource<ArchTag> &resource, Params const &params_);

Arch::Resource的 UB buffer 中分配双缓冲:

  • inputBuffer[2]×COMPUTE_LENGTH× 1 byte(FP8 输入)
  • outputBuffer[2]×COMPUTE_LENGTH× 2 bytes(FP16 输出)
  • workspace[2]×COMPUTE_LENGTH× 2 bytes(计算 workspace)

Params

struct Params { half scalar; // 反量化 scale half zeroPoint; // 反量化 zero point Params() = default; Params(half scalar_, half zeroPoint_); };

析构函数

无(UB buffer 由 Resource 管理)。

调用接口

主接口(FP8 → FP16 Dequant)

void operator()( AscendC::GlobalTensor<ElementDst> gmDst, LayoutDst const &layoutDst, // GM 目标(FP16) AscendC::GlobalTensor<ElementSrc> gmSrc, LayoutSrc const &layoutSrc, // GM 源(FP8) uint32_t &bufferIndex // 双缓冲索引(in/out) );

Epilogue 辅助接口(FP32 → FP16 Cast)

void EpCastFp32ToFp16( AscendC::GlobalTensor<half> gmDst, LayoutRowMajor layoutDst, AscendC::GlobalTensor<float> gmSrc, LayoutRowMajor layoutSrc );

用于 Epilogue 阶段将 float 累加结果 cast 为 half,仅支持 RowMajor。

调用示例

#include "catlass/gemm/tile/cast_fp8_to_fp16.hpp" using namespace Catlass::Gemm::Tile; using ElementSrc = int8_t; using ElementDst = half; using SrcType = Gemm::GemmType<ElementSrc, layout::RowMajor>; using DstType = Gemm::GemmType<ElementDst, layout::RowMajor>; constexpr uint32_t COMPUTE_LENGTH = 16 * 1024; const int M = 256; const int K = 4096; auto layoutSrc = layout::RowMajor::MakeLayout<ElementSrc>(M, K); auto layoutDst = layout::RowMajor::MakeLayout<ElementDst>(M, K); AscendC::GlobalTensor<ElementSrc> gmSrc; AscendC::GlobalTensor<ElementDst> gmDst; Arch::Resource<Arch::AtlasA2> resource; TileCastFp8ToFp16Dequant<Arch::AtlasA2, SrcType, DstType, COMPUTE_LENGTH>::Params params(0.5, 0.0); TileCastFp8ToFp16Dequant<Arch::AtlasA2, SrcType, DstType, COMPUTE_LENGTH> castOp(resource, params); uint32_t bufferIndex = 0; castOp(gmDst, layoutDst, gmSrc, layoutSrc, bufferIndex);

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

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

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

相关文章:

  • 从功能到价值:初创公司如何通过“卖结果”构建竞争壁垒
  • 宁波酒店厨房设备回收:江北专业的空调回收公司选哪家 - LYL仔仔
  • 【独家首发】全球首份Claude竞品压力测试报告:在金融合同解析、医疗术语推理、多跳法律检索三大高危场景中,仅2家通过95%准确率阈值
  • 2026年GEO源头厂家公司怎么选?杭州本土技术派深度拆解 - 品牌报告
  • 2026宁夏搬家公司推荐,甄选靠谱搬家服务商打造安心搬迁体验 - 品牌鉴赏师
  • 系统性搜寻未知:构建可观测性驱动的技术问题排查框架
  • XLMRoBERTa微调实战:huangjingwang/roberta-ner-multilingual模型训练全流程
  • Windows右键菜单管理终极指南:如何快速掌握ContextMenuManager
  • VideoGameBunny-V1-4B架构深度解析:BunnyPhi3与SigLIP视觉塔的技术融合
  • CANN/catlass A8W4量化TileCopy组件
  • 从状态机到运行时:聊聊 .NET 11 的 Runtime Async 和老 Async/Await 到底差在哪
  • 如何用ok-ww实现3倍效率提升:鸣潮自动化工具完全指南
  • 2026年珠海黄金回收行业大起底:6家门店横评,设备、报价、流程全拆解,第一名没悬念 - 润富黄金珠宝行
  • 义乌家家旺空调维修:义乌空调移机公司怎么联系 - LYL仔仔
  • 如何高效使用DownKyi:B站视频下载的终极解决方案
  • gte-base与其他嵌入模型对比:为什么选择阿里达摩院的文本嵌入方案
  • 30天打造反臃肿AI演示工具:从减法设计到文件优先的工程实践
  • Linux开发者的救星:用Remmina搞定公司Windows堡垒机远程连接(附文件互传保姆级教程)
  • 照着用就行:2026年闭眼可入的专业降AI率平台 - 降AI小能手
  • 【赵渝强老师】崖山数据库的数据字典
  • PoE Overlay终极指南:3个核心功能解决流放之路玩家最头疼的三大问题
  • AI建站避坑指南:10个高频问题帮你躲开90%的坑
  • 2026 年广州装修公司推荐与行业避坑解析 - 商业新知
  • 2026年大模型API路由网关技术观察:市面五个主流平台的客观横评
  • HuggingFace镜像项目glaive_toolcall_zh:中文工具调用数据集贡献者完全指南
  • 2026年成都公司注销代办手续究竟是怎样的流程? - 企业推荐官
  • ControlNet SDXL未来展望:MindSpore-Lab项目的技术路线图与发展方向
  • 华硕笔记本性能优化解决方案:G-Helper深度配置指南
  • 别再只用RAID 0了!Ubuntu 22.04下用mdadm搭建RAID 0+1,兼顾速度与数据安全
  • 天津本地商家GEO推广服务商推荐 - 舒雯文化