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

CANN/cann-recipes-infer压缩FlashAttention算子

CompressedFlashAttention

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

产品支持情况

产品是否支持
Atlas A2 推理系列产品
Atlas A3 推理系列产品
Ascend 950PR/Ascend 950DT 推理系列产品

功能说明

  • API功能:CompressedFlashAttention算子旨在完成以下公式描述的Attention计算,支持Compressed Attention。

  • 计算公式:

    $$ O = \text{softmax}(Q@\tilde{K}^T \cdot \text{softmax_scale})@\tilde{V} $$

    其中$\tilde{K}=\tilde{V}$为基于kv_cache、kv_win等入参控制的实际参与计算的 $KV$。

函数原型

torch.ops.pypto.compress_flash_attention( q, cmp_kv, sinks, cmp_block_table, seqused_kv, ori_kv, ori_block_table, cmp_ratio ) -> (Tensor)

参数说明

  • qTensor):必选参数,对应公式中的$Q$,不支持非连续,数据格式支持ND,数据类型支持bfloat16。shape为[B*S1,N1,D],其中N1仅支持64。
  • cmp_kvTensor):必选参数,对应公式中的$\tilde{K}和\tilde{V}$的一部分,为经过压缩的KV,不支持非连续,数据格式支持ND,数据类型支持bfloat16layout_kv为PA_ND时shape为[block_num, cmp_block_size, KV_N, D],其中block_num2为PageAttention时block总数,cmp_block_size为一个block的token数,cmp_block_size取值为16的倍数,最大支持1024。
  • sinksTensor):必选参数,注意力下沉tensor,数据格式支持ND,数据类型支持float32,shape为[N1]。
  • cmp_block_tableTensor):必选参数,表示PageAttention中cmpKvCache存储使用的block映射表。数据格式支持ND,数据类型支持int32,shape为2维,其中第一维长度为B,第二维长度不小于所有batch中最大的S3对应的block数量,即S3_max / block_size向上取整。
  • seqused_kvTensor):必选参数,表示不同Batch中ori_kv实际参与运算的token数,维度为B,数据格式支持ND,数据类型支持int32
  • ori_kvTensor):必选参数,对应公式中的$\tilde{K}和\tilde{V}$的一部分,为原始不经压缩的KV,不支持非连续,数据格式支持ND,数据类型支持bfloat16,shape为[block_num1, ori_block_size, KV_N, D]。
  • ori_block_tableTensor):必选参数,表示PageAttention中oriKvCache存储使用的block映射表。数据格式支持ND,数据类型支持int32,shape为2维,其中第一维长度为B,第二维长度不小于所有batch中最大的S2对应的block数量,即S2_max / block_size向上取整。
  • cmp_ratioint):必选参数,表示对ori_kv的压缩率,数据类型支持int,数据支持128。

返回值说明

  • attention_outTensor):公式中的输出。数据格式支持ND,数据类型支持bfloat16,shape为[B*S1,N1,D]。

约束说明

  • 该接口支持推理场景下使用。
  • 该接口支持aclgraph模式。
  • 参数q中的D和seqused_kv、kv_cache的D值相等为512。
  • 参数seqused_kv、kv_cache的数据类型必须保持一致。
  • 本接口仅支持decode场景,不支持prefill场景。
  • block_size支持128。

调用方法

python3 ops/pypto_python/example/test_compressed_flash_attention_pypto.py

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

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

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

相关文章:

  • CANN电力负荷预测ReduceAll算子
  • OpenAI Cookbook:从API调用到AI工程化落地的实用指南
  • 对比两个版本代码差异
  • 在Node.js后端服务中集成Taotoken实现稳定AI能力
  • 高层次综合理念
  • 为Hermes Agent框架配置自定义模型供应商并连接Taotoken
  • ARGO:本地部署AI智能体,打造私有化多智能体协作平台
  • 淘金币自动化脚本:5分钟完成每日任务的高效解决方案
  • CATLASS EVG扩展说明
  • 避开递归深坑:从ICode Python 6级题看如何设计清晰的递归函数
  • 2026企业AIAgent平台评测:主流智能体平台横向对比
  • Taotoken模型广场在技术选型阶段提供的直观比较与试用体验
  • 别再让Langchain卡住你的前端!一个FastAPI + SSE的保姆级流式输出教程(附完整可运行代码)
  • 变形翼无人机穿越狭窄缝隙的技术挑战与解决方案
  • CANN/ops-math图像到列算子
  • CANN/pyasc合并排序队列API
  • 2026线下门店智能马桶TOP8排行榜:实体店买马桶到底选谁? - 江湖评测
  • CANN/cann-bench GQA算子API描述
  • 微信AI机器人插件生态全解析:从选型部署到开发实践
  • CANN/sip ColwiseMul按列逐点乘示例
  • 网盘下载提速神器:九大平台直链解析工具完整指南
  • Cursor API本地代理:内网集成AI编程与自动化工作流实战
  • 认知科学启发的AGI测试框架:从人类智能维度到可量化评估
  • HoRain云--PHP命名空间终极指南
  • pypto.distributed 模块介绍
  • Python后台服务/守护进程如何正确处理SIGINT信号?一个真实的生产环境案例
  • CANN/pyasc load_data数据加载API文档
  • 人形机器人供应链观察:良质关节如何在三年内成为头部厂商的核心合作伙伴?(附数字化案例拆解) - 黑湖科技老黑
  • CANN具身智能-PI0训练样例
  • HIXL LLM-DataDist接口