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

CANN/ops-transformer融合推理注意力分数算子

FusedInferAttentionScore

【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列加速卡产品×
Atlas 训练系列产品×

功能说明

  • 算子功能:适配增量&全量推理场景的FlashAttention算子,既可以支持全量计算场景(PromptFlashAttention),也可支持增量计算场景(IncreFlashAttention)。

  • 计算公式:

    self-attention(自注意力)利用输入样本自身的关系构建了一种注意力模型。其原理是假设有一个长度为$n$的输入样本序列$x$,$x$的每个元素都是一个$d$维向量,可以将每个$d$维向量看作一个token embedding,将这样一条序列经过3个权重矩阵变换得到3个维度为$n*d$的矩阵。

    self-attention的计算公式一般定义如下,其中$Q$、$K$、$V$为输入样本的重要属性元素,是输入样本经过空间变换得到,且可以统一到一个特征空间中。公式及算子名称中的"Attention"为"self-attention"的简写。

    $$ Attention(Q,K,V)=Score(Q,K)V $$

    本算子中Score函数采用Softmax函数,self-attention计算公式为:

    $$ Attention(Q,K,V)=Softmax(\frac{QK^T}{\sqrt{d}})V $$

    其中:$Q$和$K^T$的乘积代表输入$x$的注意力,为避免该值变得过大,通常除以$d$的平方根进行缩放,并对每行进行softmax归一化,与$V$相乘后得到一个$n*d$的矩阵。

参数说明

参数名输入/输出描述数据类型数据格式
query输入公式中的输入Q。FLOAT16、BFLOAT16、INT8ND
key输入公式中的输入K。FLOAT16、BFLOAT16、INT8、INT4ND
value输入公式中的输入V。FLOAT16、BFLOAT16、INT8、INT4ND
attentionOut输出公式中的输出。FLOAT16、BFLOAT16、INT8ND

约束说明

  • 该接口与PyTorch配合使用时,需要保证CANN相关包与PyTorch相关包的版本匹配。

  • 入参为空的处理:算子内部需要判断参数query是否为空,如果是空则直接返回。参数query不为空Tensor,参数key、value为空tensor(即S2为0),则attentionOut填充为全零。attentionOut为空Tensor时,AscendCLNN框架会处理。其余在上述参数说明中标注了“可传入nullptr”的入参为空指针时,不进行处理。

  • 参数key、value中对应Tensor的shape需要完全一致;非连续场景下 key、value的tensorlist中的batch只能为1,个数等于query的B,N和D需要相等。由于tensorlist限制, 非连续场景下B不能大于256。

  • 当Q_S大于1时,query,key,value输入,功能使用限制如下:

    • 支持B轴小于等于65536。

    • 如果输入类型为INT8且D轴不是32字节对齐,则B轴的最大支持值为128。若输入类型为FLOAT16或BFLOAT16且D轴不是16字节对齐,B轴同样仅支持到128。

    • 支持N轴小于等于256,支持D轴小于等于512。inputLayout为BSH或者BSND时,建议N*D小于65535。

    • S支持小于等于20971520(20M)。部分长序列场景下,如果计算量过大可能会导致pfa算子执行超时(aicore error类型报错,errorStr为:timeout or trap error),此场景下建议做S切分处理,注:这里计算量会受B、S、N、D等的影响,值越大计算量越大。典型的会超时的长序列(即B、S、N、D的乘积较大)场景包括但不限于:

      BQ_NQ_SDKV_NKV_S
      120209715225612097152
      1220971520256220971520
      201209715225612097152
      110209715251212097152
    • D轴限制:query、key、value或attentionOut类型包含INT8时,D轴需要32对齐;query、key、value或attentionOut类型包含INT4时,D轴需要64对齐;类型全为FLOAT16、BFLOAT16时,D轴需16对齐。

  • 当Q_S等于1时:query,key,value输入,功能使用限制如下:

    • 支持B轴小于等于65536,支持N轴小于等于256,支持D轴小于等于512。
    • query、key、value输入类型均为INT8的场景暂不支持。
    • 在INT4伪量化场景下,aclnn单算子调用支持KV INT4输入或者INT4拼接成INT32输入(建议通过dynamicQuant生成INT4格式的数据,因为dynamicQuant就是一个INT32包括8个INT4)。
    • 在INT4伪量化场景下,若KV INT4拼接成INT32输入,那么KV的N、D或者H是实际值的八分之一(prefix同理)。
    • key、value在特定数据类型下存在对于D轴的限制
      • key、value输入类型为INT4(INT32)时,D轴需要64对齐(INT32仅支持D 8对齐)。
  • query、key、value数据排布格式支持从多种维度解读,其中B(Batch)表示输入样本批量大小、S(Seq-Length)表示输入样本序列长度、H(Head-Size)表示隐藏层的大小、N(Head-Num)表示多头数、D(Head-Dim)表示隐藏层最小的单元尺寸,且满足D=H/N、T表示所有Batch输入样本序列长度的累加和。

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_FusedInferAttentionScoreV4通过aclnnFusedInferAttentionScoreV4调用PromptFlashAttentionV3算子

【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer

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

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

相关文章:

  • 2026年重庆职称评审机构最新推荐:重庆锦博教育、重庆清晖教育,专注职称申报咨询,助力人才职业晋升 - 海棠依旧大
  • 从ResNet到FPN:拆解RetinaNet的骨干网络,为什么它比YOLOv3更准?
  • 东南亚名义雇主服务商研究与国内名义雇主排名分析 - 万领钧KnitPeople
  • 多模型集成AI智能体 OpenClaw 办公自动化部署方法
  • 西安印刷厂怎么选?松林森彩印vs传统工厂:交期、品质、价格全维度横评 - 企业名录优选推荐
  • 2026年商城小程序服务商排名:5月推荐榜单必看! - FaiscoJeff
  • Vim-ai插件:在Vim中集成AI编程助手,实现代码生成与重构
  • 2026年服装定制厂家口碑推荐榜:西服定制、夹克定制、西裤定制、衬衫定制、大衣定制、旗袍定制、进口面料服装定制、服装团队定制厂家选择指南 - 海棠依旧大
  • 晋中手机号定向推广系统测评:2026年本地实体门店引流的最优方案 - 优质企业观察收录
  • 浙江外国语学院韩国留学招生简章|3+2 国际本科,零语言可报,高性价比留学 - 奔跑123
  • CANN/tensorflow TF Adapter 1.x API参考
  • 等保二级防护标准建设方案
  • CANN/ops-nn硬Sigmoid算子
  • 2026年上海云呼叫中心系统推荐:附功能对比 - 品牌2025
  • Android图片流UI优化实战:手把手教你用Palette实现动态沉浸式状态栏与标题栏
  • HDMI 1.4技术解析:以太网与音频回传的创新设计
  • AI辅助开发框架:从问题类别到工业级系统的设计与管理
  • 2026年南京物流搬家标杆服务商参考:南京睿航物流,覆盖搬家、运输、货运全场景,以专业服务守护物品安全流转 - 海棠依旧大
  • 【计算机毕业设计】基于springboot的公交线路查询系统设计与实现+LW
  • 告别盲猜内存大小:手把手对比NVMe中PRP与SGL的配置与性能影响
  • 提升检测效率选什么?基恩士VL扫描仪深度解析 - 博客万
  • 避坑指南:在GD32F470上移植RT-Thread时,如何正确配置分散的SRAM和TCMSRAM(附代码)
  • AI驱动PDE逆问题与逆设计:从物理建模到工程优化
  • 收的顶霸榜重庆|2026 黄金变现机构 TOP1,实至名归 - 奢侈品回收测评
  • 视觉隐喻理解:AI如何通过强化学习解析深层语义
  • 普及一下0基础自学网络安全的核心技术栈,决定了你能否学到真技术!
  • CANN运行时模型更新示例
  • 2025届必备的AI科研平台实测分析
  • 客户案例 智慧医药服务标杆x燕千云,AI+知识库驱动服务转型
  • 2026年5月重庆职称评审机构最新推荐:初级、中级、高级职称申报优选指南 - 海棠依旧大