# scenario dflash_batched
bind_gpu_to_thread()
create_stream() -> 1
create_event() -> 2
adapter_id_for(-1)
adapter_id_for(-1)
adapter_id_for(-1)
num_free_blocks() -> 1000
-- tick 1
alloc_sequence() -> slot 0
adapter_id_for(-1)
acquire_adapter_slot(-1)
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff0)
ep_broadcast_cmd(0x5)
ep_broadcast_cmd(0x0)
ep_broadcast_cmd(0x5)
ep_broadcast_tokens(n=5)
ep_sync_vision_embeds(n=5)
prefill(n=5, s1@0:len=5, stream=0)
argmax_on_device(row=0, stream=0) -> 10
alloc_sequence() -> slot 1
adapter_id_for(-1)
acquire_adapter_slot(-1)
ep_broadcast_cmd_for_seq(seq=1, cmd=0xfffffff0)
ep_broadcast_cmd(0x5)
ep_broadcast_cmd(0x0)
ep_broadcast_cmd(0x5)
ep_broadcast_tokens(n=5)
ep_sync_vision_embeds(n=5)
prefill(n=5, s2@1:len=5, stream=0)
argmax_on_device(row=0, stream=0) -> 20
mtp_slot_draft_capacity(0)
mtp_slot_draft_capacity(1)
sync_secondary()
run_mtp_propose_multi(token=10, pos=5, n=5, s1@0:len=5, stream=0, mask=false) -> [11, 12, 13, 14, 16]
sync_secondary()
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff4)
ep_broadcast_cmd(0xa)
ep_broadcast_cmd(0xb)
ep_broadcast_cmd(0xc)
ep_broadcast_cmd(0xd)
decode_and_verify_fused(tokens=[10, 11, 12, 13], s1@0:len=9) -> [11, 12, 13, 14]
ep_broadcast_cmd(0x3)
commit_ctx(s1@0:len=9, n=4, base=5, row=0)
commit_accepted_prefix(s1@0:len=9, na=4, k=4)
save_hidden_for_mtp(3, stream=0)
trim_proposer_state(s1@0:len=9, na=3, stream=0)
run_mtp_propose_multi(token=14, pos=9, n=5, s1@0:len=9, stream=0, mask=false) -> [16, 16, 17, 18, 19]
run_mtp_propose_multi(token=20, pos=5, n=5, s2@1:len=5, stream=0, mask=false) -> [21, 22, 23, 24, 26]
sync_secondary()
ep_broadcast_cmd_for_seq(seq=1, cmd=0xfffffff4)
ep_broadcast_cmd(0x14)
ep_broadcast_cmd(0x15)
ep_broadcast_cmd(0x16)
ep_broadcast_cmd(0x17)
decode_and_verify_fused(tokens=[20, 21, 22, 23], s2@1:len=9) -> [21, 22, 23, 24]
ep_broadcast_cmd(0x3)
commit_ctx(s2@1:len=9, n=4, base=5, row=0)
commit_accepted_prefix(s2@1:len=9, na=4, k=4)
save_hidden_for_mtp(3, stream=0)
trim_proposer_state(s2@1:len=9, na=3, stream=0)
run_mtp_propose_multi(token=24, pos=9, n=5, s2@1:len=9, stream=0, mask=false) -> [26, 26, 27, 28, 29]
num_free_blocks() -> 998
-- tick 2
mtp_slot_draft_capacity(0)
mtp_slot_draft_capacity(1)
can_batch_verify([6, 6]) -> true
sync_secondary()
decode_verify_batched(tokens=[14, 16, 16, 17, 18, 19, 24, 26, 26, 27, 28, 29], ks=[6, 6], seqs=["s1@0:len=15", "s2@1:len=15"], stream=0, woa=true) -> [15, 1, 1, 1, 1, 1, 25, 1, 1, 1, 1, 1]
commit_ctx(s1@0:len=10, n=1, base=9, row=0)
commit_ctx(s2@1:len=10, n=1, base=9, row=1)
gdn_fold_accepted(slots=[0, 1], accepted=[1, 1], k=6) -> true
commit_accepted_prefix(s1@0:len=10, na=1, k=6)
commit_accepted_prefix(s2@1:len=10, na=1, k=6)
stash_verify_hidden_rows([0, 6], stream=0)
trim_proposer_state(s1@0:len=10, na=0, stream=0)
trim_proposer_state(s2@1:len=10, na=0, stream=0)
run_mtp_propose_batched(tokens=[15, 25], positions=[10, 10], stash=[0, 1], n=5, stream=0) -> [[16, 17, 18, 19, 21], [26, 27, 28, 29, 31]]
num_free_blocks() -> 998
-- tick 3
mtp_slot_draft_capacity(0)
mtp_slot_draft_capacity(1)
can_batch_verify([6, 6]) -> true
sync_secondary()
decode_verify_batched(tokens=[15, 16, 17, 18, 19, 21, 25, 26, 27, 28, 29, 31], ks=[6, 6], seqs=["s1@0:len=16", "s2@1:len=16"], stream=0, woa=true) -> [16, 17, 18, 19, 20, 1, 26, 27, 28, 29, 30, 1]
commit_ctx(s1@0:len=15, n=5, base=10, row=0)
commit_ctx(s2@1:len=15, n=5, base=10, row=1)
gdn_fold_accepted(slots=[0, 1], accepted=[5, 5], k=6) -> true
commit_accepted_prefix(s1@0:len=15, na=5, k=6)
commit_accepted_prefix(s2@1:len=15, na=5, k=6)
stash_verify_hidden_rows([4, 10], stream=0)
trim_proposer_state(s1@0:len=15, na=4, stream=0)
trim_proposer_state(s2@1:len=15, na=4, stream=0)
run_mtp_propose_batched(tokens=[20, 30], positions=[15, 15], stash=[0, 1], n=5, stream=0) -> [[21, 22, 23, 24, 26], [31, 32, 33, 34, 36]]
num_free_blocks() -> 996
-- tick 4
mtp_slot_draft_capacity(0)
mtp_slot_draft_capacity(1)
can_batch_verify([6, 6]) -> true
sync_secondary()
decode_verify_batched(tokens=[20, 21, 22, 23, 24, 26, 30, 31, 32, 33, 34, 36], ks=[6, 6], seqs=["s1@0:len=21", "s2@1:len=21"], stream=0, woa=true) -> [21, 22, 23, 24, 25, 1, 31, 32, 33, 34, 35, 1]
commit_ctx(s1@0:len=20, n=5, base=15, row=0)
commit_ctx(s2@1:len=20, n=5, base=15, row=1)
gdn_fold_accepted(slots=[0, 1], accepted=[5, 5], k=6) -> true
commit_accepted_prefix(s1@0:len=20, na=5, k=6)
commit_accepted_prefix(s2@1:len=20, na=5, k=6)
stash_verify_hidden_rows([4, 10], stream=0)
trim_proposer_state(s1@0:len=20, na=4, stream=0)
trim_proposer_state(s2@1:len=20, na=4, stream=0)
run_mtp_propose_batched(tokens=[25, 35], positions=[20, 20], stash=[0, 1], n=5, stream=0) -> [[63, 63, 63, 63, 1], [63, 63, 63, 63, 1]]
num_free_blocks() -> 996
-- tick 5
mtp_slot_draft_capacity(0)
mtp_slot_draft_capacity(1)
can_batch_verify([6, 6]) -> true
sync_secondary()
decode_verify_batched(tokens=[25, 63, 63, 63, 63, 1, 35, 63, 63, 63, 63, 1], ks=[6, 6], seqs=["s1@0:len=26", "s2@1:len=26"], stream=0, woa=true) -> [63, 63, 63, 63, 63, 1, 63, 63, 63, 63, 63, 1]
commit_ctx(s1@0:len=25, n=5, base=20, row=0)
commit_ctx(s2@1:len=25, n=5, base=20, row=1)
gdn_fold_accepted(slots=[0, 1], accepted=[5, 5], k=6) -> true
commit_accepted_prefix(s1@0:len=25, na=5, k=6)
commit_accepted_prefix(s2@1:len=25, na=5, k=6)
stash_verify_hidden_rows([4, 10], stream=0)
fx apply ReleaseSeq{cache=true, finish_sequence}
cache_sequence(s1@0:len=25)
free_sequence(s1@0:len=25, blocks=2)
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff1)
fx apply ReleaseSeq{cache=true, finish_sequence}
cache_sequence(s2@1:len=25)
free_sequence(s2@1:len=25, blocks=2)
ep_broadcast_cmd_for_seq(seq=1, cmd=0xfffffff1)
num_free_blocks() -> 1000
-- tick 6
fx apply EpShutdown
ep_broadcast_cmd_for_seq(seq=0, cmd=0xffffffff)
fx apply Quiesce{stream=0}
synchronize(stream=0)
fx apply Quiesce{stream=1}
synchronize(stream=1)
fx teardown
teardown()
out s1: T10 T11 T12 T13 T14 T15 T16 T17 T18 T19 T20 T21 T22 T23 T24 T25 Done(stop, n=17, think=0, cached=0, acc=15, guard=None)
out s2: T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33 T34 T35 Done(stop, n=17, think=0, cached=0, acc=15, guard=None)