CANN/ops-nn AdvanceStep算子
2026/5/11 3:31:30 网站建设 项目流程

AdvanceStep

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

产品支持情况

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

功能说明

  • 算子功能:

    vLLM是一个高性能的LLM推理和服务框架,专注于优化大规模语言模型的推理效率。它的核心特点包括PageAttention和高效内存管理。advance_step算子的主要作用是推进推理步骤,即在每个生成步骤中更新模型的状态并生成新的inputTokens、inputPositions、seqLens和slotMapping,为vLLM的推理提升效率。

  • 计算公式:

    $$ blockIdx是当前代码被执行的核的index。 $$

    $$ blockTablesStride = blockTables.stride(0) $$

    $$ inputTokens[blockIdx] = sampledTokenIds[blockIdx] $$

    $$ inputPositions[blockIdx] = seqLens[blockIdx] $$

    $$ seqLens[blockIdx] = seqLens[blockIdx] + 1 $$

    $$ slotMapping[blockIdx] = (blockTables[blockIdx] + blockTablesStride * blockIdx) * blockSize + (seqLens[blockIdx] % blockSize) $$

参数说明

参数名输入/输出/属性描述数据类型数据格式
inputTokens输入/输出公式中的输入/输出inputTokens。INT64ND
sampledTokenIds输入公式中的输入sampledTokenIds。INT64ND
inputPositions输入/输出公式中的输入/输出inputPositions。INT64ND
seqLens输入/输出公式中的输入/输出seqLens。INT64ND
slotMapping输入/输出公式中的输入/输出slotMapping。INT64ND
blockTables输入公式中的输入blockTables。INTND
numSeqs属性
  • 记录输入的seq数量,大小与seqLens的长度一致。
  • 取值范围是大于0的正整数。numSeqs的值大于输入numQueries的值。
INT-
numQueries属性
  • 记录输入的Query的数量,大小与sampledTokenIds第一维的长度一致。
  • 取值范围是大于0的正整数。
INT-
blockSize属性
  • 每个block的大小。
  • 取值范围是大于0的正整数。
INT64-

约束说明

调用说明

调用方式调用样例说明
aclnn调用test_aclnn_advance_step通过aclnnAdvanceStep接口方式调用AdvanceStep算子。
aclnn调用test_aclnn_advance_step_v2通过aclnnAdvanceStepV2接口方式调用AdvanceStep算子。
图模式调用-通过算子IR构图方式调用AdvanceStep算子。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询