Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
811 commits
Select commit Hold shift + click to select a range
9656d97
jit: captures linears, not execitems (#15399)
nimlgen Mar 21, 2026
a9ceaf3
sqtt: link dispatch to exec (#15396)
Qazalin Mar 21, 2026
2363bce
viz: no context enters in cli, update llama profile (#15404)
Qazalin Mar 21, 2026
bcc0830
removed unused named arg in rules [pr] (#15414)
chenyuxyz Mar 22, 2026
c7b18e6
viz: sqtt printer in viz/cli.py (#15411)
Qazalin Mar 22, 2026
2087df8
remove *0 hack in sign, gradient materializes zeros for unconnected n…
gordbegli Mar 22, 2026
67dcc79
push Tensor(symbolic) logic to Tensor.from_uop (#15420)
chenyuxyz Mar 23, 2026
248cd9b
make Tensor init the only caller of Tensor.from_uop (#15421)
chenyuxyz Mar 23, 2026
395aacd
jit: prune on linear (#15423)
nimlgen Mar 23, 2026
fd35591
viz/cli: better error message for empty itrace (#15425)
Qazalin Mar 23, 2026
c74fa9b
fix jitbeam not triggered (#15424)
nimlgen Mar 23, 2026
ddaeebb
nir: add shift support (#15426)
sirhcm Mar 23, 2026
1568a5e
viz: show dispatch to exec delay in sidebar (#15428)
Qazalin Mar 23, 2026
c62dea6
ai slop flash attention (it works) (#15401)
geohot Mar 23, 2026
c895769
Updated the APIs of mnist_gan (#15429)
HangenYuu Mar 23, 2026
66a86f8
simpler Tensor._broadcasted inferred dtype (#15430)
chenyuxyz Mar 23, 2026
c4c5341
sqtt: comment out flaky rocprof timestamp assert (#15432)
Qazalin Mar 23, 2026
2da008a
jit: rm replan (#15433)
nimlgen Mar 23, 2026
fa4cdb4
memplan on linears (#15422)
nimlgen Mar 23, 2026
109472c
sqtt: new s_barrier pickles, handle rdna4 barriers in emulator (#15437)
Qazalin Mar 23, 2026
a590ede
sqtt: rdna4 decoder work (#15434)
Qazalin Mar 23, 2026
018a9e2
remove match_dtype arg in Tensor._broadcasted (#15440)
chenyuxyz Mar 24, 2026
85dee83
amd flash attention cleanups + emulator fixes (#15431)
geohot Mar 24, 2026
d5320a9
QCOM cleanups (#15435)
sirhcm Mar 24, 2026
2e4fbbc
ir3: fix texture mapping and benchmark (#15443)
sirhcm Mar 24, 2026
9db5d67
jit in viz (#15447)
nimlgen Mar 24, 2026
a33ac86
llm server: temperature + test client (#15444)
geohot Mar 24, 2026
b796084
support shape broadcast in UOp.alu (#15442)
chenyuxyz Mar 24, 2026
9567075
Upgrade GitHub Actions for Node 24 compatibility (#15445)
salmanmkc Mar 24, 2026
84049fd
Upgrade GitHub Actions to latest versions (#15446)
salmanmkc Mar 24, 2026
41eb2cc
viz: preserve zoom between re renders (#15451)
Qazalin Mar 24, 2026
652bab8
viz: support nested track_rewrites (#15454)
Qazalin Mar 24, 2026
da20312
llama: correct 8b init (#15397)
wozeparrot Mar 24, 2026
1b3d00d
viz/cli: remove --offset and --limit flags (#15439)
Qazalin Mar 25, 2026
f6ed4da
Tensor.ufix (#15452)
chenyuxyz Mar 25, 2026
fd92aec
cleanup unused image pitch code (#15458)
sirhcm Mar 25, 2026
fe26903
llm: support assistant prefill + refactor to TransformerConfig (#15457)
geohot Mar 25, 2026
519ba22
more Tensor._broadcasted cleanup (#15459)
chenyuxyz Mar 25, 2026
02878c5
move _broadcasted to OpMixin (#15461)
chenyuxyz Mar 25, 2026
713b322
add weakint to promo_lattice (#15463)
chenyuxyz Mar 25, 2026
cd1a276
llm: support gguf path or url (#15464)
geohot Mar 25, 2026
789628d
hotfix: add USE_BOT flag to ASM24 USB
geohot Mar 25, 2026
e7f389e
fix height=1 images on macos (#15460)
sirhcm Mar 25, 2026
ae7090b
print function timing with DEBUG=2 (#15468)
geohot Mar 25, 2026
c1a7d90
python speedups of hot paths (#15469)
geohot Mar 25, 2026
c973b50
viz/cli: pass ctrlc (#15470)
Qazalin Mar 25, 2026
25ff714
add a status line to REMOTE with DEBUG=1 (#15471)
geohot Mar 25, 2026
142bf11
logical_not to mixin [pr] (#15472)
chenyuxyz Mar 25, 2026
60bd546
sqtt: add cycle count to rdna3 enums (#15473)
Qazalin Mar 25, 2026
737d5f6
viz: compute canvas dims for auto zoom (#15474)
Qazalin Mar 25, 2026
7c2c8d3
viz: small ux improvements (#15483)
Qazalin Mar 25, 2026
9d2d077
remote: disk copies (#15482)
nimlgen Mar 25, 2026
7c8f992
move EXPAND dtype cast back to gradient.py (#15481)
chenyuxyz Mar 25, 2026
1ca178f
llama: stochastic rounding (#15456)
wozeparrot Mar 26, 2026
8426f82
Tensor.sub to mixin (#15486)
chenyuxyz Mar 26, 2026
bc180a9
deprecate <dev>=1 in favor of DEV=<dev> (#15467)
sirhcm Mar 26, 2026
313937a
fix IMAGE TestEnd2End.test_linear_mnist (#15488)
sirhcm Mar 26, 2026
ec5b7a2
viz: refactor sqtt timeline builder (#15494)
Qazalin Mar 26, 2026
de24b3f
jit: pass init params straight to base (#15496)
nimlgen Mar 26, 2026
7193f90
test view input in jit (#15497)
nimlgen Mar 26, 2026
237c250
sqtt: construct OTHER_SIMD op types with for loop (#15495)
Qazalin Mar 26, 2026
3f9f0fa
viz: yield sqtt alt events (#15500)
Qazalin Mar 26, 2026
586c496
viz/cli: test in CI (#15501)
Qazalin Mar 26, 2026
67a50fb
move where on load with casts (#15492)
sirhcm Mar 27, 2026
a65e958
llama: new apply_grad (#15503)
wozeparrot Mar 27, 2026
fdb30cb
DEV is a ContextVar (#15505)
sirhcm Mar 27, 2026
323fcef
Revert "DEV is a ContextVar (#15505)" (#15506)
chenyuxyz Mar 27, 2026
1198d6e
move pow to mixin (#15507)
chenyuxyz Mar 27, 2026
9e0cc5c
create image buffers in late codegen (#15493)
sirhcm Mar 27, 2026
30ebbe7
few more fold valid tests (#15509)
chenyuxyz Mar 27, 2026
0d6fc0f
jit: graphing in uops (#15489)
nimlgen Mar 27, 2026
dcc2a5d
viz/cli: simplify to --source and --item flags (#15510)
Qazalin Mar 27, 2026
ccaa6bf
viz/cli cleanups (#15511)
Qazalin Mar 27, 2026
c0753ab
XOR simplifcation rules (#15512)
chenyuxyz Mar 28, 2026
fe705de
move more broadcast method to mixin [pr] (#15513)
chenyuxyz Mar 28, 2026
266fb07
viz: show exec duration (#15484)
Qazalin Mar 28, 2026
7e57e10
better oor message in profiles (#15516)
nimlgen Mar 28, 2026
0c3e438
llama: mllog (#15502)
wozeparrot Mar 28, 2026
36a925e
viz: color wmma, one color map for cli and web (#15519)
Qazalin Mar 28, 2026
f485d0b
UOp.sum -> usum, prod -> uprod [pr] (#15522)
chenyuxyz Mar 29, 2026
f0eaac4
reduce mixin (#15523)
chenyuxyz Mar 30, 2026
301b2ce
move matmul to mixin (#15524)
chenyuxyz Mar 30, 2026
ad6347f
sqtt: allow mapping sopk to IMMEDIATE packets (#15525)
Qazalin Mar 30, 2026
9583489
add mlx driver to extra (#15526)
nimlgen Mar 30, 2026
adbfd82
DEV is ContextVar, setting Device.DEFAULT is deprecated (#15508)
sirhcm Mar 30, 2026
bc866a9
viz: rename exec to sqtt (#15527)
Qazalin Mar 30, 2026
6fb038d
replace CompilerSet with list (#15530)
sirhcm Mar 31, 2026
79cccf3
write sz output to file (#15534)
wozeparrot Mar 31, 2026
a63392a
llm: pairwise ranking topk for MoE expert selection (#15499)
b1tg Mar 31, 2026
f88e255
gemm/asm: split and parameterize dtype in llama gemm tests (#15408)
Qazalin Mar 31, 2026
467c0af
viz: skip flaky sever tests (#15538)
Qazalin Mar 31, 2026
ceb63c8
new bundle id (#15307)
nimlgen Mar 31, 2026
e69f5f9
more movement methods to mixin (#15536)
chenyuxyz Mar 31, 2026
2939ae8
more mixin (#15540)
chenyuxyz Mar 31, 2026
8feb8ed
gemm/asm: add fp8 support to cdna asm_gemm (#15542)
Qazalin Mar 31, 2026
89ec221
tests to show double negation in min is not cancelled (#15543)
chenyuxyz Mar 31, 2026
4ac2552
improve ReduceMixin.all (#15544)
chenyuxyz Mar 31, 2026
10d570b
signed tinygpu (#15541)
nimlgen Mar 31, 2026
a15345a
viz/cli: improve --help message (#15546)
Qazalin Mar 31, 2026
ca89215
nv: use nvcc over nak by default (#15547)
nimlgen Mar 31, 2026
83085f1
tinygpu docs (#15545)
nimlgen Mar 31, 2026
477d194
hipcomgr and tinygpu scripts (#15549)
nimlgen Mar 31, 2026
3af25cc
docs: minor tinygpu changes (#15550)
nimlgen Mar 31, 2026
5181c8e
llm: fix nan in kvcache (#15552)
nimlgen Mar 31, 2026
acf239e
specify renderer in DEV, <dev>_<ren>=1 is deprecated (#15551)
sirhcm Mar 31, 2026
8b5b9a0
llama: run_and_time (#15533)
wozeparrot Mar 31, 2026
034f617
NVCCRenderer is separate from CUDARenderer (#15554)
sirhcm Apr 1, 2026
5aeb227
add amd_copy_matmul.py to CI (#15555)
chenyuxyz Apr 1, 2026
fc5b94b
fix UOp.where(const, const) (#15560)
chenyuxyz Apr 1, 2026
150c456
add OSError to suppress_finalizing (#15558)
nimlgen Apr 1, 2026
6d1e992
copyout sharded w/o ioring (#15562)
nimlgen Apr 1, 2026
09f60d8
llama: fix FP8=1 FAKEDATA=1 (#15564)
Qazalin Apr 1, 2026
f5c0794
fix Tensor.const_like (#15565)
chenyuxyz Apr 1, 2026
9275f28
viz: update flag and display names (#15566)
Qazalin Apr 1, 2026
20497f2
fold BIND to CONST when min==max (#15568)
b1tg Apr 1, 2026
da12c2e
better install msg (#15570)
nimlgen Apr 1, 2026
93a85c7
am: raise when using more sdma engines (#15569)
nimlgen Apr 1, 2026
148ad09
am: do not use dbell for ih (#15571)
nimlgen Apr 1, 2026
20f7f0b
nir renderers use arch (#15556)
sirhcm Apr 1, 2026
0d6fbc2
remove flaky and redundant image test (#15574)
sirhcm Apr 1, 2026
6c67bd4
better error message when invalid renderer is specified (#15573)
sirhcm Apr 1, 2026
5b2a325
mlperf system json for mi350 (#15575)
wozeparrot Apr 1, 2026
1aa04ea
simple CreationMixin (#15567)
chenyuxyz Apr 2, 2026
61bc91a
Tensor cumalu cleanups (#15579)
chenyuxyz Apr 2, 2026
fefb0eb
gemm/asm: fp8 cleanups (#15580)
Qazalin Apr 2, 2026
c64226e
fix CreationMixin doc (#15582)
chenyuxyz Apr 2, 2026
046c3f1
mlx: add loopback with send/recv (#15583)
nimlgen Apr 2, 2026
694dc5a
install script in benchmark (#15584)
nimlgen Apr 2, 2026
8c50da8
[pr] cleanup unused ctx's in codegen (#15586)
sirhcm Apr 2, 2026
736fea8
select_first_inited cleanup and better errors (#15587)
sirhcm Apr 2, 2026
3a26920
feat: framework ci (#15589)
wozeparrot Apr 3, 2026
0ed8d92
Renderers accept Target or nothing (#15590)
sirhcm Apr 3, 2026
237084b
remote: support several hosts (#15585)
nimlgen Apr 3, 2026
9920b42
hotfix: renderer.target.arch in disasm (#15592)
Qazalin Apr 3, 2026
8fdef2d
mean/std/var to mixin (#15593)
chenyuxyz Apr 3, 2026
2c42712
hcq: peer groups for remote (#15594)
nimlgen Apr 3, 2026
902edc3
hcq: hcqbuf in copy (#15595)
nimlgen Apr 3, 2026
645d45d
DEV has arch (#15577)
sirhcm Apr 3, 2026
74ecf6d
opaque structs are also c.Struct (#15596)
sirhcm Apr 3, 2026
f7aed18
viz/cli: add Other row in profiler (#15600)
Qazalin Apr 4, 2026
2ba5a6d
remove detach in selu (#15602)
chenyuxyz Apr 4, 2026
4d36366
assembly/amd: match rdna4 hw gidx init in emulator (#15604)
Qazalin Apr 4, 2026
7e54992
fp8 llama (#15588)
wozeparrot Apr 5, 2026
056fcd7
viz: web work from rdna4 gemm (#15607)
Qazalin Apr 5, 2026
b2d5b29
assembly/amd: validate dsl keyword args (#15608)
Qazalin Apr 5, 2026
604cdbf
am: large allocs aligned to 2mb to use 2mb pages (#15609)
nimlgen Apr 5, 2026
5e134aa
hcq: add write/poll_bit commands (#15610)
nimlgen Apr 5, 2026
e0988db
hcq: support non for signal_t and compute_t (#15611)
nimlgen Apr 5, 2026
e3986a6
mlx: init runtime (#15612)
nimlgen Apr 5, 2026
6a334ce
hotfix: fix bert (#15613)
nimlgen Apr 5, 2026
e39cfe6
validate lr, momentum, weight_decay in optimizers (#15576)
Andrew-most-likely Apr 5, 2026
ff0c941
remove redundant iteration and toposort in _deepwalk (#15532)
13Perrius Apr 5, 2026
86c4431
add gpu_family detection to Metal, target MSL 4.0 on macOS 26+ (#15079)
valtterivalo Apr 5, 2026
e270047
mlx: cleaner (#15617)
nimlgen Apr 6, 2026
01b49c8
support int operand for shifts (#15618)
chenyuxyz Apr 6, 2026
a444be1
lower fuzz_symbolic_symbolic_div timeout (#15619)
chenyuxyz Apr 6, 2026
6e30a5f
update shifts in torch backend (#15622)
chenyuxyz Apr 6, 2026
1483f7e
support shift by Tensor (#15623)
chenyuxyz Apr 6, 2026
66ec188
more activations to mixin (#15624)
chenyuxyz Apr 6, 2026
2f7d085
shared _normalize_indices for getitem (#15625)
chenyuxyz Apr 6, 2026
8ba5830
viz: reenable tests (#15626)
Qazalin Apr 6, 2026
19e9649
interface in DEV (#15620)
sirhcm Apr 6, 2026
810d7c0
llama: unify scripts (#15628)
wozeparrot Apr 7, 2026
2b01ca5
USB driver for custom ASM firmware (#15597)
geohot Apr 7, 2026
d3de63d
improvements to apps.llm (#15631)
geohot Apr 7, 2026
d29f0ef
viz: speed up profiler first render (#15632)
Qazalin Apr 7, 2026
b78b384
mlx: graph (#15621)
nimlgen Apr 7, 2026
890286e
update llama profile.sh (#15633)
Qazalin Apr 7, 2026
9c6e925
move lerp to mixin (#15634)
chenyuxyz Apr 7, 2026
a508b8f
viz: delete redundant things (#15637)
Qazalin Apr 7, 2026
bf37635
llm: buffer SSE chunks to fix parse errors from split reads (#15641)
b1tg Apr 8, 2026
f930579
llm: change the default port to 8000 so you can remember it (match vLLM)
geohot Apr 8, 2026
bcf6931
fix: comma 4 does not have pcie (#15642)
sirhcm Apr 8, 2026
70dbd35
llama: move custom_kernel into flat_llama (#15643)
wozeparrot Apr 8, 2026
dc6a51e
viz: add # of bytes to sdma (#15639)
Qazalin Apr 8, 2026
39a029e
remove ASM_GEMM context var (#15645)
Qazalin Apr 8, 2026
35e3983
Add Q5_0, Q5_1, and bfloat16 GGUF types (#15644)
geohot Apr 8, 2026
3ac16b3
viz: add wmma row, update exec duration logic (#15646)
Qazalin Apr 8, 2026
b1e52ba
the slowest line in hcq graph (#15635)
nimlgen Apr 8, 2026
1ebeb52
RDNA4 asm gemm (#15427)
geohot Apr 8, 2026
dae9dea
clean up tensor random functions (#15648)
chenyuxyz Apr 8, 2026
839d37b
update median_step_time in model_train.py (#15649)
chenyuxyz Apr 8, 2026
71c83cc
viz: put OTHER_ on the wave row (#15650)
Qazalin Apr 8, 2026
1b44cb2
split update stat from execitem (#15654)
nimlgen Apr 8, 2026
28b14b0
mlx: remove to_be, use helpers (#15655)
nimlgen Apr 8, 2026
cb681da
move UOp.pad to mixin (#15657)
chenyuxyz Apr 8, 2026
4cf2759
fix merge_reduce_ends (#15659)
chenyuxyz Apr 8, 2026
742b389
viz/cli: add pmc printer (#15651)
Qazalin Apr 8, 2026
d08c76d
c.Struct cleanup (#15640)
sirhcm Apr 9, 2026
6837881
remove same_shape_noop [pr] (#15662)
chenyuxyz Apr 9, 2026
48a7627
add RDNA4 support to copy WMMA (#15663)
geohot Apr 9, 2026
0ff30b0
am: reset queues from spi (#15664)
nimlgen Apr 9, 2026
057dc17
beam uop (#15660)
nimlgen Apr 9, 2026
fa02105
hotfix: pin amd isa xml version
geohot Apr 9, 2026
dbc23e8
move HCQ_VISIBLE_DEVICES into DEV (#15668)
sirhcm Apr 10, 2026
ed2a72b
work on abstractions4 (#15671)
geohot Apr 10, 2026
16f3448
Add HIP to abstractions4 (#15672)
geohot Apr 10, 2026
55bcd7c
llama amax outside (#15670)
wozeparrot Apr 10, 2026
9ab1415
llm: fix streaming UTF-8 decode (#15653)
b1tg Apr 10, 2026
9092f2a
llm: add shared_expert and rope_dim support from qwen35 (#15673)
geohot Apr 10, 2026
8e7fcc8
remove _include_initial in _cumalu (#15674)
chenyuxyz Apr 10, 2026
e1334d3
move canonicalize_device to device.py (#15675)
chenyuxyz Apr 10, 2026
0d5cdc9
viz: split draw loop (#15676)
Qazalin Apr 10, 2026
58646f9
usb fast copyout (#15677)
nimlgen Apr 10, 2026
aa012d6
usb: faster custom (#15678)
nimlgen Apr 10, 2026
590464c
llama: only support wqkv path + cleanups (#15680)
wozeparrot Apr 10, 2026
b5a9465
llm: add support for moonlight (deepseek MLA) (#15466)
geohot Apr 11, 2026
29238b7
AMD USB: support for 0xF3 power toggle
geohot Apr 11, 2026
457508d
llama: save more 2 (#15681)
wozeparrot Apr 11, 2026
5156a04
add support for AM_POWER_LIMIT (#15684)
geohot Apr 11, 2026
4ca844e
add Q1_0 gguf type (#15683)
graham-ro Apr 11, 2026
054d78e
fix llama profile.sh NULL source (#15685)
Qazalin Apr 11, 2026
938cba4
amd: a bit faster usb, skip interrupts on sync (#15686)
nimlgen Apr 11, 2026
e706f40
suppress test warnings from numpy (#15688)
chenyuxyz Apr 12, 2026
e9b2e15
add jitbeam to tinygpu docs (#15691)
nimlgen Apr 12, 2026
0254cfe
move usum and uprod to mixin (#15690)
chenyuxyz Apr 12, 2026
ff1de5a
normalize logsumexp contiguous_backward to mixin (#15692)
chenyuxyz Apr 12, 2026
77385cc
more trivial stuff to mixin (#15693)
chenyuxyz Apr 12, 2026
f7ff480
start mixin getitem tests (#15695)
chenyuxyz Apr 12, 2026
2ada38f
viz: execv after all producers complete (#15696)
Qazalin Apr 12, 2026
2b5ba00
qwen3.5 (#15210)
b1tg Apr 13, 2026
6f5d756
Tests for GatedDeltaNetBlock + fix multi after assign issue (#15700)
geohot Apr 13, 2026
0cec42d
Revert "Tests for GatedDeltaNetBlock + fix multi after assign issue (…
geohot Apr 13, 2026
4c1fb18
Revert "Revert "Tests for GatedDeltaNetBlock + fix multi after assign…
geohot Apr 13, 2026
ac02705
viz: no global state (#15705)
Qazalin Apr 13, 2026
16f50a4
remove REMU from tree (#15706)
geohot Apr 13, 2026
84d64b5
hotfix: abstractions4 works in mock except asm
geohot Apr 13, 2026
7610bdc
block multistore, it's not supported (#15708)
geohot Apr 13, 2026
931d6cc
basic getitem to mixin (#15697)
chenyuxyz Apr 13, 2026
b370f5c
hcq: call free for unmap (#15710)
nimlgen Apr 13, 2026
eac481b
mlx: fix ctypes (#15711)
nimlgen Apr 13, 2026
ac41f15
cumsum to mixin (#15712)
chenyuxyz Apr 13, 2026
d83707e
autogen: explicit types (#15679)
sirhcm Apr 13, 2026
905b8ad
viz: cli and server cleanups (#15713)
Qazalin Apr 13, 2026
355e272
viz: keep program UOp in data (#15714)
Qazalin Apr 13, 2026
70883a6
cat the stack to mixin (#15715)
chenyuxyz Apr 13, 2026
5683126
llm: support for tekken tokenizer (#15720)
geohot Apr 14, 2026
2b8d303
allreduce in precast dtype (#15689)
wozeparrot Apr 14, 2026
359b158
amd: EMU DPP support (#15719)
geohot Apr 14, 2026
528faa1
update env_vars.md (#15722)
chenyuxyz Apr 14, 2026
2450c8c
rename to callify + fix mypy (#15727)
geohot Apr 14, 2026
e9ecc99
amd: add r9700 devid (#15721)
nimlgen Apr 14, 2026
3394d18
size*itemsize -> nbytes (#15729)
chenyuxyz Apr 14, 2026
adc96cd
qcom: synchronize for copyin (#15731)
sirhcm Apr 14, 2026
480ad26
llama: per device amax (#15735)
wozeparrot Apr 15, 2026
3721c60
llama: bs 16 (#15737)
wozeparrot Apr 15, 2026
1ae6528
move schedule into schedule (#15736)
geohot Apr 15, 2026
1c36878
DEV: suggest alternatives (#15732)
sirhcm Apr 15, 2026
7cbfa18
comment out unused arm, triton in toml (#15741)
chenyuxyz Apr 15, 2026
c3324e9
Sync: tinygrad/tinygrad:master into sunnypilot/tinygrad:master
Discountchubbs Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 23 additions & 15 deletions .github/actions/setup-tinygrad/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,16 @@ inputs:
description: "Install mesa"
required: false
default: 'false'
tinydreno:
description: "Install tinydreno"
required: false
default: 'false'
runs:
using: "composite"
steps:
- name: Set up Python ${{ inputs.python-version }}
id: setup-python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ inputs.python-version }}

Expand All @@ -62,14 +66,14 @@ runs:
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}/.venv
key: venv-${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-${{ inputs.deps }}-${{ inputs.pydeps }}-${{ env.CACHE_VERSION }}
key: venv-${{ runner.os }}-${{ runner.arch }}-python-${{ steps.setup-python.outputs.python-version }}-${{ inputs.deps }}-${{ inputs.pydeps }}-${{ env.CACHE_VERSION }}
- name: Cache Python packages
if: github.event_name != 'pull_request'
id: restore-venv
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.venv
key: venv-${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-${{ inputs.deps }}-${{ inputs.pydeps }}-${{ env.CACHE_VERSION }}
key: venv-${{ runner.os }}-${{ runner.arch }}-python-${{ steps.setup-python.outputs.python-version }}-${{ inputs.deps }}-${{ inputs.pydeps }}-${{ env.CACHE_VERSION }}

# **** Caching downloads ****

Expand All @@ -81,7 +85,7 @@ runs:
key: downloads-${{ github.job }}-${{ inputs.key }}-${{ env.CACHE_VERSION }}
- name: Cache downloads
if: inputs.key != '' && github.event_name != 'pull_request'
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ runner.os == 'Linux' && '~/.cache/tinygrad/downloads/' || '~/Library/Caches/tinygrad/downloads/' }}
key: downloads-${{ github.job }}-${{ inputs.key }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -145,7 +149,7 @@ runs:
run: |
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
sudo tee /etc/apt/sources.list.d/rocm.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.2 $(lsb_release -cs) main
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/7.1 $(lsb_release -cs) main
EOF
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600

Expand Down Expand Up @@ -195,13 +199,13 @@ runs:
uses: actions/cache/restore@v4
with:
path: /var/cache/apt/archives/
key: ${{ runner.os }}-apt-${{ steps.apt-pkgs.outputs.hash }}-${{ env.CACHE_VERSION }}
key: ${{ runner.os }}-${{ runner.arch }}-apt-${{ steps.apt-pkgs.outputs.hash }}-${{ env.CACHE_VERSION }}
- name: Cache apt
if: runner.os == 'Linux' && (inputs.opencl == 'true' || inputs.amd == 'true' || inputs.cuda == 'true' || inputs.webgpu == 'true' || inputs.llvm == 'true') && github.event_name != 'pull_request'
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: /var/cache/apt/archives/
key: ${{ runner.os }}-apt-${{ steps.apt-pkgs.outputs.hash }}-${{ env.CACHE_VERSION }}
key: ${{ runner.os }}-${{ runner.arch }}-apt-${{ steps.apt-pkgs.outputs.hash }}-${{ env.CACHE_VERSION }}

- name: Run apt Update + Install
if: runner.os == 'Linux' && (inputs.opencl == 'true' || inputs.amd == 'true' || inputs.cuda == 'true' || inputs.webgpu == 'true' || inputs.llvm == 'true')
Expand All @@ -221,22 +225,19 @@ runs:
if: inputs.amd == 'true' && runner.os == 'Linux'
shell: bash
run: |
cargo build --release --manifest-path ./extra/remu/Cargo.toml
sudo ln -sf ${{ github.workspace }}/extra/remu/target/release/libremu.so /usr/local/lib/libremu.so
sudo tee --append /etc/ld.so.conf.d/rocm.conf <<'EOF'
/opt/rocm/lib
/opt/rocm/lib64
EOF
sudo ldconfig
- name: Setup AMD comgr+remu (macOS)
- name: Setup AMD comgr (macOS)
if: inputs.amd == 'true' && runner.os == 'macOS'
shell: bash
run: |
sudo mkdir -p /usr/local/lib
curl -s -H "Authorization: token $GH_TOKEN" curl -s https://api.github.com/repos/nimlgen/amdcomgr_dylib/releases/latest | \
curl -s -H "Authorization: token $GH_TOKEN" curl -s https://api.github.com/repos/tinygrad/amdcomgr_dylib/releases/latest | \
jq -r '.assets[] | select(.name == "libamd_comgr.dylib").browser_download_url' | \
sudo xargs curl -fL -o /usr/local/lib/libamd_comgr.dylib
cargo build --release --manifest-path ./extra/remu/Cargo.toml

# **** gpuocelot ****

Expand Down Expand Up @@ -265,7 +266,7 @@ runs:
- name: Cache gpuocelot
if: inputs.ocelot == 'true' && github.event_name != 'pull_request'
id: cache-build
uses: actions/cache@v4
uses: actions/cache@v5
env:
cache-name: cache-gpuocelot-build-1
with:
Expand All @@ -283,6 +284,7 @@ runs:

CMAKE_ARGS="-Wno-dev -G Ninja -DOCELOT_BUILD_TOOLS=OFF -DCMAKE_BUILD_ALWAYS=0 -DBUILD_TESTS_CUDA=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5"
if [[ "${{ runner.os }}" == "macOS" ]]; then
sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
CMAKE_ARGS="$CMAKE_ARGS -DBoost_INCLUDE_DIR=$(brew --prefix boost)/include -DBoost_LIBRARY_DIR=$(brew --prefix boost)/lib"
fi

Expand Down Expand Up @@ -326,3 +328,9 @@ runs:
if: inputs.mesa == 'true' && runner.os == 'macOS'
shell: bash
run: brew install sirhcm/tinymesa/tinymesa_cpu

# *** tinydreno ***
- name: Install tinydreno (linux)
if: inputs.tinydreno == 'true' && runner.os == 'Linux'
shell: bash
run: sudo curl -fL https://github.com/sirhcm/tinydreno/raw/refs/heads/master/libllvm-qcom.so -o /usr/lib/libllvm-qcom.so
49 changes: 29 additions & 20 deletions .github/workflows/autogen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ jobs:
timeout-minutes: 15
steps:
- name: Checkout Code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Environment
uses: ./.github/actions/setup-tinygrad
with:
key: 'autogen'
opencl: 'true'
amd: 'true'
cuda: 'true'
Expand All @@ -43,29 +44,32 @@ jobs:
run: sudo apt-get install -y --no-install-recommends libclang-20-dev llvm-20-dev hip-dev libusb-1.0-0-dev libdrm-dev
- name: Regenerate autogen files
run: |
find tinygrad/runtime/autogen -type f -name "*.py" -not -name "__init__.py" -not -name "comgr_3.py" -not -name "metal.py" -not -name "iokit.py" -not -name "corefoundation.py" -not -name "libclang.py" -delete
find tinygrad/runtime/autogen -type f -name "*.py" -not -path "*/amd/*" -not -name "__init__.py" -not -name "comgr.py" -not -name "metal.py" -not -name "iokit.py" -not -name "corefoundation.py" -not -name "libclang.py" -delete
python3 -c "from tinygrad.runtime.autogen import opencl"
python3 -c "from tinygrad.runtime.autogen import cuda, nvrtc, nvjitlink, nv_570, nv_580, nv"
python3 -c "from tinygrad.runtime.autogen import comgr, hsa, hip, amd_gpu, sqtt, rocprof, amdgpu_kd, amdgpu_drm"
python3 -c "from tinygrad.runtime.autogen.am import am, pm4_soc15, pm4_nv, sdma_4_0_0, sdma_5_0_0, sdma_6_0_0, smu_v13_0_0, smu_v13_0_6, smu_v14_0_2"
python3 -c "from tinygrad.runtime.autogen import comgr_3, hsa, hip, amd_gpu, sqtt, rocprof, amdgpu_kd, amdgpu_drm"
python3 -c "from tinygrad.runtime.autogen.am import am, pm4_soc15, pm4_nv, sdma_4_0_0, sdma_5_0_0, sdma_6_0_0, smu_v13_0_0, smu_v13_0_6, smu_v13_0_12, smu_v14_0_2"
python3 -c "from tinygrad.runtime.autogen import libc, kfd, io_uring, ib, pci, vfio"
python3 -c "from tinygrad.runtime.autogen import llvm"
python3 -c "from tinygrad.runtime.autogen import webgpu"
python3 -c "from tinygrad.runtime.autogen import kgsl, qcom_dsp"
python3 -c "from tinygrad.runtime.autogen import libusb"
python3 -c "from tinygrad.runtime.autogen import mesa"
python3 -c "from tinygrad.runtime.autogen import avcodec"
python3 -c "from tinygrad.runtime.autogen import llvm_qcom"
python3 -c "from tinygrad.runtime.autogen import mlx5"
REGEN=1 python3 -c "from tinygrad.runtime.autogen import libclang"
- name: Check for differences
run: |
if ! git diff --quiet; then
git diff
git diff > autogen-ubuntu.patch
echo "Autogen files out of date. Apply patch from: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
exit 1
fi
- name: Upload patch artifact
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: autogen-ubuntu-patch
path: autogen-ubuntu.patch
Expand All @@ -76,10 +80,11 @@ jobs:
timeout-minutes: 15
steps:
- name: Checkout Code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Environment
uses: ./.github/actions/setup-tinygrad
with:
key: 'autogen-mac'
llvm: 'true'
- name: Regenerate autogen files
run: |
Expand All @@ -88,49 +93,53 @@ jobs:
- name: Check for differences
run: |
if ! git diff --quiet; then
git diff
git diff > autogen-macos.patch
echo "Autogen files out of date. Apply patch from: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
exit 1
fi
- name: Upload patch artifact
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: autogen-macos-patch
path: autogen-macos.patch

autogen-comgr-3:
name: In-tree Autogen (comgr 3)
autogen-comgr-2:
name: In-tree Autogen (comgr 2)
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- name: Checkout Code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Environment
uses: ./.github/actions/setup-tinygrad
with:
key: 'autogen-comgr'
- name: Install autogen support packages
run: |
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
sudo tee /etc/apt/sources.list.d/rocm.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.4 $(lsb_release -cs) main
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.2 $(lsb_release -cs) main
EOF
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt -qq update || true
sudo apt-get install -y --no-install-recommends libclang-20-dev comgr
- name: Regenerate autogen files
run: |
rm tinygrad/runtime/autogen/comgr_3.py
python3 -c "from tinygrad.runtime.autogen import comgr_3"
rm tinygrad/runtime/autogen/comgr.py
python3 -c "from tinygrad.runtime.autogen import comgr"
- name: Check for differences
run: |
if ! git diff --quiet; then
git diff > autogen-comgr3.patch
echo "Autogen files out of date. Apply patch from: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
git diff
git diff > autogen-comgr2.patch
echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts"
exit 1
fi
- name: Upload patch artifact
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: autogen-comgr3-patch
path: autogen-comgr3.patch
name: autogen-comgr2-patch
path: autogen-comgr2.patch
Loading
Loading