⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’

Excalidraw Data

Text Elements

mooncake

connector

batch_transfer_sync_write

vllm

实例化TransferEngine()

initialize

get_rpc_port

batch_register_memory

openSegment

allocateBatchID

submitTransferWithNotify or submitTransfer

rdma

closeSegment

rdma

transport

RdmaTransport:: submitTransferTask

ibv_post_send

request1—n

slice1

slice2

slice3 …

lkey

dst_addr src_addr

lkey

dst_addr src_addr

lkey

dst_addr src_addr

WorkerPool:: submitPostSend()

slice1

slice2

slice3 …

lkey

dst_addr src_addr

lkey

dst_addr src_addr

lkey

dst_addr src_addr

slice1

slice2

slice3 …

lkey

dst_addr src_addr

lkey

dst_addr src_addr

lkey

dst_addr src_addr

rkey peer_nic retry_cnt

rkey peer_nic retry_cnt

rkey peer_nic retry_cnt

worker thread:: transferWorker 从 slice que 里面取出来一个 slice 然后走 ibv_post_send

getBatchTransferStatus

ibv_poll_cq

 ibv_reg_mr
       or

ibv_reg_dmabuf_mr

每个 engine 完成各自整块 kv cache的 mr 地址范围,rkey,NIC GID 等注册,在 host:port 等对端 的RPC 服务来取

TransferEngineImpl:: getRpcPort

返回 engine 监听的 RPC 端口

TransferEngineImpl()

scheduler

process

worker

process

xxxConnectorWorker

xxxConnectorScheduler

第一次会拿回 整个kv cache buffer 的地址范围和 rkey