news 2026/5/9 12:23:49

CANN/cann-recipes-infer SwigluClipQuant算子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/cann-recipes-infer SwigluClipQuant算子

custom.npu_swiglu_clip_quant

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

产品支持情况

产品是否支持
Atlas A3 推理系列产品

功能说明

SwigluClipQuant在Swish门控线性单元激活函数后添加clamp和quant操作,并根据不同分组中的clamp缩放因子对输入进行缩放操作,实现x的SwigluClipQuant计算,SwigluClipQuant的具体计算公式如下: $$ \textbf{swiglu}: swigluOut = Swiglu(A)*B $$

$$ \textbf{clip}: swigluClipOut = Max(Min(swigluOut, Abs(ReduceMax(swigluOut)) * groupAlpha), -Abs(ReduceMax(swigluOut)) * groupAlpha) $$

$$ \textbf{quant}: y, scale = DynamicQuant(swigluClipOut, groupIndex) $$

其中,A表示输入x的前半部分,B表示输入x的后半部分。

函数原型

custom.npu_swiglu_clip_quant(Tensor x, Tensor group_index, Tensor group_alpha, *, bool activate_left=False, int quant_mode=1, int clamp_mode=1) -> (Tensor, Tensor)

参数说明

说明:

  • TokensNum、H参数维度含义:TokensNum表示传输的Token数,取值是自然数,H表示嵌入向量的长度,取值>0。
  • groupNum:表示group_index输入的长度,取值>0。
  • xTensor):必选参数,不支持非连续,数据格式支持ND,数据类型支持bfloat16,shape为:[TokensNum, H]。

  • group_indexTensor):必选参数,不支持非连续,数据格式支持ND,数据类型支持int64,要求是1D的Tensor。当前只支持count模式,表示该模式下指定分组的Tokens数(要求非负整数),shape为:[groupNum]。

  • group_alphaTensor):必选参数,不支持非连续,数据格式支持ND,数据类型支持float32,要求是1D的Tensor。表示与指定分组的Tokens数对应的clamp缩放因子,shape为:[groupNum]。

  • *:代表其之前的参数是位置相关的,必须按照顺序输入,属于必选参数;其之后的参数是键值对赋值,与位置无关,属于可选参数(不传入会使用默认值)。

  • activate_leftbool):可选参数,表示是否对输入的左半部分做swiglu激活,当值为false时,对输入的右半部分做激活,默认值为False。

  • quant_modeint):可选参数,表示使用动态量化还是静态量化,0表示静态量化,1表示动态量化。默认值为1,当前仅支持动态量化。

  • clamp_modeint):可选参数,表示是否在指定分组Tokens数时使用group_alpha参数。默认值为1,表示使用group_alpha参数功能。当前仅支持clamp_mode=1。

返回值说明

  • yTensor):公式中的输出y,表示量化后的输出tensor,数据类型支持int8。数据格式支持ND。
  • scaleTensor):公式中的输出scale,表示量化scale参数,数据类型支持float32。数据格式支持ND。

约束说明

  • 该接口支持推理场景下使用。
  • 该接口支持图模式。
  • 该接口与PyTorch配合使用时,需要保证CANN相关包与PyTorch相关包的版本匹配。
  • 参数x的H轴有维度大小限制:H ≤ 10496同时64对齐场景,规格不满足场景会进行校验。
  • 参数group_index只支持count模式,需要保证group_index总和不超过x的TokensNum维度,否则会出现越界访问。
  • 输出y和scale超过group_index总和的部分未进行清理处理,该部分内存为垃圾数据,使用时需要注意影响。
  • 参数quant_mode仅支持动态量化场景。

调用示例

  • 详见test_npu_swiglu_clip_quant.py

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

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

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

CANN/sip PyTorch扩展

torch_sip - PyTorch 扩展用于 AscendSiP 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 这是一个使用 Torch …

作者头像 李华
网站建设 2026/5/9 12:19:39

2026年北京全屋高端定制现代简约风格公司测评与选型指南

一、引言 随着北京全屋定制市场的不断发展,现代简约风格备受消费者青睐。在众多品牌中,如何选择适合自己的高端定制公司成为了消费者关注的焦点。本指南将对北京地区的全屋高端定制现代简约风格公司进行测评与选型分析。 二、行业现状 近年来&#xff0c…

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

ATVC AddWithBroadcast算子样例

【免费下载链接】atvc ATVC(Ascend C Templates for Vector Compute),是为基于Ascend C开发的典型Vector算子封装的一系列模板头文件的集合,可帮助用户快速开发典型Vector算子。 项目地址: https://gitcode.com/cann/atvc …

作者头像 李华
网站建设 2026/5/9 12:14:25

NHSE:解锁动物森友会的无限创意可能

NHSE:解锁动物森友会的无限创意可能 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 你是否曾梦想在《集合啦!动物森友会》中拥有无限资源,打造理想中的梦幻岛屿…

作者头像 李华
网站建设 2026/5/9 12:12:24

CANN/ops-solver Sgetrf算子测试

Sgetrf算子实现 【免费下载链接】ops-solver 本项目是CANN提供的高级数值求解算子库,实现矩阵分解、求逆、特征值求解等功能在NPU上的加速计算。 项目地址: https://gitcode.com/cann/ops-solver 概述 Solver Sgetrf算子实现。 支持的产品 Atlas A3 训练系…

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

音视频开发 5.8 摘要 转自b站 总结,建议看视频

原文地址:音视频入门系列-音视频基础知识篇(音视频播放原理)_哔哩哔哩_bilibili 如果是本地播放,则不需要解协议。 YUV和RGB格式如下: 如YUV444 YUV422 YUV420 其中YUV444刚好是1:1:1,422是YU或者YV&#…

作者头像 李华