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

ATB RingMLA C++示例

加速库RingMLA C++ Demo

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

介绍

该目录下为加速库RingMLA 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 ...
    • 生成的二进制文件***_demo可以额外传入一个int参数作为deviceId,默认为0,如:

      ./ring_mla_demo 0

额外说明

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

产品支持情况

RingMLA仅Atlas A2/A3系列

场景说明

  1. RingMLA:
    • 基础场景,对于query,key分别传入带与不带rope转置的矩阵
    • 传入固定shape,512x512的上三角mask
    • 默认编译脚本可编译运行
    • 该demo仅支持在Atlas A2/A3系列上运行
Demo分段参数/tensor规格设置

因为RingMLA和其他的算子较为不同,第一次运算时不带前次生成的prevOut和prevLse,但是从第二次起使用时需要带上,这里分两段描述:

  1. 第一轮

参数设置

成员名称取值
calcTypeCALC_TYPE_FISRT_RING
headNum16
kvHeadNum8
qkScale1/sqrt(192)
kernelTypeKERNELTYPE_DEFAULT
maskTypeMASK_TYPE_TRIU

注意:qkScale设置值为RingMLA做rope转置前query,key合一的headSize,即128(nope) + 64(rope) = 192

数据规格

tensor名字数据类型数据格式维度信息cpu/npu
queryNopebf16nd[1228, 16, 128]npu
queryRopebf16nd[1228, 16, 64]npu
keyNopebf16nd[828, 8, 128]npu
keyRopebf16nd[828, 8, 64]npu
valuebf16nd[828, 8, 128]npu
maskbf16nd[512, 512]npu
seqLenint32nd[2, 3]cpu
Output
outputbf16nd[1228, 16, 128]npu
softmaxLsefloatnd[16, 1228]npu

q第一维度为总词元长度,对应sum(seqlen[0]),k,v第一维度对应sum(seqlen[1])

  1. 第二轮 第二轮中会使用第一轮新生成的output和softmaxLse进行计算。

参数设置

成员名称取值
calcTypeCALC_TYPE_DEFAULT
headNum16
kvHeadNum8
qkScale1/sqrt(192)
kernelTypeKERNELTYPE_DEFAULT
maskTypeMASK_TYPE_TRIU

需要额外更改param里的calcType为CALC_TYPE_DEFAULT,其他保持一致

数据规格

tensor名字数据类型数据格式维度信息cpu/npu
queryNopebf16nd[1228, 16, 128]npu
queryRopebf16nd[1228, 16, 64]npu
keyNopebf16nd[828, 8, 128]npu
keyRopebf16nd[828, 8, 64]npu
valuebf16nd[828, 8, 128]npu
maskbf16nd[512, 512]npu
seqLenbf16nd[2, 3]cpu
prevOutbf16nd[1228, 16, 128]npu
prevLsefloatnd[16, 1228]npu
Output
outputbf16nd[1228, 16, 128]npu
softmaxLsefloatnd[16, 1228]npu

第二轮使用第一轮新生成的output和softmaxLse来作为prevOut和prevLse。

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

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

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

相关文章:

  • Functionary开源模型实战:构建自主可控的AI函数调用智能体
  • 2026年赤峰市养老护理机构权威发布榜/养老护理员 - 品牌策略师
  • MCP测试服务器实战:为AI Agent开发构建安全可控的测试环境
  • 利用AI与MCP协议高效开发与调试Adaptive Cards
  • 为AI助手打造本地音频MCP服务器:实现隐私安全的智能录音与分析
  • CANN/triton-ge-backend性能调优方法论
  • CANN/pyasc向量标量最大值API
  • AI与逻辑回归模型在抗生素耐药性风险预测与临床决策中的应用
  • 10x-Agent-Loop:突破AI编程助手配额限制的智能缓存与调度方案
  • 2026年现阶段,哈尔滨抖音代运营服务商如何选?深度解析哈尔滨翰诺网络科技有限公司 - 2026年企业推荐榜
  • RAG系统交互式调试:从黑盒到白盒的工程实践指南
  • 大模型API聚合服务:一站式解决多模型接入难题
  • 自动驾驶AI算法演进:从规则驱动到数据驱动的工程实践与挑战
  • AI工作流集成:从自动化到智能化的任务处理系统构建
  • AIGC产品可解释性设计:从黑箱魔法到透明协作伙伴
  • 可控RAG智能体:基于确定性图与多层检索的复杂问题求解框架
  • 基于ChatGPT API构建个性化聊天机器人:从零到部署完整指南
  • 机器学习力场实战:从原理到应用,构建高精度分子动力学模型
  • ChatGemini部署指南:基于React与反向代理的Gemini AI客户端实战
  • 认知科学启发AI感知:从大脑原理到工程实践
  • AI数字病理诊断系统综述与Meta分析:方法、挑战与临床转化
  • 基于点空间注意力机制(PSAM)的图像分割边界优化实战
  • 深度强化学习优化量子比特反馈控制:从DQN原理到实验部署
  • 为OpenClaw智能体工作流配置Taotoken作为可靠模型供应商
  • CANN/asc-devkit Async函数API文档
  • 【准Z源直流-直流变换器】具有单个开关电容支路的高增益准Z源直流-直流变换器研究(Simulink仿真实现)
  • 对话式AI如何隐秘引导消费决策:行为心理学实验揭示四大机制
  • MI-CLAIM-GEN:临床生成式AI研究的透明化报告清单深度解析
  • 实测 Taotoken 多模型路由在不同时段的响应延迟与稳定性
  • CANN/graph-autofusion自动融合组件