Skip_leading_tokens 是什么意思

@RunLLM 但是 prepare_input_ids 里面不是异步的吗,没发保证,他已经拷贝到gpu里面了呀

self.input_ids[:total_num_scheduled_tokens].copy_(

        self.input_ids_cpu\[:total_num_scheduled_tokens\], non_blocking=True)

你说得对,_prepare_input_ids 里确实常用 non_blocking=True 进行异步拷贝(如 .copy_(..., non_blocking=True)),但在 PyTorch 和 vLLM 的常规同步推理流程下,后续对 self.input_ids 的访问(如模型前向)会隐式触发 CUDA stream 同步,确保数据已拷贝到 GPU,CPU 线程会在模型前向时自动等待数据准备好。相关机制说明

如果你在自定义异步调度或多 stream 场景下,确实需要手动同步(如 torch.cuda.synchronize())以确保数据安全。但vLLM主流程下,模型前向前的数据访问已保证同步。

需要更详细的 CUDA stream 同步原理或代码示例吗?

Sources:

Hint: Mention @RunLLM in the post for followups.