Skip to content

AMD HIP: accept gfx1101 alongside gfx1100 - #254

Closed
jhohertz wants to merge 2 commits into
Niko1221:mainfrom
jhohertz:gfx1101
Closed

jhohertz wants to merge 2 commits into
Niko1221:mainfrom
jhohertz:gfx1101

Conversation

@jhohertz

Copy link
Copy Markdown
Contributor

This just adds support for gfx1101 as well.

…ime gates, CUDART constant shim, calibrated hipBLASLt table, docs and bench evidence
…oring the RDNA4 one), both models benched, Q2_0 at its full 256K context
@jhohertz

jhohertz commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Getting about 900/s on pp and 50/s on tg. System is a 7800 card in a zen4 ddr4 system.

Only had a chance to do some light testing then rebased as the gfx1200 stuff came in, now getting back to testing.

Testing is somewhat limited but results so far are quite useable. Going to take it on some fill to 256K and compress cycles to see how it fares.

Niko1221 added a commit that referenced this pull request Oct 1, 2026
…256 by Efeisot) as community-validated cards

Cut down from #254 and #256 onto 0.1.30's AMD tables:
- setup.py: AMD_ARCHS / AMD_NAMES / ROCM_INDEXES / AMD_CARDS list gfx1101 (TheRock gfx110X-dgpu) and gfx1200
  (gfx120X-all); amd_gpus() takes the sysfs root so the detection can be tested.
- cmake/hip_backend.cmake: gfx1101 and gfx1200 build without the "not validated" warning (a status line names
  them community-validated); gfx1102 (#192: ctest only) keeps the warning.
- docs/AMD_HIP.md (Community-validated cards: the owners' setups, ctest and numbers) and README.
- tools/test_setup_amd.py: detection on a mocked KFD topology (every family, the CPU node, an iGPU and gfx1102
  listed as not supported, product-name fallbacks, the ROCm index per family).
Left out: the PRs' own cmake/device.cu arch checks (0.1.30's compiled_for covers them), the dp4a change (main has
it), math_constants.h, the bench JSONs, the launcher, and both hipBLASLt tables (neither PR measured the prompt speed
without its table).

Co-Authored-By: Joseph Hohertz <jhohertz@gmail.com>
Co-Authored-By: efeisot <efeproofkmr@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154bwiad8gY7wRehCXy27pN
@Niko1221

Niko1221 commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Released in 0.1.31: gfx1101 is a community-validated card in setup and the docs, with your report (without the bench JSONs and math_constants.h, which weren't needed). Thank you!

@Niko1221 Niko1221 closed this Oct 1, 2026
Niko1221 added a commit that referenced this pull request Oct 6, 2026
…256 by Efeisot) as community-validated cards

Cut down from #254 and #256 onto 0.1.30's AMD tables:
- setup.py: AMD_ARCHS / AMD_NAMES / ROCM_INDEXES / AMD_CARDS list gfx1101 (TheRock gfx110X-dgpu) and gfx1200
  (gfx120X-all); amd_gpus() takes the sysfs root so the detection can be tested.
- cmake/hip_backend.cmake: gfx1101 and gfx1200 build without the "not validated" warning (a status line names
  them community-validated); gfx1102 (#192: ctest only) keeps the warning.
- docs/AMD_HIP.md (Community-validated cards: the owners' setups, ctest and numbers) and README.
- tools/test_setup_amd.py: detection on a mocked KFD topology (every family, the CPU node, an iGPU and gfx1102
  listed as not supported, product-name fallbacks, the ROCm index per family).
Left out: the PRs' own cmake/device.cu arch checks (0.1.30's compiled_for covers them), the dp4a change (main has
it), math_constants.h, the bench JSONs, the launcher, and both hipBLASLt tables (neither PR measured the prompt speed
without its table).

Co-Authored-By: Joseph Hohertz <jhohertz@gmail.com>
Co-Authored-By: efeisot <efeproofkmr@gmail.com>
anon761 pushed a commit to anon761/Strata-upstream that referenced this pull request Oct 6, 2026
…060 XT, Niko1221#256 by Efeisot) as community-validated cards

Cut down from Niko1221#254 and Niko1221#256 onto 0.1.30's AMD tables:
- setup.py: AMD_ARCHS / AMD_NAMES / ROCM_INDEXES / AMD_CARDS list gfx1101 (TheRock gfx110X-dgpu) and gfx1200
  (gfx120X-all); amd_gpus() takes the sysfs root so the detection can be tested.
- cmake/hip_backend.cmake: gfx1101 and gfx1200 build without the "not validated" warning (a status line names
  them community-validated); gfx1102 (Niko1221#192: ctest only) keeps the warning.
- docs/AMD_HIP.md (Community-validated cards: the owners' setups, ctest and numbers) and README.
- tools/test_setup_amd.py: detection on a mocked KFD topology (every family, the CPU node, an iGPU and gfx1102
  listed as not supported, product-name fallbacks, the ROCm index per family).
Left out: the PRs' own cmake/device.cu arch checks (0.1.30's compiled_for covers them), the dp4a change (main has
it), math_constants.h, the bench JSONs, the launcher, and both hipBLASLt tables (neither PR measured the prompt speed
without its table).

Co-Authored-By: Joseph Hohertz <jhohertz@gmail.com>
Co-Authored-By: efeisot <efeproofkmr@gmail.com>
anon761 pushed a commit to anon761/Strata-upstream that referenced this pull request Oct 6, 2026
…060 XT, Niko1221#256 by Efeisot) as community-validated cards

Cut down from Niko1221#254 and Niko1221#256 onto 0.1.30's AMD tables:
- setup.py: AMD_ARCHS / AMD_NAMES / ROCM_INDEXES / AMD_CARDS list gfx1101 (TheRock gfx110X-dgpu) and gfx1200
  (gfx120X-all); amd_gpus() takes the sysfs root so the detection can be tested.
- cmake/hip_backend.cmake: gfx1101 and gfx1200 build without the "not validated" warning (a status line names
  them community-validated); gfx1102 (Niko1221#192: ctest only) keeps the warning.
- docs/AMD_HIP.md (Community-validated cards: the owners' setups, ctest and numbers) and README.
- tools/test_setup_amd.py: detection on a mocked KFD topology (every family, the CPU node, an iGPU and gfx1102
  listed as not supported, product-name fallbacks, the ROCm index per family).
Left out: the PRs' own cmake/device.cu arch checks (0.1.30's compiled_for covers them), the dp4a change (main has
it), math_constants.h, the bench JSONs, the launcher, and both hipBLASLt tables (neither PR measured the prompt speed
without its table).

Co-Authored-By: Joseph Hohertz <jhohertz@gmail.com>
Co-Authored-By: efeisot <efeproofkmr@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154bwiad8gY7wRehCXy27pN
ScrambledEggsOnToast pushed a commit to ScrambledEggsOnToast/Strata that referenced this pull request Oct 18, 2026
… advertising a refused family

Niko1221#251: serve/server.py parses the engine's effective --short-read out of its own argv (last flag wins, a
negative clamps to 0, atoll stops at the first non-digit) and the progress gate uses it instead of a
hardcoded 64-token tail, so a configured 640 drops the right PP line and a configured 16 no longer drops
a legitimate one.  Two tests cover the gate and the parser.  docs/DETAILS.md states the rule.

Niko1221#252: a failed optional capture is a durability problem, not a serving problem.  A checkpoint, parked
snapshot or shared-prefix capture that fails on a copy, allocation, validation or publication is reported
with one bounded stderr line and dropped; only a failed device sync (a GPU hang, a failed stage sync) still
ends the request.  At shutdown a capture failure is reported but no longer latches the store unhealthy,
which used to skip finalization, leave the run-intent armed and make the next start retire every record of
the execution domain.  The policy and its log line live in program/checkpoint_preservation.hpp with a
CPU-only test.  The extracted read_part harness carries the ambient flag.

Niko1221#250: the all-pinned cache refusal is the documented contract.  Pins and pending publications are never
spent, so reserve_snapshot/put/make_room refuse atomically and evict_oldest returns false; the carrier skips
parking and the request completes.  The contract is stated at reserve_snapshot, in DETAILS.md, and in the
two skip-parking lines, which now name how many entries are pinned.  A test fills a cache with two pinned
histories and asserts every path refuses without spending a pin or losing either history.

Niko1221#254: this fork keeps refusing the qwen35moe family and now says so consistently.  strata --families prints
model_families() (qwen4exp only), so setup's existing family check refuses before the 22.9 GB download; the
refusal and --help name the separate strata-q36 executable; model_family.hpp no longer claims the CUDA/HIP
builds run the family; QWEN36/BATCHING/DETAILS and setup's comment match.  The dead strata->strata_qwen35
link and STRATA_HAVE_QWEN35 are removed; strata-q36 still builds the engine path.

Checks: strata 0.1.45 builds; conversation_cache_test 5199, conversation_store_test 6327, model_family_test,
checkpoint_preservation_test and prefill_interleave_test pass; serve.test_server 403 tests OK; the binary
prints qwen4exp and refuses a qwen35moe file with exit 2.
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.

2 participants