news 2026/5/9 13:01:58

CANN/ascend-transformer-boost PagedAttentionOperation C++ Demo

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ascend-transformer-boost PagedAttentionOperation C++ Demo

加速库PagedAttentionOperation C++ Demo

【免费下载链接】ascend-transformer-boost本项目是CANN提供的是一款高效、可靠的Transformer加速库,基于华为Ascend AI处理器,提供Transformer定制化场景的高性能融合算子。项目地址: https://gitcode.com/cann/ascend-transformer-boost

介绍

该目录下为加速库PagedAttentionOperation C++调用示例。

使用说明

  • 首先source 对应的CANN和nnal包的安装路径

    1. source [cann安装路径]/set_env.sh 默认:source /usr/local/Ascend/ascend-toolkit/set_env.sh
    2. source [nnal安装路径]/set_env.sh
      默认:source /usr/local/Ascend/nnal/atb/set_env.sh
      ①. 如果使用加速库源码编译,source [加速库源码路径]/output/atb/set_env.sh
      例如: source ./ascend-transformer-boost/output/atb/set_env.sh
  • 运行demo

    bash build.sh

    注意

    • 使用cxx_abi=0(默认)时,设置D_GLIBCXX_USE_CXX11_ABI为0,即:

      g++ -D_GLIBCXX_USE_CXX11_ABI=0 -I ...
    • 使用cxx_abi=1时,更改D_GLIBCXX_USE_CXX11_ABI为1,即:

      g++ -D_GLIBCXX_USE_CXX11_ABI=1 -I ...
    • 提供的build脚本仅用于编译和运行paged_attention_demo.cpp,如需编译其他demo,需要替换“paged_attention_demo”为对应的cpp文件名

额外说明

示例中生成的数据不代表实际场景,如需数据生成参考请查看根目录下的python用例目录: tests/apitest/opstest/python/operations/paged_attention/

产品支持情况

本op在Atlas A2/A3系列和Atlas 推理系列产品上实现有所区别

场景说明

提供demo编译运行时需要对应更改build脚本:

  1. 不开启并行解码且带mask场景:

    • paged_attention_demo.cpp

      默认编译脚本可编译运行,该demo仅支持在Atlas A2/A3系列上运行。

      参数设置

      成员名称取值
      headNum32
      qkScale1 / sqrt(HEAD_SIZE)
      kvHeadNum32
      batchRunStatus0
      quantTypeTYPE_QUANT_UNQUANT
      hasQuantOffsetfalse
      calcTypeCALC_TYPE_UNDEFINED
      compressTypeCOMPRESS_TYPE_UNDEFINED
      maskTypeMASK_TYPE_NORM
      mlaVHeadSize0

      数据规格

      tensor名字数据类型数据格式维度信息cpu/npu
      queryfloat16nd[2, 32, 128]npu
      keyCachefloat16nd[16, 128, 32, 128]npu
      valueCachefloat16nd[16, 128, 32, 128]npu
      blockTablesint32nd[2, 8]npu
      contextLensint32nd[2]cpu
      maskint32nd[2, 1, 1024]npu
      attnOutfloat16nd[2, 32, 128]npu
    • paged_attention_qwen_demo.cpp

      该demo仅支持在Atlas A2/A3系列上运行。

      参数设置

      成员名称取值
      headNum5
      qkScale1 / sqrt(HEAD_SIZE)
      kvHeadNum1
      batchRunStatus0
      quantTypeTYPE_QUANT_UNDEFINED
      hasQuantOffsetfalse
      calcTypeCALC_TYPE_UNDEFINED
      compressTypeCOMPRESS_TYPE_UNDEFINED
      maskTypeUNDEFINED
      mlaVHeadSize0

      数据规格

      tensor名字数据类型数据格式维度信息cpu/npu
      querybf16nd[1, 5, 128]npu
      qkScalebf16nd[9, 128, 1, 128]npu
      valueCachebf16nd[9, 128, 1, 128]npu
      blockTablesint32nd[1, 8]npu
      contextLensint32nd[1]cpu
      attnOutbf16nd[1, 5, 128]npu
  2. 不带mask:

    • paged_attention_inference_demo.cpp
      该demo仅支持在Atlas推理系列产品上运行。
      参数设置

      成员名称取值
      headNum32
      qkScale1 / sqrt(HEAD_SIZE)
      kvHeadNum32
      batchRunStatus0
      quantTypeTYPE_QUANT_UNQUANT
      hasQuantOffsetfalse
      calcTypeCALC_TYPE_UNDEFINED
      compressTypeCOMPRESS_TYPE_UNDEFINED
      maskTypeUNDEFINED
      mlaVHeadSize0

      数据规格

      tensor名字数据类型数据格式维度信息cpu/npu
      querybf16nd[2, 32, 128]npu
      qkScalebf16nd[16, 1024, 128, 16]npu
      valueCachebf16nd[16, 1024, 128, 16]npu
      blockTablesint32nd[2, 8]npu
      contextLensint32nd[2]cpu
      attnOutbf16nd[2, 32, 128]npu

【免费下载链接】ascend-transformer-boost本项目是CANN提供的是一款高效、可靠的Transformer加速库,基于华为Ascend AI处理器,提供Transformer定制化场景的高性能融合算子。项目地址: https://gitcode.com/cann/ascend-transformer-boost

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

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

基于深度学习的淋巴瘤病理诊断AI模型构建实战

1. 项目概述与核心价值最近在病理诊断领域,一个名为“LymphoML”的项目引起了我的注意。这本质上是一个利用人工智能,特别是深度学习技术,通过分析细胞形态学特征来辅助诊断淋巴瘤的模型。作为一名在医疗影像和AI交叉领域摸爬滚打了十多年的从…

作者头像 李华
网站建设 2026/5/9 13:00:00

CANN竞赛Erf算子赛题

一、赛题背景 【免费下载链接】cann-competitions 本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。 项目地址: https://gitcode.com/cann/cann-competitions 高斯误差函数 (erf) 是数学和统计学中的基本函数,广泛应…

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

CANN/XLA-NPU:昇腾NPU的XLA后端

XLA-NPU 【免费下载链接】xla-npu XLA-NPU 是一个面向华为昇腾NPU硬件的 XLA后端实现。本项目通过接入OpenXLA/XLA开源项目,将XLA开源生态与华为 CANN软件栈集成,对接JAX框架。JAX框架运行时可以直接加载XLA-NPU,使得基于JAX框架开发的模型可…

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

CANN/pto-isa内核开发者规则与限制

这个文档列出了一些kernel开发者使用auto模式的一些规则和限制。 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance…

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

CANN/ops-math 二维复制填充算子

aclnnReplicationPad2d 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas…

作者头像 李华