Open in tt-awesome →

tt-bio

affiliated★ featured
by moritztng · Python · MIT · 113⭐ · Jan 31, 2026

Boltz-2 biomolecular model for drug discovery on Tenstorrent Blackhole. Supports single-card and multi-card configurations — QuietBox (4×) and Galaxy (32×). Approaches physics-based FEP accuracy at 1000× the speed.

LATEST v0.3.2 2026-07-20T03:01:53Z Release notes ↗
4 previous releases
v0.3.1 2026-07-19T12:03:38Z
v0.3.0 2026-07-17T02:31:21Z
v0.2.5 2026-07-11T07:14:22Z
v0.2.4 2026-07-09T22:41:48Z
See all releases on GitHub ↗
# Changelog

All notable changes to TT-Bio are recorded here. Versioning is [SemVer](https://semver.org);
releases are cut from a commit that has passed the on-hardware test suite (see `RELEASING.md`).

## [Unreleased]

## [0.3.2] - 2026-07-20

### Fixed
- **SaProt-1.3b config bug** — `CONFIGS["saprot-1.3b"]` carried a fabricated arch
  (hidden=2560 / n_heads=40 / n_layers=40 / intermediate=10240) that does not match
  the real `westlake-repl/SaProt_1.3B_AF2` checkpoint (1280 / 20 / 66 / 5120 — the
  650m width with double the layers). `load_state_dict(..., strict=False)` silently
  masked the mismatch, so the device ran with effectively untrained weights and the
  1.3b leg read as a parity failure. Config corrected; `Saprot.from_pretrained` now
  reads the checkpoint's `config.json` and refuses to build on an arch mismatch. With
  correct shapes saprot-1.3b reaches X_emb=0.99508 / X_logits=0.99895 (deterministic,
  qb1 card 1) — a near-pass; the per-residue embedding PCC lands just below the
  0.9987–0.9996 ESMC band (bf16 accumulation over 66 residual layers), so no clean
  PASS row is added to `docs/pharma-benchmark.md`. See `docs/saprot-parity.md`.
- **Perf-gate within-card-type false positives** — the perf-regression gate keyed
  baselines by card type only, so two machines with the same card type (pc vs qb1,
  both p150a) read as false ~30–36% regressions against each other. Added a machine-id
  layer under card type (`socket.gethostname()`), with backward-compatible fallback
  to the card-type block. `--update-baseline` now writes to the detected machine's
  block.

### Added
- **`tt-bio saprot --devices`** — multi-card data-parallel fanout for SaProt
  embeddings (one pinned worker per card, sequences sharded by length, results
  reassembled in input order), mirroring the ESMC `--devices` path. Row-independent:
  a sequence's output is identical to running it on one card.
- **esmc-300m and esmc-6b perf-gate baselines seeded** (esmc-300m 33.17 seq/s on
  p300c, esmc-6b 3.17 seq/s on p150a), activating the perf-regression legs specced
  in 0.3.1.
- **Release-gate perf + UX coverage for SaProt and Boltz-2 affinity** — both shipped
  in 0.3.1 with accuracy-leg coverage but no perf/UX gate legs; saprot-650m
  (222.69 seq/s, qb1 p150a) and boltz2-affinity (0.014319 affinities/s, p300c)
  baselines seeded.

### Removed
- **ProteinMPNN** — the `tt-bio design` inverse-folding port is dropped entirely.
  It ran CPU-only (dispatch-bound, no TT-card use), duplicated BoltzGen's
  inverse-fold capability, and reimplemented the mature upstream
  `dauparas/ProteinMPNN`. SaProt is untouched.

### Verify / benchmark hardening
- **Boltz-2 and Protenix-v2 ubiquitin flagship legs hardened 2+2 → 5+5 seeds**
  (seeds 0–4 both sides): R and D are now 10 pairwise distances each, so the parity
  verdict is a real statistical statement rather than a single-pair coincidence.
  Both PASS within floor on CA-RMSD and TM-score; CA-lDDT misses on Boltz-2 (a bf16
  narrow
drug-discovery blackhole inference biology multi-card
blackhole quietbox galaxy