* ci: split mac/windows/qcom-cl tests into platform.yml
Move the 6 jobs that don't run on Linux (4 macos, 1 windows, 1 QCOM CL
compile test on arm) out of test.yml into a separate Platform Tests
workflow so they run (and can be gated/runners-matched) independently.
* ci: gate platform tests to the upstream repo
Skip mac/windows/qcom-cl jobs anywhere but tinygrad/tinygrad, so the
Platform Tests workflow is disabled on the gitea fork (and any fork).
* ci: revert repo gate on platform tests
Job-level if is only evaluated by gitea when a runner with matching
labels fetches the task; with no mac/windows/arm runners the jobs queue
forever. Disable the workflow on the instance instead.
* add SPEC checking for the kernel graph
* skip test
* raise there, not None
* handwritten
* issue with unshard
* multi works
* and bitcast
* fix new tests
* fix linear
* remove call index
* fix shrink
* fixes
* no user contig on custom_kernel
* clean up
* non removable
* test MXFP4 llama without hipcc
* use compiler-free HIPCC renderer in llama CI
* move llama coverage to AMD tests
* run llama coverage in AMD test matrix
* respect configured ROCm path in llama profile
* work
* clean up
* fix
* add views back
* remove that
* update test
* test_double_permute one less kernel
* test_shrink less kernels
---------
Co-authored-by: George Hotz <[email protected]>
* movement: resolve negative int slice bounds against symbolic sizes
negative int bounds in a slice against a symbolic dim were passed through
unresolved, giving wrong views. resolve them against the (possibly
symbolic) size, like slice.indices does for int dims
* schedule: realize custom kernel inputs that don't resolve to a buffer state
rangeify assigns ranges backward from consumers and CALL contributes none,
so the subgraph above a custom kernel input gets no ranges unless something
in it is realized, and reduce conversion crashes with a KeyError. realize
call inputs that don't resolve to a buffer state.
only view-only movement ops preserve the underlying buffer: anything
computed (ALU, REDUCE, ...) must be realized even if one of its sources
resolves to a buffer, since the whole subgraph above the call has no
ranges. unwrapping src[0] unconditionally missed const branches hanging
off non-src[0] children and silently resolved REDUCEs to their source
buffer. includes regression tests for pure const, mixed buffer+const, and
view-over-buffer inputs