met 1.0.0-beta-preview

Metrale Engine: pure Rust LLM inference server (HTTP API, scheduler, TUI, CLI).
# scenario dflash
bind_gpu_to_thread()
create_stream() -> 1
create_event() -> 2
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
mtp_slot_draft_capacity(0)
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]
num_free_blocks() -> 999
-- tick 2
mtp_slot_draft_capacity(0)
sync_secondary()
decode_verify_dflash(tokens=[14, 16, 16, 17, 18, 19], s1@0:len=15) -> [15, 1, 1, 1, 1, 1]
commit_ctx(s1@0:len=10, n=1, base=9, row=0)
commit_accepted_prefix(s1@0:len=10, na=1, k=6)
save_hidden_for_mtp(0, stream=0)
trim_proposer_state(s1@0:len=10, na=0, stream=0)
run_mtp_propose_multi(token=15, pos=10, n=5, s1@0:len=10, stream=0, mask=false) -> [16, 17, 18, 19, 21]
num_free_blocks() -> 999
-- tick 3
mtp_slot_draft_capacity(0)
sync_secondary()
decode_verify_dflash(tokens=[15, 16, 17, 18, 19, 21], s1@0:len=16) -> [16, 17, 18, 19, 20, 1]
commit_ctx(s1@0:len=15, n=5, base=10, row=0)
commit_accepted_prefix(s1@0:len=15, na=5, k=6)
save_hidden_for_mtp(4, stream=0)
trim_proposer_state(s1@0:len=15, na=4, stream=0)
run_mtp_propose_multi(token=20, pos=15, n=5, s1@0:len=15, stream=0, mask=false) -> [21, 22, 23, 24, 26]
num_free_blocks() -> 998
-- tick 4
mtp_slot_draft_capacity(0)
sync_secondary()
decode_verify_dflash(tokens=[20, 21, 22, 23, 24, 26], s1@0:len=21) -> [21, 22, 23, 24, 25, 1]
commit_ctx(s1@0:len=20, n=5, base=15, row=0)
commit_accepted_prefix(s1@0:len=20, na=5, k=6)
save_hidden_for_mtp(4, stream=0)
trim_proposer_state(s1@0:len=20, na=4, stream=0)
run_mtp_propose_multi(token=25, pos=20, n=5, s1@0:len=20, stream=0, mask=false) -> [63, 63, 63, 63, 1]
num_free_blocks() -> 998
-- tick 5
mtp_slot_draft_capacity(0)
sync_secondary()
decode_verify_dflash(tokens=[25, 63, 63, 63, 63, 1], s1@0:len=26) -> [63, 63, 63, 63, 63, 1]
commit_ctx(s1@0:len=25, n=5, base=20, row=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)
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)