Skip to content

Split the structures layer into FlashRT-Structures; keep the catalog as flash_rt.catalog - #197

Merged
LiangSu8899 merged 1 commit into
mainfrom
refactor/split-structures
Sep 11, 2026
Merged

Split the structures layer into FlashRT-Structures; keep the catalog as flash_rt.catalog#197
LiangSu8899 merged 1 commit into
mainfrom
refactor/split-structures

Conversation

@LiangSu8899

@LiangSu8899 LiangSu8899 commented Sep 11, 2026

Copy link
Copy Markdown
Member

What moves out

The host-attach layer — discovery, calibration collection, schemes, gates, guard/swap, the doors, every executable form, the transformers / diffusers / vLLM / SGLang adapters, the explicit pipeline examples, the structures docs and AGENTS.md — now lives in FlashRT-Structures as the flashrt-structures distribution, importable as flashrt_structures. Extracted with history.

It never had a consumer inside this package (no import from flash_rt.api, models, frontends, runtime, serving), and its kernels arrive from the kernel hub rather than from csrc/, so it was a second product sharing this package's name and wheel.

What stays

  • flash_rt.catalog — the contract data every host reads: structure specs with their plain-torch references (flash_rt/catalog/structures/), per-host bindings (flash_rt/catalog/bindings/), and the two loaders. Consumed by the runtime exporters, the native host adapters, and the new package (through the pure-Python flash-rt wheel).
  • flash_rt/runtime/provider.py — the captured-graph provider that packages a host's CUDA graph as frt_model_runtime_v1, beside the runtime it targets.
  • flash_rt/core/parity.py — the cosine / max-abs / p99-abs judge, now the single definition shared by the NPU verifier and the new package's gates.
  • The six catalog contract tests, renamed test_catalog_*.

flash_rt.structures raises an ImportError naming the new distribution. README, CONTRIBUTING and pyproject point at the new repository; the hub extra goes with the layer that used it. Version bumps to 0.2.0: the pure-Python wheel now ships flash_rt.catalog, which flashrt-structures requires.

Verification

  • flash_rt.catalog: 17 structures, 27 bindings load; load_binding and reference resolution work.
  • Retained tests: 66 passed (tests/test_catalog_*.py, tests/test_core_quantization.py).
  • No remaining flash_rt.structures / flash_rt/structures references outside the shim.
  • FlashRT-Structures against this branch: all modules import; CPU test set 248 passed, 10 skipped (the two *_gpu tests were not run).

Follow-up

#186 (native ggml adapter) is rebased onto this once it lands: its adapter already sits at hosts/ggml, and its catalog and binding additions move under flash_rt/catalog/.

@LiangSu8899
LiangSu8899 marked this pull request as ready for review September 11, 2026 18:43
…as flash_rt.catalog

The host-attach layer (discovery, calibration collection, schemes,
gates, guard/swap, the doors, the executable forms, the transformers /
diffusers / vLLM / SGLang adapters) moves to its own repository and
distribution, flashrt-structures, importable as `flashrt_structures`.
It never had a consumer inside this package, and its kernels arrive
from the kernel hub rather than from csrc/, so it was a second product
sharing this package's name.

What stays here is the contract data every host reads, now
`flash_rt.catalog`: the structure specifications with their plain-torch
references (`flash_rt/catalog/structures/`), the per-host bindings
(`flash_rt/catalog/bindings/`), and the two loaders. The runtime
exporters, the native host adapters and the new package all consume it
from here. The captured-graph provider that packages a host's CUDA
graph as frt_model_runtime_v1 moves to `flash_rt/runtime/provider.py`,
beside the runtime it targets. The cosine / max-abs / p99-abs judge
becomes `flash_rt/core/parity.py`, the single definition the NPU
verifier and the new package's gates both use.

`flash_rt.structures` now raises an ImportError naming the new
distribution. The six catalog contract tests stay (renamed
test_catalog_*); the scheme test that lived in test_core_quantization
goes with the schemes. README, CONTRIBUTING and pyproject point at the
new repository; the `hub` extra goes with the layer that used it.

Version 0.2.0: the pure-Python wheel now ships flash_rt.catalog, which
flashrt-structures requires.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant