round 40 opus review: repo organization, README, fresh-clone path #
read-only. i inspected the files and replayed the diff into /tmp/r40_apply; nothing was built and no models were downloaded.
blockers #
- setup crashes at the end of the ~70 GB download, on a stock python3.
scripts/setup_apple_silicon.shrunspython3 scripts/build_k512_iq2_xs_metal.pyandpython3 scripts/build_mtp_q2_0.pywith the bare interpreter.- the k512 builder ends with
ST.extract(...).vendor/strata/tools/strata_tokenizer.pyimportsregexat module top, so a fresh mac python3 dies after the dense, expert and PLE downloads, before it writestokenizer/andstrata-k512-iq2xs.json. build_mtp_q2_0.pyrunsvendor/strata/tools/mtp_pack.py, which importsnumpyandgguf(llama.cpp's gguf-py, itself numpy-based).- fix: run both through
uv, which the README already requires, as the serve scripts do:"$UV_BIN" run --with regex --with numpy python3 ….mtp_pack.pyis started viasys.executable, so it inherits the uv env.prepare_strata_k256.pyhas the sameregexdependency whentokenizer/is missing; the README command should beuv run --with regex python3 scripts/prepare_strata_k256.py.
- the k512 builder ends with
- the README promises k=320 / k=224 but the scripts only handle k=256.
download_k256_local.pyandprepare_strata_k256.pyhardcodeK256_reap_l2_sumandNE = 256. either say "k=256" only, or add a--kargument. - the macOS requirement is probably wrong. the README says "macos 15+".
dense_mm.metal,moe_mm.metal,qsa_prompt.metalandmm_bench.metalinclude<MetalPerformancePrimitives/MetalPerformancePrimitives.h>, which ships with macOS 26.Window::m5_layout()→coop_k4()compilesmm_bench.metalunconditionally on the prompt path.Context::supports_metal4()exists but nothing in the engine calls it. upstreamdocs/MAC.mdsays 15+, but our tested system is macOS 27 on the M5. unless someone has run it on 15, write "macos 26+ (tested: macOS 27, M5)".
(1) hardcoded user paths #
- zero
/Users/dawn(or any/Users/) inscripts/(setup, serve, build, prepare, download, mtp) and zero inscripts/strata_metal_complete.diff. the serve scripts fall back to$HOME/.local/bin/uvonly whenuvis not on PATH. - the generated configs (
strata-k512-iq2xs.json,strata-k256.json) contain absolute paths computed fromROOTat build time, under the git-ignoredmodels/. that is fine. the comment "portable repo-relative" inbuild_k512_iq2_xs_metal.py:348is inaccurate (they are absolute, per machine); reword it. download_k256_local.pyuses the cwd-relativePath("models/K256_reap_l2_sum"). run from anywhere but the repo root, it downloads 2 shards into the wrong place. use aROOTfrom__file__like the other scripts.
(2) README opts: test-only or rejected items listed as live? #
checked against the engine dispatch sites (metal/src/**) and env defaults:
- the round 39 rejections are absent: no cuda butterfly, no
qsa_merge4-partial batching, noqsa_merge2batching. theqsa_mergeitems listed are the earlier live ones (dispatched atwindow.cpp:1285/2737/3662,prompt_chain.inc:262).qsa_topk2is live (dispatched under theqsa_topkkey). - defaults match the README wording:
STRATA_METAL_MTP_CHAIN(on unless "0"),MTP_SINK64,MTP_WIN256,PREFETCH_UNPERT1,STRATA_HC_Q8on,MTP_SLOP/DRAFT_MOCE/PUBLISH_PREFETCHon. the opt-ins are labeled as such (STRATA_SPEC_GATE,STRATA_SPEC_SAMPLE,STRATA_HC_Q4/Q5, rank-1 unscaling).--save-sessionand--load-sessionexist instrata_window_cli. the helpersgemv_q2_raw_combine,gemv_iq4_combine,gemv_direct_xandtg_argmaxare inlined into dispatched kernels. - wording to check: "
qsa_flash… unconditional hoistedrv/rkfills". if that refers to round 39's clamped-row / value-select port, it only runs on the non-cooperative (M1/M4 orCOOP_K4=0) path, not on the M5 default. say so, or drop it. if it is the earlier cooperative-path hoist, it is fine. - k=256-only artifacts are listed without that scope: the healed
K256-q2_0-healed-metal.gguf, theq2_0quantizer,alpha_l/ridge healing and the layer-47 wfld edit. the defaultk=512service uses none of them, and nothing in the README or scripts builds the healed gguf (prepare_strata_k256.pysilently falls back to the unhealed IQ3_S). either tag those bullets "(k=256 path)" and give the convert/heal commands, or mark them as research artifacts. - "m4 / m5 recommended for matmul2d cooperative tensors": only the M5 gets the
coop_k4matrix-unit layout; the M4 takes the older prompt kernels (prompt_chain.inc:10-11). "m5 (tuned); m4 runs the older prompt kernels" is more accurate.
(3) fresh-clone completeness #
scripts/strata_metal_complete.diffreproduces the patched tree exactly: applied togit archive 296b59d2of the 58 pre-existing paths, plus the 20 new files, it gives 78/78 files byte-identical to the currentvendor/strataworking tree. the working tree has no changes outside the diff (excludingthird_party/metal-cpp,build-metal,__pycache__). the diff has no binary hunks.git applyexits 0 with one whitespace warning (the known blank line at theqsa.metalEOF).- everything the build and configs need is either upstream at the pinned commit (
metal/tools/metal_repack.py,tools/mtp_fetch.py,tools/mtp_pack.py,data/expert-profile.bin,data/draft_vocab_en.bin) or in the diff (strata_window_cli.cpp,convert_k256_q2_0.cpp,heal_k256_q2_0.cpp,slop4.h,scr_state.hpp,spec_gate.hpp, …). the CMake variablesMETAL_CPP_DIRandSTRATA_GGML_DIRmatch the setup invocation. - repo-tracked inputs exist:
results/reap_saliency_v2.json,results/keep_maps/keep_reap_l2_sum_k256.json,mine_llm_isms_from_transcripts.py,scripts/prepare_phase3_sft_data.py,scripts/patch_m5_lazy_moe.py.README.mdandscripts/setup_apple_silicon.shexist only in the jj working-copy change (git shows them asA, not in the last commit), so make sure they land in the round 40 commit. - minor: setup's
git -C vendor/strata clean -fdwipes untracked non-ignored files on every re-run (metal-cpp gets re-downloaded, sha-checked). harmless on a fresh clone, surprising in a dev tree. - minor: the k512 builder caches the source GGUF headers in
/tmp/iq2xs_s1.hdretc. and only checks their size, so a stale header from another upload would be reused silently. low risk while the URLs are pinned.