laguna-xs-2.1

Laguna-XS-2.1 is a Poolside coding model with tool calling and reasoning, served through an OpenAI-compatible API.

Runs on p150x2 or p150x4 โ€” see the serve profiles below.

Packaged and published with tt-model-manager 0.1.0 (manifest schema 5.1).

Quickstart

tt-model pull  tt-hous/laguna-xs-2.1 --with-weights
tt-model serve tt-hous/laguna-xs-2.1

pull --with-weights downloads the Docker image and the poolside/Laguna-XS-2.1 weights at c5f36269bbdbd3f27fddc9a9f9dbae0cf2cf57db (into your HF cache; they are not in the image). serve starts an OpenAI-compatible server on port 20000 (or the next free port, if that one is busy); the first start compiles kernels for your device, which takes several minutes, and the server is ready when it logs Application startup complete.

Point a client at it

Use the endpoint printed by tt-model serve (normally http://127.0.0.1:20000/v1). Tool calling and reasoning are on (poolside_v1 parsers). First boot JIT-compiles kernels (~10 min) before Application startup complete.

Hardware

p150x2 uses two P150 cards or one internal P300c in a TT-QuietBox 2. p150x4 uses four P150 cards or both internal P300c cards in a TT-QuietBox 2. A single P150 is unsupported: the full model exhausts device memory while loading weights, before allocating the KV cache.

Expected performance

Measured on p150x2 (two P150 ASICs, 1x2 mesh), vLLM 0.24.0, output 512 tokens, concurrency 1. The profile enables automatic prefix caching; this sweep gave every request a unique cache salt to bypass prefix reuse, so the numbers are cold.

Input tokens requested Output tokens Concurrency Decode tok/s/user Aggregate output tok/s Time to first token End-to-end latency
128 512 1 19.97 19.84 0.215 s 25.801 s
1,024 512 1 19.82 18.29 2.213 s 27.995 s
2,048 512 1 19.80 18.05 2.563 s 28.366 s
4,096 512 1 19.78 14.70 8.984 s 34.822 s
8,192 512 1 19.72 11.23 19.680 s 45.592 s
16,384 512 1 19.61 8.53 33.931 s 59.993 s
32,768 512 1 19.38 5.44 67.812 s 94.178 s
65,536 512 1 18.95 2.79 156.630 s 183.595 s
130,048 512 1 18.15 1.25 380.812 s 408.967 s

Decode is nearly flat across the context range. Time to first token and end-to-end latency are prefill-dominated at long context.

p150x4 (four P150 ASICs, 1x4 mesh), same method, prefix caching disabled so every request is cold:

Input tokens requested Output tokens Concurrency Decode tok/s/user Aggregate output tok/s Time to first token End-to-end latency
128 512 1 28.99 28.84 0.129 s 17.754 s
1,024 512 1 28.79 26.98 1.232 s 18.980 s
2,048 512 1 28.74 26.68 1.408 s 19.189 s
4,096 512 1 28.58 22.40 4.975 s 22.853 s
8,192 512 1 28.31 17.69 10.896 s 28.948 s
16,384 512 1 27.76 11.62 25.643 s 44.049 s
32,768 512 1 26.74 5.97 66.650 s 85.757 s
65,536 512 1 24.89 2.38 194.450 s 214.977 s
130,048 512 1 21.91 2.23 206.156 s 229.481 s

Four ASICs raise decode by about 45% at short context and 21% at full context. Prefill is the exception: p150x4 does not use streaming prefill, so it still pads to the next power of two. That makes its 65,536 request slower than the same request on p150x2 (194.450 s against 156.630 s), while 130,048 is much faster (206.156 s against 380.812 s).

Serve profiles

One image serves every profile below; pick one with --profile.

profile hardware mesh max_num_seqs max_model_len
p150x2 (default) p150x2 P150x2 1 131072
p150x4 p150x4 P150x4 8 131072

Provenance

The exact sources the image was built from โ€” code/ in this repo is byte-identical to the model code inside the image:

component built from
tt-metal 2d8292201660bff1ad9caf6cac556d9937f436d4 (dirty tree โ€” the image includes uncommitted changes)
vLLM v0.24.0
vllm-tt-plugin c127c17d80d66ee83d23064d3a62ac844a1170de
code/ digest 5fcf91fffd6325bd (sha256, first 16 hex digits)
built 2026-09-14T13:55:33+00:00 by tt-model 0.1.0
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support