MCPcopy
hub / github.com/tinygrad/tinygrad / _compact_params

Function _compact_params

tinygrad/gradient.py:17–20  ·  view source on GitHub ↗

Remove unused PARAMs from body and return compacted (body, args).

(body:UOp, all_args:tuple[UOp, ...])

Source from the content-addressed store, hash-verified

15 if op == Ops.MUL: return (broadcast_to_input(ctx * ret) / ret.src[0],)
16
17def _compact_params(body:UOp, all_args:tuple[UOp, ...]) -> tuple[UOp, tuple[UOp, ...]]:
18 """Remove unused PARAMs from body and return compacted (body, args)."""
19 used = sorted({p.arg: p for p in body.toposort() if p.op is Ops.PARAM}.items())
20 return body.substitute({p: p.replace(arg=j) for j,(_, p) in enumerate(used)}, walk=True), tuple(all_args[i] for i,_ in used)
21
22def call_gradient(ctx:UOp, k:UOp, needed:set[int]) -> tuple[UOp|None, ...]:
23 fxn, args = k.src[0], k.src[1:]

Callers 1

call_gradientFunction · 0.85

Calls 3

toposortMethod · 0.80
substituteMethod · 0.80
replaceMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…