MCPcopy
hub / github.com/tinygrad/tinygrad / _validate

Function _validate

tinygrad/engine/realize.py:211–215  ·  view source on GitHub ↗
(call:UOp, sink:UOp)

Source from the content-addressed store, hash-verified

209])
210
211def _validate(call:UOp, sink:UOp) -> UOp:
212 params = get_call_arg_uops(call)
213 shadows = tuple(UOp.new_buffer(("CPU",)*len(p.device) if isinstance(p.device, tuple) else "CPU", prod(p.max_shape), p.dtype.base) for p in params)
214 copies = tuple(p.copy_to_device(s.device).call(s, p) for s, p in zip(shadows, params))
215 return UOp(Ops.LINEAR, src=copies + (call, UOp(Ops.CUSTOM_FUNCTION, dtypes.void, src=(sink,), arg="validate").call(*shadows, *params)))
216pm_validate = PatternMatcher([(UPat(Ops.CALL, src=(UPat(Ops.SINK, name="sink"),), name="call", allow_any_len=True), _validate)]) + pm_flatten_linear
217
218# ctx is beam value

Callers

nothing calls this directly

Calls 6

prodFunction · 0.90
UOpClass · 0.90
get_call_arg_uopsFunction · 0.85
new_bufferMethod · 0.80
copy_to_deviceMethod · 0.80
callMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…