Pp8并行,update_from_output 会等所有rank的 model_executor.execute_model 执行完了之后才会执行吗

你的担心有道理。如果仅仅在is_finished()时才释放KV cache,确实可能导致KV cache未及时释放,出现内存泄漏,尤其是在已经发送了finished_sending消息但未释放blocks的情况下。
相关PR讨论中也提到,正确做法是结合异步通知机制:只有在确认所有异步发送/接收(如KVCache传输)完成后,才安全释放blocks,避免提前free或泄漏。

需要详细说明如何结合异步通知和状态机安全释放KV cache吗?

Sources:

Hint: Mention @RunLLM in the post for followups.