- API功能:在NPU上实现vLLM库中advance_step_flashattn的功能,在每个生成步骤中原地更新
[object Object],[object Object],[object Object]和[object Object]。 - 非投机场景计算公式:是当前代码被执行的核的索引。
- 投机场景计算公式:是当前代码被执行的请求的索引。
[object Object]
- input_tokens (
[object Object]):必选参数,输入/输出张量,对应公式中的输出,用于更新vLLM模型中的token值;数据类型支持[object Object];如果是非投机场景,shape为[num_seqs,],如果是投机场景,shape为[num_seqs, 1 + spec_num];第一维长度与[object Object]相同,不支持空tensor,取值范围为大于0的正整数。 - sampled_token_ids (
[object Object]):必选参数,输入张量,对应公式中的输入,用于储存token_id;数据类型支持[object Object];如果是非投机场景,shape为[num_queries, 1],第二维长度是1;如果是投机场景,shape为[num_seqs, 1 + spec_num];第一维长度与[object Object]相同,第二维长度是1,不支持空tensor,取值范围为大于0的正整数。 - input_positions (
[object Object]):必选参数,输入/输出张量,对应公式中的输出,用于记录token的index;数据类型支持[object Object];如果是非投机场景,shape为[num_queries, 1],第二维长度是1;如果是投机场景,shape为[num_seqs, 1 + spec_num];第一维长度与[object Object]相同,不支持空tensor,取值范围为大于0的正整数。 - seq_lens (
[object Object]):必选参数,输入/输出张量,对应公式中的输入/输出,用于记录不同block_idx下seq的长度;数据类型支持[object Object];如果是非投机场景,shape为[num_queries, 1],第二维长度是1;如果是投机场景,shape为[num_seqs, 1 + spec_num];第一维长度与[object Object]相同,不支持空tensor,取值范围为大于0的正整数。 - slot_mapping (
[object Object]):必选参数,输入/输出张量,对应公式中的输出,用于将token值在序列中的位置映射到物理位置;数据类型支持[object Object];如果是非投机场景,shape为[num_queries, 1],第二维长度是1;如果是投机场景,shape为[num_seqs, 1 + spec_num];第一维长度与[object Object]相同,不支持空tensor,取值范围为大于0的正整数。 - block_tables (
[object Object]):必选参数,输入/输出张量,对应公式中的输入,用于记录不同block_idx下block的大小;数据类型支持[object Object];shape为二维,第一维长度与[object Object]相同,第二维长度需要大于[object Object]中最大值除以[object Object]的整数部分,不支持空tensor,取值范围为大于0的正整数。 - num_seqs (
[object Object]):必选参数,记录输入的seq数量;取值范围为大于0的正整数。 - num_queries (
[object Object]):必选参数,记录输入的query数量;取值范围为大于0的正整数。 - block_size (
[object Object]):必选参数,对应公式中的,每个block的大小;取值范围为大于0的正整数。 - spec_token (
[object Object]): 可选参数,输入张量,用于记录投机场景下当前的token的idx。数据类型支持[object Object];spec_token为空时,则为非投机场景,默认为[object Object];[object Object]不为空时,则为投机场景,shape为[num_seqs, spec_num];不支持空tensor,必须为大于0的正整数。 - accepted_num (
[object Object]): 可选参数,输入张量,用于记录投机场景下每个request接受的投机的数量。数据类型支持[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]相同且第二维长度为1。 - 输入
[object Object]的shape的第二维长度大于[object Object]中最大值除以[object Object]的整数部分。 - 非投机场景下,输入
[object Object]必须大于输入[object Object];投机场景下,[object Object]与[object Object]相同。 - 该接口仅限推理场景使用,无反向函数。
非投机场景:
[object Object]
投机场景:
[object Object]