met 1.0.0-beta-preview

Metrale Engine: pure Rust LLM inference server (HTTP API, scheduler, TUI, CLI).
# scenario preempt_requeue
bind_gpu_to_thread()
create_stream() -> 1
create_event() -> 2
adapter_id_for(-1)
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
alloc_sequence() -> slot 2
adapter_id_for(-1)
acquire_adapter_slot(-1)
ep_broadcast_cmd_for_seq(seq=2, 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, s3@2:len=5, stream=0)
argmax_on_device(row=0, stream=0) -> 30
fx launch Decode{n=3, ctx=Unified, readback=Argmax}
decode_batch(tokens=[10, 20, 30], seqs=["s1@0:len=5", "s2@1:len=5", "s3@2:len=5"], stream=0)
commit_ctx(s1@0:len=6, n=1, base=5, row=0)
commit_ctx(s2@1:len=6, n=1, base=5, row=1)
commit_ctx(s3@2:len=6, n=1, base=5, row=2)
argmax_batch(row=0, n=3, stream=0) -> [11, 21, 31]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s1@0:len=6)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s2@1:len=6)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s3@2:len=6)
num_free_blocks() -> 997
-- tick 2
fx launch Decode{n=3, ctx=Unified, readback=Argmax}
decode_batch(tokens=[11, 21, 31], seqs=["s1@0:len=6", "s2@1:len=6", "s3@2:len=6"], stream=0) -> ERR KV cache exhausted
fx apply ReleaseSeq{cache=true, preempt_requeue}
cache_sequence(s1@0:len=6)
free_sequence(s1@0:len=6, blocks=1)
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff1)
fx launch Decode{n=2, ctx=Unified, readback=Argmax}
decode_batch(tokens=[21, 31], seqs=["s2@1:len=6", "s3@2:len=6"], stream=0)
commit_ctx(s2@1:len=7, n=1, base=6, row=0)
commit_ctx(s3@2:len=7, n=1, base=6, row=1)
argmax_batch(row=0, n=2, stream=0) -> [22, 32]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s2@1:len=7)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s3@2:len=7)
fx apply CompactSlot{target=0}
compact_sequence(s3@2:len=7, new_slot=0)
num_free_blocks() -> 998
alloc_sequence() -> slot 2
acquire_adapter_slot(-1)
ep_broadcast_cmd_for_seq(seq=2, cmd=0xfffffff0)
ep_broadcast_cmd(0x6)
ep_broadcast_cmd(0x0)
ep_broadcast_cmd(0x6)
ep_broadcast_tokens(n=6)
ep_sync_vision_embeds(n=6)
prefill(n=6, s1@2:len=6, stream=0)
num_free_blocks() -> 997
-- tick 3
fx launch Decode{n=3, ctx=Unified, readback=Argmax}
decode_batch(tokens=[32, 22, 11], seqs=["s3@0:len=7", "s2@1:len=7", "s1@2:len=6"], stream=0)
commit_ctx(s3@0:len=8, n=1, base=7, row=0)
commit_ctx(s2@1:len=8, n=1, base=7, row=1)
commit_ctx(s1@2:len=7, n=1, base=6, row=2)
argmax_batch(row=0, n=3, stream=0) -> [33, 23, 12]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s3@0:len=8)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s2@1:len=8)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s1@2:len=7)
num_free_blocks() -> 997
-- tick 4
fx launch Decode{n=3, ctx=Unified, readback=Argmax}
decode_batch(tokens=[33, 23, 12], seqs=["s3@0:len=8", "s2@1:len=8", "s1@2:len=7"], stream=0)
commit_ctx(s3@0:len=9, n=1, base=8, row=0)
commit_ctx(s2@1:len=9, n=1, base=8, row=1)
commit_ctx(s1@2:len=8, n=1, base=7, row=2)
argmax_batch(row=0, n=3, stream=0) -> [34, 63, 13]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s3@0:len=9)
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s1@2:len=8)
fx apply ReleaseSeq{cache=true, finish_sequence}
cache_sequence(s2@1:len=9)
free_sequence(s2@1:len=9, blocks=1)
ep_broadcast_cmd_for_seq(seq=1, cmd=0xfffffff1)
fx apply CompactSlot{target=1}
compact_sequence(s1@2:len=8, new_slot=1)
num_free_blocks() -> 998
-- tick 5
fx launch Decode{n=2, ctx=Unified, readback=Argmax}
decode_batch(tokens=[34, 13], seqs=["s3@0:len=9", "s1@1:len=8"], stream=0)
commit_ctx(s3@0:len=10, n=1, base=9, row=0)
commit_ctx(s1@1:len=9, n=1, base=8, row=1)
argmax_batch(row=0, n=2, stream=0) -> [63, 14]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s1@1:len=9)
fx apply ReleaseSeq{cache=true, finish_sequence}
cache_sequence(s3@0:len=10)
free_sequence(s3@0:len=10, blocks=1)
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff1)
fx apply CompactSlot{target=0}
compact_sequence(s1@1:len=9, new_slot=0)
num_free_blocks() -> 999
-- tick 6
fx launch Decode{n=1, ctx=Unified, readback=Argmax}
decode_batch(tokens=[14], seqs=["s1@0:len=9"], stream=0)
commit_ctx(s1@0:len=10, n=1, base=9, row=0)
argmax_batch(row=0, n=1, stream=0) -> [15]
fx apply MarconiCheckpoint
decode_marconi_checkpoint(s1@0:len=10)
num_free_blocks() -> 999
-- tick 7
fx launch Decode{n=1, ctx=Unified, readback=Argmax}
decode_batch(tokens=[15], seqs=["s1@0:len=10"], stream=0)
commit_ctx(s1@0:len=11, n=1, base=10, row=0)
argmax_batch(row=0, n=1, stream=0) -> [63]
fx apply ReleaseSeq{cache=true, finish_sequence}
cache_sequence(s1@0:len=11)
free_sequence(s1@0:len=11, blocks=1)
ep_broadcast_cmd_for_seq(seq=0, cmd=0xfffffff1)
num_free_blocks() -> 1000
-- tick 8
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 Done(stop, n=7, think=0, cached=0, acc=0, guard=None)
out s2: T20 T21 T22 T23 Done(stop, n=5, think=0, cached=0, acc=0, guard=None)
out s3: T30 T31 T32 T33 T34 Done(stop, n=6, think=0, cached=0, acc=0, guard=None)