Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

gpt-oss-20b-blackhole-fast

by Jashan Pratap Singh jashansinghTT/gpt-oss-20b-blackhole-fast

gpt-oss-20b-blackhole-fast is an open-weight model for text generation from Jashan Pratap Singh, released under Apache License 2.0. Its published files total 1.3 GB.

Runs on p150 (one Blackhole P150 chip), p150x2 (the two P150 ASICs of one P300C board) and p150x4 (the four P150 ASICs of two P300C boards, a QuietBox 2).

Parameters—
Context—
Weights1.3 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Jashan Pratap Singh, published under apache-2.0, revision f97ceeaa7c22.

Runs on p150 (one Blackhole P150 chip), p150x2 (the two P150 ASICs of one P300C board) and p150x4 (the four P150 ASICs of two P300C boards, a QuietBox 2). Same model, same serving stack and the same six profiles as tt-hous/gpt-oss-20b-p150, with faster decode: a lone request on P150x4, P150x2, P150 decodes through fused, DRAM-streaming decode ops (from tenstorrent/tt-metal#60161, adapted to this runtime and extended to one and two chips). On P150x4, 2 to 4 decoding requests share one pass of those ops, and 5 to 32 run the base package's batched decode with the routed experts streamed from the fused path's weight copies. Prefill takes the base package's code path with faster expert dispatch…

Read Jashan Pratap Singh's full model card

Derived from openai/gpt-oss-20b. Weights revision 6cee5e81. This represents the model implementation on Tenstorrent hardware. See the original model card for license, training, and evaluation details.

Runs on p150 (one Blackhole P150 chip), p150x2 (the two P150 ASICs of one P300C board) and p150x4 (the four P150 ASICs of two P300C boards, a QuietBox 2).

Same model, same serving stack and the same six profiles as tt-hous/gpt-oss-20b-p150, with faster decode: a lone request on P150x4, P150x2, P150 decodes through fused, DRAM-streaming decode ops (from tenstorrent/tt-metal#60161, adapted to this runtime and extended to one and two chips). On P150x4, 2 to 4 decoding requests share one pass of those ops, and 5 to 32 run the base package's batched decode with the routed experts streamed from the fused path's weight copies. Prefill takes the base package's code path with faster expert dispatch (same numerics). Prefix caching, tool calling, harmony reasoning and every other request run the base package's own code paths.

Status: Measured on this image: the device steps, serving tables, task scores and context-limit checks below come from one QuietBox 2 and the same harness as the served-package numbers they are compared with; the teacher-forced accuracy table comes from development builds of the same decode path.

Quickstart

uv tool install tenstorrent   # once: the Tenstorrent CLI, `tt`
tt model pull jashansinghTT/gpt-oss-20b-blackhole-fast
tt serve jashansinghTT/gpt-oss-20b-blackhole-fast -- --profile p150x4-throughput

The first start compiles kernels and converts the weights (several minutes); the server is ready when it logs Application startup complete. Then send requests with any OpenAI client; model is the weights id:

curl -s http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "openai/gpt-oss-20b",
  "messages": [{"role": "user", "content": "Summarize the attached report in five bullets."}],
  "max_tokens": 2048, "reasoning_effort": "medium", "stream": true}'

Which profile

profile use it for
p150x4-throughput (default), p150x2-throughput, p150-throughput bulk work where only the time to finish a batch counts. Prefill-first in 32,768-token steps.
p150x4, p150x2, p150 interactive and agentic traffic. Long prompts are prefilled in 8,192-token steps with 8 decode steps for every running request between them.

Every profile is configured for the full 131,072-token context (checked on every profile: a 131,071-token prompt is admitted, a 131,073-token prompt gets HTTP 400), runs up to 32 concurrent requests and caches prefixes. The fused decode is used whenever exactly one request is decoding (on P150x4 also 2 to 4), on every profile of a fused mesh except p150-throughput, p150x2-throughput: p150-throughput keeps the base package's decode (its batched decode reads the base package's expert layout at full speed; one chip cannot hold both layouts), so a single user on that hardware gets the fused speed-up with p150. p150x2-throughput keeps the base package's decode (building the TP=2 fused path slows its batched decode by about 3 % at 8 users), so a single user on that hardware gets the fused speed-up with p150x2.

Serve profiles

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

profile hardware mesh max_num_seqs max_model_len prefill step (tokens) decode steps between prefill steps batch-1 decode KV cache (tokens / blocks)
p150 p150 P150 32 131072 8,192 8 fused 266,240 / 4,160
p150-throughput p150 P150 32 131072 32,768 0 base package 266,240 / 4,160
p150x2 p150x2 P150x2 32 131072 8,192 8 fused 528,384 / 8,256
p150x2-throughput p150x2 P150x2 32 131072 32,768 0 base package 528,384 / 8,256
p150x4 p150x4 P150x4 32 131072 8,192 8 fused 1,056,768 / 16,512
p150x4-throughput (default) p150x4 P150x4 32 131072 32,768 0 fused 1,056,768 / 16,512

KV cache: the pool of the 12 full-attention layers in 64-token blocks, as each profile's server allocated it at boot (vLLM's GPU KV cache size): it holds 2.03 (P150), 4.03 (P150x2), 8.06 (P150x4) full 131,072-token requests. The 12 sliding-window layers keep a short per-sequence ring on the device outside this pool. The base package allocates the same pool on this hardware: the fused decode did not reduce it.

The p150x2 profiles use devices 0 and 1, which must be the two ASICs of the same P300C board. The p150x4 profiles use devices 0 to 3, the four ASICs of two P300C boards connected as one ring.

Using it

The server exposes the OpenAI API at http://127.0.0.1:<port>/v1 (chat completions, completions and /v1/models). Pass "model": "openai/gpt-oss-20b". The reasoning comes back separately from the answer in message.reasoning; tool calling is enabled (--tool-call-parser openai). max_tokens covers reasoning and answer, with the base package's answer reserve (VLLM_HARMONY_FINAL_RESERVE_TOKENS).

Expected performance

Measured on a QuietBox 2 (two P300C boards, firmware 19.15.0.0, TT-KMD 2.10.0) with the base package's own latency ladder and bench client (random-token prompts of exactly ISL tokens to /v1/completions, streamed, output pinned to 128 tokens, greedy, Users concurrent requests, N = 4 per user, one warmup; medians; the final rows are the median of 3 passes, the first with the baseline's seeds). "Before" is tt-hous/gpt-oss-20b-p150 measured the same way on the same box; the device step is a traced batch-1 decode replay (mean over 256 tokens after warmup, context 128).

mesh served package: device step / API c=1 this package: device step / API c=1 tt-lab (same box, best checked run) PR #60161 (same box)
P150x4 11.34 ms / 88.4 tok/s/u 3.38 ms / 298.4 tok/s/u 4.00 ms 2.42 ms
P150x2 13.74 ms / 72.9 tok/s/u 5.54 ms / 181.8 tok/s/u (p150x2) not measured not supported
P150 20.62 ms / 48.6 tok/s/u 9.55 ms / 105.2 tok/s/u (p150) 11.01 ms not supported

tt-lab is measured with its README protocol (device command time per token at positions 0-1; tt-lab streams BF16 attention and head weights, so it reads more bytes per token). PR #60161 runs on 4 chips only and streams BFP4 experts.

Changes since the previous release

This revision against the previous release of this package (tt-model/gpt-oss-20b-fast:e5e84232a967), measured with the same harness on the same box. Listed: device steps that moved by 2 % or more, and every ladder row whose decode (1 user), total output (2+ users) or TTFT moved by 5 % or more; every other row is within 5 % of the previous release.

what previous release this revision speed-up
P150x2 device step, context 128 13.74 ms 5.54 ms 2.48×
p150x4-throughput, ISL 128, 2 users: output 142 tok/s total 335 tok/s total 2.35×
p150x4-throughput, ISL 128, 4 users: output 233 tok/s total 498 tok/s total 2.14×
p150x4-throughput, ISL 128, 4 users: TTFT 210 ms 191 ms 1.10×
p150x4-throughput, ISL 128, 8 users: output 402 tok/s total 606 tok/s total 1.51×
p150x4-throughput, ISL 128, 8 users: TTFT 252 ms 222 ms 1.13×
p150x4-throughput, ISL 128, 16 users: output 600 tok/s total 1,013 tok/s total 1.69×
p150x4-throughput, ISL 128, 16 users: TTFT 379 ms 320 ms 1.18×
p150x4-throughput, ISL 128, 32 users: output 1,197 tok/s total 1,761 tok/s total 1.47×
p150x4-throughput, ISL 128, 32 users: TTFT 543 ms 489 ms 1.11×
p150x4-throughput, ISL 1,024, 1 user: TTFT 164 ms 144 ms 1.14×
p150x4-throughput, ISL 1,024, 2 users: output 130 tok/s total 287 tok/s total 2.20×
p150x4-throughput, ISL 1,024, 2 users: TTFT 320 ms 275 ms 1.16×
p150x4-throughput, ISL 1,024, 4 users: output 195 tok/s total 369 tok/s total 1.90×
p150x4-throughput, ISL 1,024, 4 users: TTFT 628 ms 529 ms 1.19×
p150x4-throughput, ISL 1,024, 8 users: output 317 tok/s total 434 tok/s total 1.37×
p150x4-throughput, ISL 1,024, 8 users: TTFT 964 ms 867 ms 1.11×
p150x4-throughput, ISL 1,024, 16 users: output 432 tok/s total 632 tok/s total 1.46×
p150x4-throughput, ISL 1,024, 16 users: TTFT 1,686 ms 1,520 ms 1.11×
p150x4-throughput, ISL 1,024, 32 users: output 676 tok/s total 863 tok/s total 1.28×
p150x4-throughput, ISL 1,024, 32 users: TTFT 3,189 ms 2,859 ms 1.12×
p150x4-throughput, ISL 4,096, 1 user: TTFT 459 ms 394 ms 1.17×
p150x4-throughput, ISL 16,384, 1 user: TTFT 1,560 ms 1,418 ms 1.10×
p150x4-throughput, ISL 32,768, 1 user: TTFT 3,292 ms 3,016 ms 1.09×
p150x4-throughput, ISL 65,536, 1 user: TTFT 7,487 ms 6,898 ms 1.09×
p150x4, ISL 128, 8 users: output 411 tok/s total 593 tok/s total 1.44×
p150x4, ISL 128, 8 users: TTFT 249 ms 226 ms 1.10×
p150x4, ISL 4,096, 1 user: TTFT 440 ms 390 ms 1.13×
p150x2 (previous: p150x2-throughput), ISL 128, 1 user: decode 72.9 tok/s/u 181.8 tok/s/u 2.49×
p150x2 (previous: p150x2-throughput), ISL 1,024, 1 user: decode 72.2 tok/s/u 177.4 tok/s/u 2.46×
p150x2 (previous: p150x2-throughput), ISL 1,024, 1 user: TTFT 216 ms 173 ms 1.25×
p150x2 (previous: p150x2-throughput), ISL 4,096, 1 user: decode 71.3 tok/s/u 170.7 tok/s/u 2.39×
p150x2 (previous: p150x2-throughput), ISL 4,096, 1 user: TTFT 627 ms 482 ms 1.30×
p150x2 (previous: p150x2-throughput), ISL 32,768, 1 user: decode 67.9 tok/s/u 156.2 tok/s/u 2.30×
p150x2 (previous: p150x2-throughput), ISL 32,768, 1 user: TTFT 5,080 ms 4,234 ms 1.20×
p150x2-throughput, ISL 128, 8 users: TTFT 340 ms 294 ms 1.16×
p150x2-throughput, ISL 128, 32 users: TTFT 772 ms 616 ms 1.25×
p150x2-throughput, ISL 1,024, 1 user: TTFT 216 ms 169 ms 1.28×
p150x2-throughput, ISL 4,096, 1 user: TTFT 627 ms 474 ms 1.32×
p150x2-throughput, ISL 32,768, 1 user: TTFT 5,080 ms 3,966 ms 1.28×
p150, ISL 128, 8 users: TTFT 381 ms 325 ms 1.17×
p150, ISL 128, 32 users: TTFT 945 ms 742 ms 1.27×
p150, ISL 1,024, 1 user: TTFT 287 ms 228 ms 1.26×
p150, ISL 4,096, 1 user: TTFT 818 ms 617 ms 1.33×
p150, ISL 32,768, 1 user: TTFT 7,611 ms 6,036 ms 1.26×
p150-throughput, ISL 128, 8 users: TTFT 372 ms 307 ms 1.21×
p150-throughput, ISL 128, 32 users: TTFT 927 ms 715 ms 1.30×
p150-throughput, ISL 1,024, 1 user: TTFT 278 ms 218 ms 1.28×
p150-throughput, ISL 4,096, 1 user: TTFT 808 ms 598 ms 1.35×
p150-throughput, ISL 32,768, 1 user: TTFT 7,527 ms 5,832 ms 1.29×

P150x4 (p150x4-throughput)

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 87 → 86 11.31 → 3.35 88.4 → 298.4 84 → 250 3.38×
128 128 2 8 169 → 159 12.86 → 4.77 77.8 → 209.5 142 → 335 2.69×
128 128 4 16 295 → 191 15.66 → 6.55 63.8 → 152.6 222 → 498 2.39×
128 128 8 32 297 → 222 18.27 → 11.59 54.7 → 86.3 393 → 606 1.58×
128 128 16 64 415 → 320 23.74 → 13.49 42.1 → 74.1 596 → 1,013 1.76×
128 128 32 128 602 → 489 22.64 → 14.47 44.2 → 69.1 1,176 → 1,761 1.56×
1,024 128 1 4 232 → 144 11.43 → 3.45 87.5 → 290.0 69 → 220 3.31×
1,024 128 2 8 419 → 275 12.98 → 4.81 77.1 → 207.9 124 → 287 2.70×
1,024 128 4 16 701 → 529 15.62 → 6.66 64.0 → 150.1 181 → 369 2.34×
1,024 128 8 32 1,005 → 867 18.23 → 11.78 54.9 → 84.9 309 → 434 1.55×
1,024 128 16 64 1,828 → 1,520 24.16 → 13.53 41.4 → 73.9 420 → 632 1.79×
1,024 128 32 128 3,184 → 2,859 22.77 → 14.88 43.9 → 67.2 670 → 863 1.53×
4,096 128 1 4 506 → 394 11.55 → 3.58 86.6 → 279.7 53 → 151 3.23×
16,384 128 1 4 1,588 → 1,418 11.82 → 3.73 84.6 → 268.4 40 → 77 3.17×
32,768 128 1 4 3,302 → 3,016 12.16 → 3.93 82.3 → 254.4 28 → 44 3.09×
65,536 128 1 4 7,441 → 6,898 12.87 → 4.32 77.7 → 231.2 16 → 22 2.98×

P150x4 (p150x4)

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 87 → 83 11.31 → 3.35 88.4 → 298.3 84 → 251 3.38×
128 128 8 32 346 → 226 17.87 → 11.77 55.9 → 85.0 393 → 593 1.52×
4,096 128 1 4 462 → 390 11.55 → 3.57 86.6 → 279.8 63 → 151 3.23×

P150x2 (p150x2-throughput) — base-package decode (see Which profile)

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 125 → 125 13.71 → 13.71 72.9 → 72.9 69 → 69 1.00×
128 128 8 32 435 → 294 24.97 → 24.61 40.0 → 40.6 280 → 296 1.01×
128 128 32 128 801 → 616 33.10 → 33.06 30.2 → 30.3 821 → 855 1.00×
1,024 128 1 4 322 → 169 13.85 → 13.85 72.2 → 72.2 58 → 66 1.00×
4,096 128 1 4 707 → 474 14.03 → 14.03 71.3 → 71.3 44 → 57 1.00×
32,768 128 1 4 5,113 → 3,966 14.74 → 14.73 67.9 → 67.9 20 → 25 1.00×

P150x2 (p150x2)

"Before" here is the served package's p150x2-throughput profile (the baseline has no p150x2 rows); at c=1 with prompts up to 8,192 tokens the two profiles schedule a request the same way.

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 125 → 128 13.71 → 5.50 72.9 → 181.8 69 → 155 2.49×
128 128 8 32 435 → 289 24.97 → 25.69 40.0 → 38.9 280 → 286 0.97×
128 128 32 128 801 → 614 33.10 → 34.22 30.2 → 29.2 821 → 830 0.97×
1,024 128 1 4 322 → 173 13.85 → 5.64 72.2 → 177.4 58 → 144 2.46×
4,096 128 1 4 707 → 482 14.03 → 5.86 71.3 → 170.7 44 → 104 2.40×
32,768 128 1 4 5,113 → 4,234 14.74 → 6.40 67.9 → 156.2 20 → 31 2.30×

P150 (p150-throughput) — base-package decode (see Which profile)

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 210 → 96 20.59 → 20.59 48.6 → 48.6 45 → 47 1.00×
128 128 8 32 496 → 307 45.53 → 44.34 22.0 → 22.6 163 → 172 1.03×
128 128 32 128 1,056 → 715 62.85 → 62.97 15.9 → 15.9 453 → 469 1.00×
1,024 128 1 4 286 → 218 20.91 → 20.91 47.8 → 47.8 42 → 45 1.00×
4,096 128 1 4 818 → 598 21.16 → 21.16 47.3 → 47.3 33 → 39 1.00×
32,768 128 1 4 7,515 → 5,832 23.43 → 23.42 42.7 → 42.7 14 → 17 1.00×

P150 (p150)

"Before" here is the served package's p150-throughput profile (the baseline has no p150 rows); at c=1 with prompts up to 8,192 tokens the two profiles schedule a request the same way.

ISL OSL Users N TTFT before → after (ms) TPOT before → after (ms) Decode before → after (tok/s/u) Out before → after (tok/s total) decode ×
128 128 1 4 210 → 104 20.59 → 9.51 48.6 → 105.2 45 → 98 2.17×
128 128 8 32 496 → 325 45.53 → 46.28 22.0 → 21.6 163 → 166 0.98×
128 128 32 128 1,056 → 742 62.85 → 65.80 15.9 → 15.2 453 → 449 0.96×
1,024 128 1 4 286 → 228 20.91 → 9.75 47.8 → 102.6 42 → 87 2.15×
4,096 128 1 4 818 → 617 21.16 → 10.05 47.3 → 99.5 33 → 67 2.10×
32,768 128 1 4 7,515 → 6,036 23.43 → 11.63 42.7 → 86.0 14 → 20 2.02×

Bytes and bandwidth

Weight bytes each decode token must read (from the weight formats and shapes, batch 1), the measured device step, and the bandwidth that implies per chip. Speed from fewer bytes is not the same as a more efficient engine: compare rows with the same formats (BFP8 experts) for engine efficiency.

variant mesh weight formats GB/token per chip decode step (ms) GB/s per chip % of 512 GB/s DRAM floor (ms)
tt-lab (32 tiles over 4 chips, per chip) p150x4 experts BFP8, attention + head BF16 1.283 4.01 320 63% 2.51
tt-lab (8 tiles, one chip) p150 experts BFP8, attention + head BF16 5.009 11.01 455 89% 9.78
served package (stock decode) p150x4 BFP8 (the same weights as ours) 1.060 11.34 93 18% 2.07
served package (stock decode) p150 BFP8 (the same weights as ours) 3.940 20.62 191 37% 7.69
PR #60161 (fused, BFP4 experts) p150x4 experts BFP4, attention / head BFP8 0.727 2.42 301 59% 1.42
ours, BFP4 experts (rejected: accuracy) p150x4 experts BFP4, attention / head BFP8 0.727 2.69 270 53% 1.42
ours (fused TP4, BFP8 experts) p150x4 experts / attention / head BFP8 1.060 3.38 314 61% 2.07
ours (fused TP1, BFP8 experts) p150 experts / attention / head BFP8 3.940 9.55 413 81% 7.69

Accuracy

Teacher-forced next-token agreement with the Hugging Face reference in fp32 on the CPU (4 prompts × 128 positions, the same harness for every variant): top-1 = the TT argmax equals the reference token, top-5 = it is in the reference top 5, PCC over the full vocabulary.

variant top-1 top-5 PCC
served (p150x4) 94.34% 100.0% 0.9957
PR #60161 (p150x4, BFP4 experts) 91.47% 99.6% 0.9836
ours p150x4 (BFP8 experts) 96.48% 100.0% 0.9974
ours p150 (TP1 fused) 96.88% 100.0% 0.9972
this revision p150x4 (fused TP4, BFP8 experts) 96.48% 100.0% 0.9974
this revision p150x2 (fused TP2, BFP8 experts) 96.29% 100.0% 0.9973
this revision p150 (fused TP1, BFP8 experts) 96.88% 100.0% 0.9972

Task scores through the OpenAI chat API with lm-evaluation-harness (the base package's protocol: reasoning_effort medium, greedy, 4,096-token budget, seed 42, 32 concurrent requests unless noted):

eval served package, P150x4 (full set, this box) this package set
GSM8K flexible-extract, P150x4 p150x4-throughput 86.9% 87.4% full sets
IFEval prompt-level strict, P150x4 p150x4-throughput 80.2% 82.3% full sets
GSM8K flexible-extract, P150x4 p150x4 86.9% 86.8% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)
IFEval prompt-level strict, P150x4 p150x4 80.2% 83.0% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)
GSM8K flexible-extract, P150x2 p150x2-throughput 86.9% 83.2% subsets (250 GSM8K / 100 IFEval)
IFEval prompt-level strict, P150x2 p150x2-throughput 80.2% 81.0% subsets (250 GSM8K / 100 IFEval)
GSM8K flexible-extract, P150x2 p150x2 86.9% 86.4% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)
IFEval prompt-level strict, P150x2 p150x2 80.2% 80.0% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)
GSM8K flexible-extract, P150 p150-throughput 86.9% 87.6% subsets (250 GSM8K / 100 IFEval)
IFEval prompt-level strict, P150 p150-throughput 80.2% 79.0% subsets (250 GSM8K / 100 IFEval)
GSM8K flexible-extract, P150 p150 86.9% 86.4% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)
IFEval prompt-level strict, P150 p150 80.2% 79.0% subsets (250 GSM8K / 100 IFEval), 1 request at a time (every decode step on the fused batch-1 path)

Subset scores move by a few points between runs of the same model. The model's chat template puts the current date in every system prompt, so runs on different days send different prompts, and with 32 concurrent requests a request's greedy output also depends on how many requests decode with it (each batch size rounds differently). The P150 and P150x2 throughput profiles run the same model as the previous release (logits identical per batch size); their subset answers still differ from its runs, which were taken on another day. One subset prompt is 0.4 points of GSM8K and 1 point of IFEval.

Limitations

  • The base package's limitations apply unchanged (hardware, KV capacity, output budget, host sampling for min_p / logit_bias / top_k above 32, no built-in tools).
  • On P150 and P150x2 the fused decode serves one decoding request at a time; with 2 or more requests decoding, the base package's batched decode runs and per-user speed is the base package's. On P150x4 up to 4 decoding requests share the fused ops; 5 to 32 run the batched decode (with the routed experts streamed from the fused path's copies).
  • Decode-only weight copies for the fused path take extra device DRAM (estimates from the weight formats: about 5.9 GB per chip on P150x4 for BFP8 experts, attention, router and LM head; about 1.3 GB on P150, where the routed experts stream from the base package's own tensors; on P150x2 the p150x2 profile's copies take about 11.9 GB per chip, the measured size of its decode-only weight cache). The KV pool is the base package's; it was not reduced (see Serve profiles).
  • Requests that need the base package's batch-1 sampler (penalties, log-probs, top-k above 32, logit bias, grammars) run the base package's batch-1 decode instead of the fused one.
  • On P150x2 only p150x2 uses the fused decode; p150x2-throughput keeps the base package's decode.
  • p150x2 builds the TP=2 fused decode next to the base package's batched decode, which then runs slightly slower (8 users, ISL 128: 286 vs 296 tok/s total on p150x2-throughput). Use p150x2-throughput for concurrent traffic on that hardware.
  • p150 keeps the expert layout the fused decode streams; the base package's batched decode (2-32 requests) reads that layout more slowly (32 users, ISL 128: 15.2 vs 15.9 tok/s/u on p150-throughput). Use p150-throughput for concurrent traffic on that hardware.

Credits

  • Jerry Wang — the fused batch-1 decode for gpt-oss on Blackhole, tenstorrent/tt-metal#60161 (DRAM-streaming expert and linear kernels, fused all-reduce + residual + RMSNorm boundaries, LM head with on-device top-32 sampling). This package builds on it.
  • Adam Housman — the tt-hous/gpt-oss-20b-p150 package this one extends: model code, vLLM integration, the six serve profiles, the benchmark and evaluation harness used for every number here.
  • Matt Craighead — tenstorrent/tt-lab, whose gpt-oss runtime set the speed bar and showed what a DRAM-channel-local, few-sync decode can reach on this hardware.

Provenance

code/ in this repo is byte-identical to the model code inside the image.

component built from
image tt-model/gpt-oss-20b-fast:24c4abfce119, ID sha256:9e913e6c55f20c3000e5be85a5b50c7bc02a3756116d5a124bc0ec9652684d64
base image tt-model/gpt-oss-20b-p150:e0046b6a0e80-hub1 (the tt-hous/gpt-oss-20b-p150 package), ID sha256:73d3500dd460c1e798356163a6b18413ef671b31b015b8c1a265a3f93e81c393
model code overlay commit 24c4abfce119 on top of the base image's Python models (code/ in this repo)
tt-metal runtime ee5703cefab (unchanged; the base image's build)
vLLM / vllm-tt-plugin 2bbd2a6d9 / 30e9b8ea (unchanged)
fused decode origin tenstorrent/tt-metal#60161 at bfe39846436, adapted to the runtime above
weights openai/gpt-oss-20b at 6cee5e81

Identity and Version

Repository
jashansinghTT/gpt-oss-20b-blackhole-fast
Publisher
Jashan Pratap Singh
Task
Text generation
Modality
Text
Library
vllm
Parameters
Not stated by the source
Languages
Not stated by the source
Revision
f97ceeaa7c22ad72f9c910d69ad78e6e9125b46d
First published
2026-10-13
Last updated
2026-10-16

Files and Weights

237 files, 1.3 GB in total.

Configuration131 files · 1.6 MB
Documentation2 files · 32.6 KB
Other103 files · 1.3 GB
Repository1 file · 3.9 KB
Every file
FileTypeSizeSHA-256
STAGED.jsonConfiguration3.0 KB —
code/models/autoports/openai_gpt_oss_20b/__init__.pyConfiguration48 B —
code/models/autoports/openai_gpt_oss_20b/doc/datatype_sweep/selected_precision_config.jsonConfiguration1.4 KB —
code/models/autoports/openai_gpt_oss_20b/doc/datatype_sweep/selected_precision_config_120b.jsonConfiguration1.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/__init__.pyConfiguration83 B —
code/models/autoports/openai_gpt_oss_20b/tt/batched/__init__.pyConfiguration181 B —
code/models/autoports/openai_gpt_oss_20b/tt/batched/expert_stream.pyConfiguration5.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/expert_stream_down.pyConfiguration4.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/glu.pyConfiguration5.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/router_ks.pyConfiguration10.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/routing.pyConfiguration8.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/check_prefill_swiglu.pyConfiguration3.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/contract.pyConfiguration6.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/functional_decoder.pyConfiguration19.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/__init__.pyConfiguration1.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/boundary.pyConfiguration29.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_ilv.pyConfiguration8.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_mrow.pyConfiguration25.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_nd.pyConfiguration10.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_ops.pyConfiguration13.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_tp1_boundary.pyConfiguration3.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_tp1_linear.pyConfiguration6.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/check_tp1_terminal.pyConfiguration4.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/config.pyConfiguration11.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/debug_attn.pyConfiguration11.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/debug_layers.pyConfiguration6.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/decoder.pyConfiguration37.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/ilv.pyConfiguration10.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/inputs.pyConfiguration5.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/multirow.pyConfiguration7.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/nd.pyConfiguration18.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/sampling.pyConfiguration2.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/stream.pyConfiguration40.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/terminal.pyConfiguration33.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/time_mrow.pyConfiguration11.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_decoder.pyConfiguration53.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/generator.pyConfiguration70.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/generator_vllm.pyConfiguration69.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/model.pyConfiguration72.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/multichip_decoder.pyConfiguration208.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/optimized_decoder.pyConfiguration46.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/precision.pyConfiguration16.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/prefill_swiglu.pyConfiguration6.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/sliding_ring.pyConfiguration1.7 KB —
code/models/common/sampling/tt_sampling.pyConfiguration59.0 KB —
code/models/demos/gpt_oss/tt/attention/operations.pyConfiguration13.4 KB —
code/models/demos/gpt_oss/tt/model.pyConfiguration68.2 KB —
code/models/tt_transformers/tt/generator.pyConfiguration167.5 KB —
evidence/code-sha256.jsonConfiguration102 B —
evidence/results/baseline/summary.jsonConfiguration15.4 KB —
evidence/results/extend/bytes_per_token.jsonConfiguration1.7 KB —
evidence/results/package/final2/decode/decode_p150_isl128.jsonConfiguration2.5 KB —
evidence/results/package/final2/decode/decode_p150_isl8192.jsonConfiguration2.6 KB —
evidence/results/package/final2/decode/decode_p150x2_isl128.jsonConfiguration2.6 KB —
evidence/results/package/final2/decode/decode_p150x2_isl8192.jsonConfiguration2.6 KB —
evidence/results/package/final2/decode/decode_p150x4_isl128.jsonConfiguration2.6 KB —
evidence/results/package/final2/decode/decode_p150x4_isl8192.jsonConfiguration2.6 KB —
evidence/results/package/final2/p150-throughput/boot/boot.jsonConfiguration424 B —
evidence/results/package/final2/p150-throughput/ladder/summary.jsonConfiguration8.4 KB —
evidence/results/package/final2/p150-throughput/limits/limits.jsonConfiguration860 B —
evidence/results/package/final2/p150-throughput/quality_gpt_oss20_gsm8k_chat/summary.jsonConfiguration210 B —
evidence/results/package/final2/p150-throughput/quality_ifeval/summary.jsonConfiguration249 B —
evidence/results/package/final2/p150-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package/final2/p150/boot/boot.jsonConfiguration402 B —
evidence/results/package/final2/p150/ladder/summary.jsonConfiguration8.2 KB —
evidence/results/package/final2/p150/limits/limits.jsonConfiguration860 B —
evidence/results/package/final2/p150/quality_c1_gpt_oss20_gsm8k_chat/summary.jsonConfiguration201 B —
evidence/results/package/final2/p150/quality_c1_ifeval/summary.jsonConfiguration241 B —
evidence/results/package/final2/p150/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package/final2/p150x2-throughput/boot/boot.jsonConfiguration430 B —
evidence/results/package/final2/p150x2-throughput/ladder/summary.jsonConfiguration8.5 KB —
evidence/results/package/final2/p150x2-throughput/limits/limits.jsonConfiguration859 B —
evidence/results/package/final2/p150x2-throughput/quality_gpt_oss20_gsm8k_chat/summary.jsonConfiguration212 B —
evidence/results/package/final2/p150x2-throughput/quality_ifeval/summary.jsonConfiguration251 B —
evidence/results/package/final2/p150x2-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package/final2/p150x4-throughput/boot/boot.jsonConfiguration434 B —
evidence/results/package/final2/p150x4-throughput/ladder/summary.jsonConfiguration22.6 KB —
evidence/results/package/final2/p150x4-throughput/limits/limits.jsonConfiguration860 B —
evidence/results/package/final2/p150x4-throughput/quality/summary.jsonConfiguration395 B —
evidence/results/package/final2/p150x4-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package/final2/p150x4/boot/boot.jsonConfiguration412 B —
evidence/results/package/final2/p150x4/ladder/summary.jsonConfiguration4.1 KB —
evidence/results/package/final2/p150x4/limits/limits.jsonConfiguration860 B —
evidence/results/package/final2/p150x4/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package/summary.jsonConfiguration42.8 KB —
evidence/results/package2/final/decode/decode_p150_isl128.jsonConfiguration2.7 KB —
evidence/results/package2/final/decode/decode_p150_isl8192.jsonConfiguration2.7 KB —
evidence/results/package2/final/decode/decode_p150x2_isl128.jsonConfiguration2.7 KB —
evidence/results/package2/final/decode/decode_p150x2_isl8192.jsonConfiguration2.7 KB —
evidence/results/package2/final/decode/decode_p150x4_isl128.jsonConfiguration2.6 KB —
evidence/results/package2/final/decode/decode_p150x4_isl8192.jsonConfiguration2.6 KB —
evidence/results/package2/final/p150-throughput/boot/boot.jsonConfiguration424 B —
evidence/results/package2/final/p150-throughput/ladder/summary.jsonConfiguration8.4 KB —
evidence/results/package2/final/p150-throughput/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150-throughput/quality_gpt_oss20_gsm8k_chat/summary.jsonConfiguration210 B —
evidence/results/package2/final/p150-throughput/quality_ifeval/summary.jsonConfiguration248 B —
evidence/results/package2/final/p150-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package2/final/p150/boot/boot.jsonConfiguration402 B —
evidence/results/package2/final/p150/ladder/summary.jsonConfiguration8.2 KB —
evidence/results/package2/final/p150/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150/quality_c1_gpt_oss20_gsm8k_chat/summary.jsonConfiguration202 B —
evidence/results/package2/final/p150/quality_c1_ifeval/summary.jsonConfiguration241 B —
evidence/results/package2/final/p150/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package2/final/p150x2-throughput/boot/boot.jsonConfiguration430 B —
evidence/results/package2/final/p150x2-throughput/ladder/summary.jsonConfiguration8.5 KB —
evidence/results/package2/final/p150x2-throughput/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150x2-throughput/quality_gpt_oss20_gsm8k_chat/summary.jsonConfiguration212 B —
evidence/results/package2/final/p150x2-throughput/quality_ifeval/summary.jsonConfiguration251 B —
evidence/results/package2/final/p150x2-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package2/final/p150x2/boot/boot.jsonConfiguration408 B —
evidence/results/package2/final/p150x2/ladder/summary.jsonConfiguration8.2 KB —
evidence/results/package2/final/p150x2/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150x2/quality_c1_gpt_oss20_gsm8k_chat/summary.jsonConfiguration204 B —
evidence/results/package2/final/p150x2/quality_c1_ifeval/summary.jsonConfiguration242 B —
evidence/results/package2/final/p150x2/smoke/smoke.jsonConfiguration4.4 KB —
evidence/results/package2/final/p150x4-throughput/boot/boot.jsonConfiguration434 B —
evidence/results/package2/final/p150x4-throughput/ladder/summary.jsonConfiguration22.5 KB —
evidence/results/package2/final/p150x4-throughput/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150x4-throughput/quality/summary.jsonConfiguration394 B —
evidence/results/package2/final/p150x4-throughput/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package2/final/p150x4/boot/boot.jsonConfiguration412 B —
evidence/results/package2/final/p150x4/ladder/summary.jsonConfiguration4.1 KB —
evidence/results/package2/final/p150x4/limits/limits.jsonConfiguration860 B —
evidence/results/package2/final/p150x4/quality_c1_gpt_oss20_gsm8k_chat/summary.jsonConfiguration204 B —
evidence/results/package2/final/p150x4/quality_c1_ifeval/summary.jsonConfiguration243 B —
evidence/results/package2/final/p150x4/smoke/smoke.jsonConfiguration4.3 KB —
evidence/results/package2/summary.jsonConfiguration59.4 KB —
evidence/results/ttlab/summary.jsonConfiguration39.2 KB —
image/index.jsonConfiguration382 B —
image/manifest.jsonConfiguration3.4 KB —
tt_kernel_manifest.jsonConfiguration11.9 KB —
README.mdDocumentation26.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/README.mdDocumentation6.1 KB —
SHA256SUMSOther20.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/dense_routing.cppOther7.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/glu_compute.cppOther3.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/glu_reader.cppOther5.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/glu_writer.cppOther1.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_collect_compute.cppOther1.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_collect_reader.cppOther1.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_collect_writer.cppOther5.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_worker_compute.cppOther1.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_worker_reader.cppOther4.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_ks_worker_writer.cppOther1.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/router_rows.cppOther2.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/xs_dn_compute.cppOther2.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/xs_dn_writer.cppOther4.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/xs_gu_compute.cppOther1.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/xs_gu_reader.cppOther4.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/batched/kernels/xs_gu_writer.cppOther3.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/boundary_compute.cppOther13.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/boundary_notify.cppOther1.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/boundary_reader.cppOther6.3 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/boundary_sender.cppOther5.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/boundary_to_rows.cppOther1.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/custom_mm_compat.hppOther1.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/decode_inputs.cppOther7.5 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/ilv_compute.cppOther7.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/ilv_reader.cppOther5.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/ilv_writer.cppOther4.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/nd_compute.cppOther8.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/nd_reader.cppOther4.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/nd_stream.hppOther4.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/nd_writer.cppOther9.7 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/router_topk.hppOther3.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_down_reader.cppOther5.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_down_writer.cppOther4.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_gate_up_compute.cppOther5.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_gate_up_reader.cppOther5.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_gate_up_writer.cppOther4.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_linear_reader.cppOther4.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_linear_writer.cppOther26.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_matmul_compute.cppOther1.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown2_compute.cppOther2.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown2_reader.cppOther6.2 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown2_writer.cppOther5.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown_compute.cppOther2.4 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown_reader.cppOther5.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mdown_writer.cppOther5.9 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mgate_up_compute.cppOther5.8 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mgate_up_reader.cppOther5.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/stream_mgate_up_writer.cppOther5.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/terminal_exchange.cppOther7.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/terminal_merge.cppOther5.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/fused_b1/kernels/terminal_pick.cppOther3.1 KB —
code/models/autoports/openai_gpt_oss_20b/tt/prefill_swiglu_kernels/swiglu_compute.cppOther3.0 KB —
code/models/autoports/openai_gpt_oss_20b/tt/prefill_swiglu_kernels/swiglu_reader.cppOther1.6 KB —
code/models/autoports/openai_gpt_oss_20b/tt/prefill_swiglu_kernels/swiglu_writer.cppOther1.1 KB —
image/blobs/sha256/01d59af5e04cf9f1154279f5ae3a04cd07738ed9caf1c1a5526718b65fe1043fOther67.1 KB —
image/blobs/sha256/0d34b2e08dcafe639cfd34946b16b14a66827d01ab13580185ddda3359154c68Other7.9 KB —
image/blobs/sha256/15c600b30690be90f120daa960e02e8cae3de9aa56074460717f186401590ba1Other18.7 MB 15c600b30690
image/blobs/sha256/1808da78752c57df8c0028f8b5f573c188fed82d3914ddb7a13b64a0eb067cfaOther167 B —
image/blobs/sha256/1b175ff090d9f78b26c709ddecd3b38f1a75844b84d5e1b97db929fd72ceb8b0Other36.1 KB —
image/blobs/sha256/1d23ad4342856b8725a2f7f5f5c8d45995f807cc629d3fe25a9d4c5e8b9fd7aaOther896.2 KB 1d23ad434285
image/blobs/sha256/1e8f45441bdb351c1c40cb4f6a2532ca7242a68234f00fb2f761fe75d62a016dOther4.6 KB —
image/blobs/sha256/20c3783cc497b5b0df1fc5f92bd64c3d2fbb24057c88692c8fda205b6ea8a2f2Other29.8 MB 20c3783cc497
image/blobs/sha256/238e33159fa813376f8ab3b4db9c37abf6681e22831bc1ae1e025f4eba1fcc63Other69.5 MB 238e33159fa8
image/blobs/sha256/27320c80414c38d6ef1ad5473ace6e8b8ead9622850350ae18216db230cf5a13Other4.4 KB —
image/blobs/sha256/2ce9bc3793db3c9234e6f8544cd2a693b8236dc10d59aaa7a5b09f3f2b0e6da6Other271.0 KB 2ce9bc3793db
image/blobs/sha256/361b108ce55cb2875645d9d64274e47dbe0088e300fd3ec38e77b8b6c19db357Other2.7 KB —
image/blobs/sha256/385d0a4ce9fd5a8ffeedba4edecd32c0e386f0e7bed795b0a9a6f056db97ab78Other618 B —
image/blobs/sha256/38c6f18b3c63b6f2799669c84a759963a41033af09e6658093a1c365002b810dOther37.2 MB 38c6f18b3c63
image/blobs/sha256/3e912e1ca71fbd4d79cc8035b3119ae13a0158ff3df1780fa5970c5f4230cd1eOther672.3 MB 3e912e1ca71f
image/blobs/sha256/4457353bad49b652d6060cee08a7735e4780780dd02b7b741af18bea61c7f805Other37.2 MB 4457353bad49
image/blobs/sha256/476a4648be04f7e99534bac6e0dd2bdb74aff8d8a9bc5df643f08e4fb28dce3eOther110.4 KB 476a4648be04
image/blobs/sha256/4ca1d11cd13a0484277ec0c4ccab0e051336df2e00a428b3d84b834985889364Other564 B —
image/blobs/sha256/4cde77313eff2032fa8f57b5897bbdbce2c742943320fa9cdd526e50fb129d4aOther139.1 MB 4cde77313eff
image/blobs/sha256/4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1Other32 B —
image/blobs/sha256/52b45c727143285d553ff6fd53da8f748596eb1d34092bc42000bccd325548bfOther57.9 MB 52b45c727143
image/blobs/sha256/77739a7e94d711279edcf90b6d11509333509aadbdc5996d1610604ca5db0b32Other267.3 KB 77739a7e94d7
image/blobs/sha256/819443afd783ec3250c4c7e5bc93a1c35a4bf1ddcff02836ba7398c3bb6c0b8dOther1.6 MB 819443afd783
image/blobs/sha256/85684c219e16264b0421f5f352aca7d56f0e3287fcf21af3f9f9867f54136ac9Other4.6 KB —
image/blobs/sha256/875fefacac55d342dff15f4d8356e1ae84808b2fb17d0218c41bc78701597805Other222 B —
image/blobs/sha256/87ddbc0813f394bb6c1b4d54db6799f5787c3266c5f6dcfd83bbab6281215f36Other4.5 MB 87ddbc0813f3
image/blobs/sha256/8ca31ea85b2de4c8e40c6a90104f0f2a0208cfb9e568f10dd1f846516d8edea4Other304 B —
image/blobs/sha256/927a0e3cc7f83bc4e8df5a9a2d5b4d6212366bb3e48c25ee5c563cbd3f0f11bdOther15.7 KB —
image/blobs/sha256/94a0a19c92209697b20d66b540c0a7affbd80cb927fa90e02b4f81b2c278762aOther138.9 MB 94a0a19c9220
image/blobs/sha256/9c7970ecadaa6409983251304b0756321d57cfbd196cf9ed5286f265bf3f4ccbOther16.3 KB —
image/blobs/sha256/9d2d95029f35dd217e4202ef1b04655ac1e2d9ff5b341d6a9f606e25da911e1aOther1.1 KB —
image/blobs/sha256/9e913e6c55f20c3000e5be85a5b50c7bc02a3756116d5a124bc0ec9652684d64Other856 B —
image/blobs/sha256/9f4210c20a06e1385847961d6ed706bd4866f191e7310b25cf4998230d3410d0Other36.1 KB —
image/blobs/sha256/a0b26682bce2cf3320c274905d208bac66de7d89d8aee01c19c8cb0207f44f03Other15.7 KB —
image/blobs/sha256/a18e17e5184c86df555740b1c9165f2ed9acd8b243c81b5cd3db5a9b10ca9979Other6.6 KB —
image/blobs/sha256/ad98468488a82212095d841f28bdd12e078a69468f84dc00ac2a6618cf08a5dfOther642 B —
image/blobs/sha256/ccb93205c32408664bc87fa7f250dac12c0d2c1fa21452beb2aab133a8694d2aOther9.6 MB ccb93205c324
image/blobs/sha256/cfba690fd35818e7cdbcca62f94f78128cf71256450ac80e6a6f4e6a09069d05Other1.5 KB —
image/blobs/sha256/d2566b1726dfaf76b0f739c1c43c923b53156ab9ddc2883f18648fcbc9a1341dOther1.3 KB —
image/blobs/sha256/d6b8a4847505f420cee245d1d5f64d9a5ba802a759b5cdab101a1007ab6f9f01Other3.9 KB —
image/blobs/sha256/dcaf812f65311bd5bb6bb48c3b4337d09d0ec9f80cc9c2a895579ae95f763b43Other29.4 MB dcaf812f6531
image/blobs/sha256/e469e038766a39dc7c89c711a7dfdf9b1f9e85c4f88de74409810429da1895bfOther31.0 MB e469e038766a
image/blobs/sha256/ed22be8089c260b53ba83441db1e9614be57495b8fae18b119fda5ceee55967fOther25.2 KB —
image/blobs/sha256/eff6430e983607e581f7b4083843dfcd12f1a59f16186a6963561d609e1a1276Other117 B —
image/blobs/sha256/f72ad127ec8f79ea74843cdec2f0bafda41f79c1c0236cc282a4cc290f67c466Other1.9 KB —
image/blobs/sha256/fa5e803cbb780910a555a5a9c6e7cbb9872d178f4b3f03b8f6c8d8363335d5f4Other16.3 KB —
image/oci-layoutOther30 B —
requirements.lockOther3.6 KB —
.gitattributesRepository3.9 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download from Jashan Pratap Singh

Released by Jashan Pratap Singh through its official repository on Hugging Face. Read the license.

Built From

Questions About gpt-oss-20b-blackhole-fast

Can I use gpt-oss-20b-blackhole-fast commercially?

Yes. gpt-oss-20b-blackhole-fast is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers