昇腾社区首页
中文
注册
开发者
下载

aclnnAdvanceStep

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:

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

  • 计算公式:

    blockIdx是当前代码被执行的核的indexblockIdx是当前代码被执行的核的index。 blockTablesStride=blockTables.stride(0)blockTablesStride = blockTables.stride(0) inputTokens[blockIdx]=sampledTokenIds[blockIdx]inputTokens[blockIdx] = sampledTokenIds[blockIdx] inputPositions[blockIdx]=seqLens[blockIdx]inputPositions[blockIdx] = seqLens[blockIdx] seqLens[blockIdx]=seqLens[blockIdx]+1seqLens[blockIdx] = seqLens[blockIdx] + 1 slotMapping[blockIdx]=(blockTables[blockIdx]+blockTablesStrideblockIdx)blockSize+(seqLens[blockIdx]%blockSize)slotMapping[blockIdx] = (blockTables[blockIdx] + blockTablesStride * blockIdx) * blockSize + (seqLens[blockIdx] \% blockSize)

函数原型

每个算子分为,必须先调用“aclnnAdvanceStepGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小,再调用“aclnnAdvanceStep”接口执行计算。

[object Object]
[object Object]

aclnnAdvanceStepGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

aclnnStatus:返回状态码,具体参见。 第一段接口会完成入参校验,出现以下场景时报错: [object Object][object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]返回值[object Object] [object Object]错误码[object Object] [object Object]描述[object Object] [object Object][object Object] [object Object] [object Object] [object Object]ACLNN_ERR_PARAM_NULLPTR[object Object] [object Object]161001[object Object] [object Object]传入的inputTokens、sampledTokenIds、inputPositions、seqLens、slotMapping、blockTables是空指针。[object Object] [object Object] [object Object] [object Object]ACLNN_ERR_PARAM_INVALID[object Object] [object Object]161002[object Object] [object Object]inputTokens、sampledTokenIds、inputPositions、seqLens、slotMapping、blockTables的数据类型不在支持的范围之内。[object Object] [object Object] [object Object] [object Object]aclnnAdvanceStepGetWorkspaceSize failed[object Object] [object Object]561002[object Object] [object Object]输入inputTokens、inputPositions、seqLens、slotMapping、blockTables的shape的第一维长度与numSeqs不一致。[object Object] [object Object] [object Object] [object Object]输入sampledTokenIds的shape的第一维长度与numQueries不一致,或者shape的第二维长度不为1。[object Object] [object Object] [object Object] [object Object]输入numSeqs的值小于等于输入numQueries的值。[object Object] [object Object]

[object Object]

aclnnAdvanceStep

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性计算:
    • aclnnAdvanceStep默认确定性实现。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]