From c1bbd15bd9eb1d8460aa996c8d9f2a71d12400ac Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 21 Sep 2024 01:26:43 -0400 Subject: [PATCH 01/45] Sharded SDXL Inference (#6328) * initial sharding fixes * sigma device fix * emptyline space fix --------- Co-authored-by: chenyu --- examples/sdxl.py | 31 ++++++++++++++++++++----------- extra/models/unet.py | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/examples/sdxl.py b/examples/sdxl.py index 5196430b83..131525b6ac 100644 --- a/examples/sdxl.py +++ b/examples/sdxl.py @@ -12,7 +12,7 @@ from extra.models.unet import UNetModel, Upsample, Downsample, timestep_embeddin from examples.stable_diffusion import ResnetBlock, Mid import numpy as np -from typing import Dict, List, Callable, Optional, Any, Set, Tuple, Union +from typing import Dict, List, Callable, Optional, Any, Set, Tuple, Union, Type import argparse, tempfile from abc import ABC, abstractmethod from pathlib import Path @@ -282,19 +282,29 @@ class SDXL: return self.first_stage_model.decode(1.0 / 0.13025 * x) -class VanillaCFG: +class Guider(ABC): def __init__(self, scale:float): self.scale = scale - def prepare_inputs(self, x:Tensor, s:Tensor, c:Dict, uc:Dict) -> Tuple[Tensor,Tensor,Dict]: + @abstractmethod + def __call__(self, denoiser, x:Tensor, s:Tensor, c:Dict, uc:Dict) -> Tensor: + pass + +class VanillaCFG(Guider): + def __call__(self, denoiser, x:Tensor, s:Tensor, c:Dict, uc:Dict) -> Tensor: c_out = {} for k in c: assert k in ["vector", "crossattn", "concat"] c_out[k] = Tensor.cat(uc[k], c[k], dim=0) - return Tensor.cat(x, x), Tensor.cat(s, s), c_out - def __call__(self, x:Tensor) -> Tensor: - x_u, x_c = x.chunk(2) + x_u, x_c = denoiser(Tensor.cat(x, x), Tensor.cat(s, s), c_out).chunk(2) + x_pred = x_u + self.scale*(x_c - x_u) + return x_pred + +class SplitVanillaCFG(Guider): + def __call__(self, denoiser, x:Tensor, s:Tensor, c:Dict, uc:Dict) -> Tensor: + x_u = denoiser(x, s, uc) + x_c = denoiser(x, s, c) x_pred = x_u + self.scale*(x_c - x_u) return x_pred @@ -302,13 +312,12 @@ class VanillaCFG: # https://github.com/Stability-AI/generative-models/blob/fbdc58cab9f4ee2be7a5e1f2e2787ecd9311942f/sgm/modules/diffusionmodules/sampling.py#L21 # https://github.com/Stability-AI/generative-models/blob/fbdc58cab9f4ee2be7a5e1f2e2787ecd9311942f/sgm/modules/diffusionmodules/sampling.py#L287 class DPMPP2MSampler: - def __init__(self, cfg_scale:float): + def __init__(self, cfg_scale:float, guider_cls:Type[Guider]=VanillaCFG): self.discretization = LegacyDDPMDiscretization() - self.guider = VanillaCFG(cfg_scale) + self.guider = guider_cls(cfg_scale) def sampler_step(self, old_denoised:Optional[Tensor], prev_sigma:Optional[Tensor], sigma:Tensor, next_sigma:Tensor, denoiser, x:Tensor, c:Dict, uc:Dict) -> Tuple[Tensor,Tensor]: - denoised = denoiser(*self.guider.prepare_inputs(x, sigma, c, uc)) - denoised = self.guider(denoised) + denoised = self.guider(denoiser, x, sigma, c, uc) t, t_next = sigma.log().neg(), next_sigma.log().neg() h = t_next - t @@ -329,7 +338,7 @@ class DPMPP2MSampler: return x, denoised def __call__(self, denoiser, x:Tensor, c:Dict, uc:Dict, num_steps:int, timing=False) -> Tensor: - sigmas = self.discretization(num_steps) + sigmas = self.discretization(num_steps).to(x.device) x *= Tensor.sqrt(1.0 + sigmas[0] ** 2.0) num_sigmas = len(sigmas) diff --git a/extra/models/unet.py b/extra/models/unet.py index fad41443cb..92d4496320 100644 --- a/extra/models/unet.py +++ b/extra/models/unet.py @@ -7,7 +7,7 @@ import math # https://github.com/Stability-AI/generative-models/blob/fbdc58cab9f4ee2be7a5e1f2e2787ecd9311942f/sgm/modules/diffusionmodules/util.py#L207 def timestep_embedding(timesteps:Tensor, dim:int, max_period=10000): half = dim // 2 - freqs = (-math.log(max_period) * Tensor.arange(half) / half).exp() + freqs = (-math.log(max_period) * Tensor.arange(half, device=timesteps.device) / half).exp() args = timesteps.unsqueeze(1) * freqs.unsqueeze(0) return Tensor.cat(args.cos(), args.sin(), dim=-1).cast(dtypes.float16) From 391d14438e404fcd04a504f30d49dd4354a68b02 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 13:28:39 +0800 Subject: [PATCH 02/45] DEFINE_VAR prereqs for VALID [run_process_replay] (#6637) --- test/test_uop_graph.py | 26 +++++++++++++------------- test/unit/test_image_valid.py | 2 +- test/unit/test_uop_symbolic.py | 4 +--- tinygrad/codegen/uopgraph.py | 3 +-- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/test/test_uop_graph.py b/test/test_uop_graph.py index 45e5b07012..fd72d24f1e 100644 --- a/test/test_uop_graph.py +++ b/test/test_uop_graph.py @@ -162,10 +162,10 @@ class TestGraphRewrite(unittest.TestCase): self.assertEqual(nout.src[1].arg, 3.0) def test_consts_go_last(self): - a = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('a', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) - b = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('b', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) - c = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('c', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) - d = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('d', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) + a = UOp.define_var('a', dtypes.int, 0, 1) + b = UOp.define_var('b', dtypes.int, 0, 1) + c = UOp.define_var('c', dtypes.int, 0, 1) + d = UOp.define_var('d', dtypes.int, 0, 1) outs = [2+a, 2+a+d+3+b+c+4, UOp(UOps.ALU, a.dtype, src=(a.const_like(2), a), arg=BinaryOps.ADD), (4+d)+c+(2+a)+b] for out in outs: sink = graph_rewrite(out, constant_folder) @@ -186,7 +186,7 @@ class TestUOpGraph(unittest.TestCase): self.assertEqual(out.arg, 3.0) def test_where_same_fold(self): - v = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('tmp', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) + v = UOp.define_var('tmp', dtypes.int, 0, 1) c0 = UOp(UOps.CONST, dtypes.int, arg=0) vc = UOp(UOps.ALU, dtypes.bool, (v, c0), BinaryOps.CMPNE) c1 = UOp(UOps.CONST, dtypes.float, arg=1.0) @@ -280,7 +280,7 @@ class TestUOpGraph(unittest.TestCase): for i in [2, 4, 8]: vec = UOp(UOps.VECTORIZE, dtypes.half.vec(i), tuple(UOp.const(dtypes.half, 0.0) for _ in range(i))) var = UOp(UOps.DEFINE_VAR, dtypes.half.vec(i)) - acc = UOp(UOps.DEFINE_VAR, dtypes.half.vec(i), arg=('acc', UOp.const(dtypes.half, 0), UOp.const(dtypes.half, 1))) + acc = UOp.define_var('acc', dtypes.half.vec(i), 0, 1) wmma = UOp(UOps.WMMA, dtypes.half.vec(i), (vec, var, acc)) uops = to_uops_list([wmma]) assert_equiv_uops(uops[0], acc) @@ -289,7 +289,7 @@ class TestUOpGraph(unittest.TestCase): for i in [2, 4, 8]: var = UOp(UOps.DEFINE_VAR, dtypes.half.vec(i)) vec = UOp(UOps.VECTORIZE, dtypes.half.vec(i), tuple(UOp.const(dtypes.half, 0.0) for _ in range(i))) - acc = UOp(UOps.DEFINE_VAR, dtypes.half.vec(i), arg=('acc', UOp.const(dtypes.half, 0), UOp.const(dtypes.half, 1))) + acc = UOp.define_var('acc', dtypes.half.vec(i), 0, 1) wmma = UOp(UOps.WMMA, dtypes.half.vec(i), (var, vec, acc)) uops = to_uops_list([wmma]) assert_equiv_uops(uops[0], acc) @@ -356,7 +356,7 @@ class TestUOpGraph(unittest.TestCase): self.assertEqual(len([x for x in uops if x.op is UOps.CAST]), 1) def test_depth_2_const_fold(self): - v = UOp(UOps.DEFINE_VAR, dtypes.int, arg=('tmp', UOp.const(dtypes.int, 0), UOp.const(dtypes.int, 1))) + v = UOp.define_var("tmp", dtypes.int, 0, 1) c2 = UOp(UOps.CONST, dtypes.int, arg=2) c4 = UOp(UOps.CONST, dtypes.int, arg=4) vc = UOp(UOps.ALU, dtypes.int, (v, c2), BinaryOps.ADD) @@ -610,8 +610,8 @@ class TestLoadStoreFolder(unittest.TestCase): def test_simple_load_dont_fold_different_gated(self): buf = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float)) - gate = UOp(UOps.DEFINE_VAR, dtypes.bool, arg=("g1", UOp.const(dtypes.bool, False), UOp.const(dtypes.bool, True))) - gate2 = UOp(UOps.DEFINE_VAR, dtypes.bool, arg=("g2", UOp.const(dtypes.bool, False), UOp.const(dtypes.bool, True))) + gate = UOp.define_var("g1", dtypes.bool, False, True) + gate2 = UOp.define_var("g2", dtypes.bool, False, True) load = [UOp(UOps.LOAD, dtypes.float, (buf, UOp.const(dtypes.int, i), UOp.const(dtypes.float, i), gate if i == 0 else gate2)) for i in range(4)] sink = UOp(UOps.VECTORIZE, dtypes.float.vec(len(load)), tuple(load)) sink = float4_rewrite(sink) @@ -626,7 +626,7 @@ class TestLoadStoreFolder(unittest.TestCase): def test_simple_store_fold_gate(self): buf = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float)) - gate = UOp(UOps.DEFINE_VAR, dtypes.bool, arg=("g1", UOp.const(dtypes.bool, False), UOp.const(dtypes.bool, True))) + gate = UOp.define_var("g1", dtypes.bool, False, True) load = [UOp(UOps.STORE, dtypes.float, (buf, UOp.const(dtypes.int, i), UOp.const(dtypes.float, i), gate)) for i in range(4)] sink = UOp(UOps.SINK, dtypes.void, tuple(load)) sink = float4_rewrite(sink) @@ -637,8 +637,8 @@ class TestLoadStoreFolder(unittest.TestCase): def test_simple_store_dont_fold(self): buf = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float)) - gate = UOp(UOps.DEFINE_VAR, dtypes.bool, arg=("g1", UOp.const(dtypes.bool, False), UOp.const(dtypes.bool, True))) - gate2 = UOp(UOps.DEFINE_VAR, dtypes.bool, arg=("g2", UOp.const(dtypes.bool, False), UOp.const(dtypes.bool, True))) + gate = UOp.define_var("g1", dtypes.bool, False, True) + gate2 = UOp.define_var("g2", dtypes.bool, False, True) load = [UOp(UOps.STORE, dtypes.float, (buf, UOp.const(dtypes.int, i), UOp.const(dtypes.float, i), gate if i == 0 else gate2)) for i in range(4)] sink = UOp(UOps.SINK, dtypes.void, tuple(load)) sink = float4_rewrite(sink) diff --git a/test/unit/test_image_valid.py b/test/unit/test_image_valid.py index 2111a125d6..e9e41c604c 100644 --- a/test/unit/test_image_valid.py +++ b/test/unit/test_image_valid.py @@ -19,7 +19,7 @@ def render(image_shape, valid:UOp, idx:UOp) -> str: return fxn.split("float4 val0 = ")[1].split(";")[0] def Special(expr, nmax): return UOp(UOps.SPECIAL, dtypes.int, (), (expr, nmax)) -def Variable(expr, nmin, nmax): return UOp(UOps.DEFINE_VAR, dtypes.int, (), (expr, UOp.const(dtypes.int, nmin), UOp.const(dtypes.int, nmax))) +def Variable(expr, nmin, nmax): return UOp.define_var(expr, dtypes.int, nmin, nmax) class TestHelpers(unittest.TestCase): def test_is_increasing(self): diff --git a/test/unit/test_uop_symbolic.py b/test/unit/test_uop_symbolic.py index 34da16f6fe..5dc0b1bbd5 100644 --- a/test/unit/test_uop_symbolic.py +++ b/test/unit/test_uop_symbolic.py @@ -27,9 +27,7 @@ def render(self) -> Tuple[str, ConstType, ConstType]: def NumNode(val): return UOp.const(dtypes.int, val) def Variable(expr, nmin, nmax): - vmin = UOp.const(dtypes.int, nmin) - vmax = UOp.const(dtypes.int, nmax) if isinstance(nmax, int) else nmax - return UOp(UOps.DEFINE_VAR, dtypes.int, arg=(expr, vmin, vmax)) + return UOp.define_var(expr, dtypes.int, nmin, nmax if isinstance(nmax, int) else nmax.arg) class Node: @staticmethod def sum(ops): return functools.reduce(lambda x,y: x+y, ops) diff --git a/tinygrad/codegen/uopgraph.py b/tinygrad/codegen/uopgraph.py index ce1558123d..d05c300427 100644 --- a/tinygrad/codegen/uopgraph.py +++ b/tinygrad/codegen/uopgraph.py @@ -200,8 +200,7 @@ def simplify_valid_image_load(load:UOp, buf:UOp): # some expr has lower bound > upper bound -> valid is an empty set if v[0] is not None and v[1] is not None and v[0] > v[1]: return UOp(UOps.LOAD, load.dtype, (buf, idx, invalid_val, valid.const_like(False))) - bound = uop.const_like(uop.vmin if v[0] is None else v[0]), uop.const_like(uop.vmax if v[1] is None else v[1]) - new = UOp(UOps.DEFINE_VAR, uop.dtype, (), ("fake", bound[0], bound[1])) + new = UOp.define_var("fake", uop.dtype, uop.vmin if v[0] is None else v[0], uop.vmax if v[1] is None else v[1]) newidx = replace_uop(graph_rewrite(replace_uop(idx, uop, new), constant_folder), new, uop) if newidx.key != idx.key: idx = newidx From d2351af019eeb6913a369c15a1287985f8f68262 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 13:29:18 +0800 Subject: [PATCH 03/45] fixup non-void SINKs in tests [run_process_replay] (#6624) --- test/unit/test_verify_ast.py | 4 ++-- tinygrad/ops.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/unit/test_verify_ast.py b/test/unit/test_verify_ast.py index 26ab85e6b6..0c21fbcfe2 100644 --- a/test/unit/test_verify_ast.py +++ b/test/unit/test_verify_ast.py @@ -13,7 +13,7 @@ from tinygrad.shape.view import View class InvalidASTException(Exception): pass def helper_test_verify_ast(*stores:UOp) -> Kernel: - sink = UOp(UOps.SINK, None, stores) + sink = UOp(UOps.SINK, dtypes.void, stores) if DEBUG >= 3: for op in stores: print(op) try: verify_ast(sink) @@ -50,7 +50,7 @@ class TestVerifyAST(unittest.TestCase): bufs = [UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float), (), i) for i in range(2)] a = UOp(UOps.LOAD, dtypes.float, (bufs[1], ShapeTracker.from_shape((4, 32)).to_uop())) b = a + UOp(UOps.REDUCE_AXIS, dtypes.float, (a,), (ReduceOps.MAX, (1,))) - st = UOp(UOps.STORE, None, (bufs[0], ShapeTracker.from_shape((4, 32)).to_uop(), b)) + st = UOp(UOps.STORE, dtypes.void, (bufs[0], ShapeTracker.from_shape((4, 32)).to_uop(), b)) with self.assertRaises(InvalidASTException): helper_test_verify_ast(st) def test_shrink_ok(self): diff --git a/tinygrad/ops.py b/tinygrad/ops.py index ddca7ef386..a703fe02c6 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -636,7 +636,7 @@ spec = PatternMatcher([(x, functools.partial(lambda fxn,**kw: UOp.const(dtypes.b # NOTE: for testing, we let sinks be anything #(UPat(UOps.SINK, src=UPat(UOps.STORE)), lambda: True), - (UPat(UOps.SINK), lambda: True), + (UPat(UOps.SINK, dtypes.void), lambda: True), # PTX LOAD/STORE (UPat((UOps.LOAD, UOps.STORE), src=(UPat(dtype=dtypes.int64),), allow_any_len=True), lambda: True), From dd05e2762232757962e5c54fd1356c62e6ecbb56 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 14:07:56 +0800 Subject: [PATCH 04/45] remove UOp from DEFINE_VAR arg [run_process_replay] (#6639) * remove UOp from DEFINE_VAR arg [run_process_replay] * that assert is in `spec` * more .args to remove --- tinygrad/ops.py | 12 +++++------- tinygrad/renderer/__init__.py | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/tinygrad/ops.py b/tinygrad/ops.py index a703fe02c6..7cd5cbd9a5 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -215,8 +215,7 @@ class UOp(MathTrait): if isinstance(b, tuple) and all_same(b): b = b[0] # doesn't have to be a VCONST if they are all the same return UOp(UOps.VCONST if isinstance(b, tuple) else UOps.CONST, dtype, arg=dtypes.as_const(b, dtype) if dtype is not None else b) # type: ignore @staticmethod - def define_var(name:str, dtype:DType, min_val:ConstType, max_val:ConstType): - return UOp(UOps.DEFINE_VAR, dtype, arg=(name, UOp.const(dtype, min_val), UOp.const(dtype, max_val))) + def define_var(name:str, dtype:DType, min_val:ConstType, max_val:ConstType): return UOp(UOps.DEFINE_VAR, dtype, arg=(name, min_val, max_val)) @staticmethod def range(dtype:DType, start:ConstType, end:ConstType, idx:int): return UOp(UOps.RANGE, dtype=dtype, src=(UOp.const(dtype, start), UOp.const(dtype, end)), arg=(idx,)) @@ -233,7 +232,7 @@ class UOp(MathTrait): def vars(self) -> Set[UOp]: return set([x for x in self.sparents if x.op is UOps.DEFINE_VAR]) def variables(self) -> List[Variable]: st_vars: List[Set[Variable]] = [x.st_arg.vars() for x in self.sparents if x.op in BUFFER_UOPS] - return sorted(set.union(*st_vars, [Variable(x.arg[0], x.arg[1].arg, x.arg[2].arg) for x in self.vars()]), key=lambda v: v.expr) + return sorted(set.union(*st_vars, [Variable(x.arg[0], x.arg[1], x.arg[2]) for x in self.vars()]), key=lambda v: v.expr) def const_factor(self) -> int: """largest known int that divides self""" if self.op is UOps.CONST: return self.arg @@ -259,8 +258,7 @@ class UOp(MathTrait): @functools.cached_property def _min_max(self) -> Tuple[ConstType, ConstType]: # NOTE: returned UOp is assumed to be CONST - if self.op is UOps.DEFINE_VAR and self.arg: - return self.arg[1].arg, self.arg[2].arg if self.arg[2].op is UOps.CONST else dtypes.max(self.dtype) + if self.op is UOps.DEFINE_VAR and self.arg: return self.arg[1], self.arg[2] if self.op is UOps.RANGE: return self.src[0].vmin, (self.src[1]-1).vmax if self.op is UOps.EXPAND: return min(x.vmin for x in self.src), max(x.vmax for x in self.src) # TODO: UOps.SPECIAL is UOps.DEFINE_VAR @@ -331,7 +329,7 @@ def exec_alu(op:Op, dtype:DType, operands): def uop_alu_resolve(u:UOp) -> sint: if u.op is UOps.CONST: return u.arg - if u.op is UOps.DEFINE_VAR: return Variable(u.arg[0], u.arg[1].arg, u.arg[2].arg) + if u.op is UOps.DEFINE_VAR: return Variable(u.arg[0], u.arg[1], u.arg[2]) if u.op is UOps.ALU: return exec_alu(u.arg, u.dtype, tuple(map(uop_alu_resolve, u.src))) raise RuntimeError(f"ALU resolve fail @ {u.op}") @@ -579,7 +577,7 @@ spec = PatternMatcher([(x, functools.partial(lambda fxn,**kw: UOp.const(dtypes.b (UPat(UOps.DEFINE_LOCAL, name="x"), lambda x: isinstance(x.dtype, PtrDType)), (UPat(UOps.DEFINE_ACC, src=(UPat(UOps.CONST, name="c"),), name="x", allow_any_len=True), lambda x,c: all(y.op is UOps.RANGE for y in x.src[1:]) and c.dtype == x.dtype), - (UPat(UOps.DEFINE_VAR, src=(), name="x"), lambda x: isinstance(x.arg[1], UOp) and isinstance(x.arg[2], UOp)), + (UPat(UOps.DEFINE_VAR, src=(), name="x"), lambda x: isinstance(x.arg[1], int) and isinstance(x.arg[2], int)), (UPat(UOps.RANGE, src=(UPat(name="x"), UPat(name="y")), name="rng"), lambda rng,x,y: rng.dtype == x.dtype == y.dtype), (UPat(UOps.SPECIAL, src=()), lambda: True), diff --git a/tinygrad/renderer/__init__.py b/tinygrad/renderer/__init__.py index 8879956691..312f94b43a 100644 --- a/tinygrad/renderer/__init__.py +++ b/tinygrad/renderer/__init__.py @@ -34,7 +34,7 @@ class Program: if not self._ran_post_init and self.uops is not None: # single pass through the uops for u in self.uops: - if u.op is UOps.DEFINE_VAR: self.vars.append(Variable(u.arg[0], u.arg[1].arg, u.arg[2].arg)) + if u.op is UOps.DEFINE_VAR: self.vars.append(Variable(u.arg[0], u.arg[1], u.arg[2])) if u.op is UOps.DEFINE_GLOBAL: self.globals.append(u.arg) if u.op is UOps.STORE: self.outs.extend([x.arg for x in u.src[0].sparents if x.op is UOps.DEFINE_GLOBAL]) if u.op is UOps.SPECIAL: From 982086f54cb1de5dba74218e14f4423329933028 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 14:19:25 +0800 Subject: [PATCH 05/45] UOps.VALID try 2 (#6623) * make UOps.VALID compile * fixable tests * bufs dedup * cleanup the CONST spec * regenerate dataset with graph_rewrite ```py def rewrite_const(const:UOp, st_src:UOp) -> UOp: st: ShapeTracker = st_src.arg return UOp(UOps.VALID, dtypes.bool, (st.to_uop(),)).where(UOp.const(const.dtype, const.arg), UOp.const(const.dtype, 0)) pm = PatternMatcher([(UPat(UOps.CONST, name="const", src=(UPat(UOps.SHAPETRACKER, name="st_src"),)), rewrite_const)]) ``` * rm arg * remove arg * revert arg removal This reverts commit 2c35c75c950075d38c9fb8572f14640fe8235f74. * red test_pickle_define_var --- extra/datasets/sops.gz | Bin 546033 -> 194935 bytes test/helpers.py | 2 +- test/test_linearizer.py | 2 +- test/test_multitensor.py | 6 +++--- test/test_pickle.py | 31 +++++++++++++++++++++++++++++++ test/unit/test_verify_ast.py | 2 +- tinygrad/codegen/kernel.py | 2 +- tinygrad/codegen/lowerer.py | 2 +- tinygrad/engine/schedule.py | 2 +- tinygrad/ops.py | 12 ++++++------ 10 files changed, 46 insertions(+), 15 deletions(-) diff --git a/extra/datasets/sops.gz b/extra/datasets/sops.gz index cf75102480ecb907b9a0d665dd39a1e2f7f51444..5de066b1a74217512e874993cb850ea3f286fba8 100644 GIT binary patch literal 194935 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

i29Y*I+LbC=cKr0p8I;@QzGex{G&Y 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
7aVcg{P1D#hfzz<>&8FG%8s=oYOw)tx3nM(#e#j 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%0AUk$ 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

P9$5@ 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

  • SS5nf)M0{0NVa6*B5TIKA1Wv5(-yGh>A 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 gIMfb22M474I7NV}(dt|+{t%dBC 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
    r{D@Hf&V^MU=F1)Kmugp9+ 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

    !JGPm?gKs`fw`UkbRi1cKske%Jm$lz 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 Tk None: def ast_const(dtype:DType, val:ConstType, shape:Tuple[sint, ...]=(), st:Optional[ShapeTracker]=None, st_src:Optional[Tuple[UOp]]=None) -> UOp: if st_src is None: st_src = (st.to_uop() if st is not None else ShapeTracker.from_shape(()).reshape((1,)*len(shape)).expand(shape).to_uop(),) - return UOp(UOps.CONST, dtype, st_src, dtypes.as_const(val, dtype)) + return UOp(UOps.VALID, dtypes.bool, st_src).where(UOp.const(dtype, val), UOp.const(dtype, 0)) T = TypeVar("T") def timeit(fxn:Callable[..., T], *args, **kwargs) -> Tuple[T, float]: diff --git a/test/test_linearizer.py b/test/test_linearizer.py index 00ef6a5b9f..7523f387ff 100644 --- a/test/test_linearizer.py +++ b/test/test_linearizer.py @@ -1715,7 +1715,7 @@ class TestHandCodedOpts(unittest.TestCase): k = Kernel(si.ast) k.hand_coded_optimizations() if k.reduceop is not None: continue # not a tile transform kernel (there is a gemm reduce kernel) - if len(k.bufs) < 36: continue # not a tile transform kernel (there's a permute kernel at the end) + if len(k.bufs) < 22: continue # not a tile transform kernel (there's a permute kernel at the end) upcasts.append(tuple(k.full_shape[k.shape_len - k.upcasted:k.shape_len])) assert len(upcasts) == 3 # 3 transformation matrices assert len(wino_schedule) <= 4 # 4 kernels diff --git a/test/test_multitensor.py b/test/test_multitensor.py index b0e9fcca96..abccdfe335 100644 --- a/test/test_multitensor.py +++ b/test/test_multitensor.py @@ -572,13 +572,13 @@ class TestMultiTensor(unittest.TestCase): assert ast.op is UOps.STORE assert ast.src[2].arg is BinaryOps.ADD assert ast.src[2].src[0].op is UOps.LOAD and ast.src[2].src[0] - assert ast.src[2].src[1].op is UOps.CONST and ast.src[2].src[1].arg == 1 + assert ast.src[2].src[1].src[1].op is UOps.CONST and ast.src[2].src[1].src[1].arg == 1 t = 2 * t for si in t.schedule(): ast = si.ast.src[0] assert ast.op is UOps.STORE assert ast.src[2].arg is BinaryOps.MUL - assert ast.src[2].src[0].op is UOps.CONST and ast.src[2].src[0].arg == 2 + assert ast.src[2].src[0].src[1].op is UOps.CONST and ast.src[2].src[0].src[1].arg == 2 assert ast.src[2].src[1].op is UOps.LOAD t = t + t.full_like(3) for si in t.schedule(): @@ -586,7 +586,7 @@ class TestMultiTensor(unittest.TestCase): assert ast.op is UOps.STORE assert ast.src[2].arg is BinaryOps.ADD assert ast.src[2].src[0].op is UOps.LOAD - assert ast.src[2].src[1].op is UOps.CONST and ast.src[2].src[1].arg == 3 + assert ast.src[2].src[1].src[1].op is UOps.CONST and ast.src[2].src[1].src[1].arg == 3 def test_shard_memory(self): devices = (d0, d1, d2, d3) diff --git a/test/test_pickle.py b/test/test_pickle.py index 050cb4cef3..00d5fc5d3e 100644 --- a/test/test_pickle.py +++ b/test/test_pickle.py @@ -2,7 +2,12 @@ import unittest, pickle import numpy as np from test.helpers import assert_equiv_uops from tinygrad import Tensor, TinyJit, Variable +from tinygrad.codegen.kernel import Kernel +from tinygrad.dtype import PtrDType, dtypes from tinygrad.engine.schedule import create_schedule +from tinygrad.ops import BinaryOps, TernaryOps, UOp, UOps, UnaryOps +from tinygrad.shape.shapetracker import ShapeTracker +from tinygrad.shape.view import View class TestPickle(unittest.TestCase): def test_pickle_realized_tensor(self): @@ -66,6 +71,32 @@ class TestPickle(unittest.TestCase): sched_pk = pickle.loads(pk) assert_equiv_uops(sched_pk[-1].ast, sched[-1].ast) + def test_pickle_define_var(self): + ast = UOp(UOps.SINK, dtypes.void, arg=None, src=( + UOp(UOps.STORE, dtypes.void, arg=None, src=( + UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float), arg=0, src=()), + x2:=UOp(UOps.SHAPETRACKER, dtypes.void, arg=ShapeTracker(views=(View(shape=(1, 1), strides=(0, 0), offset=0, mask=None, contiguous=True),)), src=()), # noqa: E501 + UOp(UOps.ALU, dtypes.float, arg=BinaryOps.MUL, src=( + UOp(UOps.REDUCE_AXIS, dtypes.float, arg=(BinaryOps.ADD, (0, 1)), src=( + UOp(UOps.LOAD, dtypes.float, arg=None, src=( + UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float), arg=1, src=()), + UOp(UOps.SHAPETRACKER, dtypes.void, arg=ShapeTracker(views=(View(shape=(Variable('i', 1, 10), 3), strides=(3, 1), offset=0, mask=None, contiguous=True),)), src=()),)),)), # noqa: E501 + UOp(UOps.ALU, dtypes.float, arg=UnaryOps.RECIP, src=( + UOp(UOps.CAST, dtypes.float, arg=None, src=( + UOp(UOps.ALU, dtypes.int, arg=BinaryOps.MUL, src=( + UOp(UOps.ALU, dtypes.int, arg=TernaryOps.WHERE, src=( + x12:=UOp(UOps.VALID, dtypes.bool, arg=None, src=( + x2,)), + UOp.define_var("i", dtypes.int, 1, 10), + x14:=UOp(UOps.CONST, dtypes.int, arg=0, src=()),)), + UOp(UOps.ALU, dtypes.int, arg=TernaryOps.WHERE, src=( + x12, + UOp(UOps.CONST, dtypes.int, arg=3, src=()), + x14,)),)),)),)),)),)),)) + p = Kernel(ast).to_program(name_override="test") + ps = Kernel(pickle.loads(pickle.dumps(ast))).to_program(name_override="test") + self.assertEqual(ps.src, p.src) + class TestPickleJIT(unittest.TestCase): @classmethod def setUpClass(cls): diff --git a/test/unit/test_verify_ast.py b/test/unit/test_verify_ast.py index 0c21fbcfe2..3b7ab3ce1b 100644 --- a/test/unit/test_verify_ast.py +++ b/test/unit/test_verify_ast.py @@ -79,7 +79,7 @@ class TestVerifyAST(unittest.TestCase): uop_sts = verify_ast(a.schedule()[-1].ast) store_st = [st for u,st in uop_sts.items() if u.op is UOps.STORE][0] self.assertEqual(store_st, ShapeTracker.from_shape((4, 4))) - const_st = [st for u,st in uop_sts.items() if u.op is UOps.CONST][0] + const_st = [st for u,st in uop_sts.items() if u.op is UOps.VALID][0] self.assertEqual(const_st, ShapeTracker.from_shape((1, 1)).expand((4, 4))) if __name__ == '__main__': diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index b4357b9cf3..3d9ce1eb9a 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -640,7 +640,7 @@ class Kernel: # for locals, we use the ShapeTracker that's in the srcs st = op.st_arg if op.src[0].op is UOps.DEFINE_LOCAL else self.sts[self.bufs.index(op)] st_uop = (st if apply_to_st is None else apply_to_st(st)).to_uop() - if op.op is UOps.CONST: return op.replace(src=(st_uop,)) + if op.op is UOps.VALID: return op.replace(src=(st_uop,)) if op.op is UOps.STORE: return op.replace(src=(op.src[0], st_uop, fixup_ast(op.src[2], apply_to_st))) return op.replace(src=(op.src[0], st_uop, *[fixup_ast(x, apply_to_st) for x in op.src[2:]])) if op.op is UOps.REDUCE_AXIS: diff --git a/tinygrad/codegen/lowerer.py b/tinygrad/codegen/lowerer.py index 3494286e9d..476b01ddd7 100644 --- a/tinygrad/codegen/lowerer.py +++ b/tinygrad/codegen/lowerer.py @@ -91,9 +91,9 @@ class IndependentLowerer: def _to_uop(self, x:UOp) -> UOp: if x.op in BUFFER_UOPS: idx, valid = x.st_arg.to_indexed_uops(self.ridxs if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL else self.idxs) + if x.op is UOps.VALID: return valid # TODO: check has_valid in UPat, not here has_valid = valid.op is not UOps.CONST or valid.arg is not True - if x.op is UOps.CONST: return valid.where(x.const_like(x.arg), x.const_like(0)) buf = x.src[0] if x.op is UOps.LOAD: barrier = (UOp(UOps.BARRIER, dtypes.void, (self.to_uop(x.src[2]),)),) if x.src[0].op is UOps.DEFINE_LOCAL else () diff --git a/tinygrad/engine/schedule.py b/tinygrad/engine/schedule.py index 7b03c2f9f9..490dbb5a02 100644 --- a/tinygrad/engine/schedule.py +++ b/tinygrad/engine/schedule.py @@ -139,7 +139,7 @@ def _recursive_uop(buf:LazyBuffer, st:ShapeTracker, outputs:Tuple[LazyBuffer, .. val, var_val = val.unbind() var_vals[val] = var_val else: assert isinstance(val, get_args(ConstType)), f"cannot create ConstBuffer with value {val}" - return UOp(UOps.CONST, dtype, (unbound_st.to_uop(),), val) + return UOp(UOps.VALID, dtypes.bool, (unbound_st.to_uop(),)).where(UOp.const(dtype, val), UOp.const(dtype, 0)) # otherwise, it's a load and we add it to the inputs if buf in assign_targets and not (unbound_st.contiguous or (len(unbound_st.views) == 1 and unbound_st.views[0].mask is not None and \ ShapeTracker.from_shape(unbound_st.shape).shrink(unbound_st.views[0].mask) == unbound_st.shrink(unbound_st.views[0].mask))): diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 7cd5cbd9a5..a4aad1169f 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -128,7 +128,7 @@ class UOps(FastEnum): ENDRANGE = auto() ENDIF = auto() -BUFFER_UOPS = {UOps.LOAD, UOps.STORE, UOps.CONST} +BUFFER_UOPS = {UOps.LOAD, UOps.STORE, UOps.VALID} COMMUTATIVE = {BinaryOps.ADD, BinaryOps.MUL, BinaryOps.MAX, BinaryOps.CMPNE, BinaryOps.XOR, BinaryOps.AND, BinaryOps.OR} END_FOR_UOP = {UOps.IF:(UOps.STORE, UOps.ENDIF), UOps.RANGE:(UOps.ASSIGN, UOps.ENDRANGE)} @@ -144,7 +144,7 @@ class UOp(MathTrait): def replace(self, op: Optional[UOps]=None, dtype:Optional[DType]=None, src: Optional[Tuple[UOp,...]]=None, arg:Any=None): return UOp(op or self.op, dtype or self.dtype, self.src if src is None else src, self.arg if arg is None else arg) @property - def has_st(self) -> bool: return self.op not in {UOps.DEFINE_LOCAL, UOps.DEFINE_GLOBAL} + def has_st(self) -> bool: return self.op not in {UOps.DEFINE_LOCAL, UOps.DEFINE_GLOBAL, UOps.CONST, UOps.DEFINE_VAR} @functools.cached_property def st(self) -> Optional[ShapeTracker]: if not self.has_st: return None @@ -170,7 +170,7 @@ class UOp(MathTrait): return f'({", ".join(map(str, self.arg))})' if self.op is UOps.REDUCE_AXIS else repr(self.arg) if isinstance(self.arg, Variable) else self.arg # *** uop syntactic sugar @property - def st_loc(self) -> int: return 0 if self.op is UOps.CONST else 1 + def st_loc(self) -> int: return 0 if self.op is UOps.VALID else 1 @property def st_arg(self) -> ShapeTracker: assert self.op in BUFFER_UOPS, f"st_arg called on {self.op}" @@ -228,7 +228,7 @@ class UOp(MathTrait): def full_shape(self) -> Tuple[sint, ...]: if self.op is UOps.SHAPETRACKER: return self.arg.shape # NOTE: UOps.DEFINE_GLOBAL and UOps.DEFINE_LOCAL don't have shape - return tuple(max(x) for x in zip(*[x.full_shape for x in self.src if x.op not in {UOps.DEFINE_GLOBAL, UOps.DEFINE_LOCAL}])) + return tuple(max(x) for x in zip(*[x.full_shape for x in self.src if x.has_st])) def vars(self) -> Set[UOp]: return set([x for x in self.sparents if x.op is UOps.DEFINE_VAR]) def variables(self) -> List[Variable]: st_vars: List[Set[Variable]] = [x.st_arg.vars() for x in self.sparents if x.op in BUFFER_UOPS] @@ -586,8 +586,8 @@ spec = PatternMatcher([(x, functools.partial(lambda fxn,**kw: UOp.const(dtypes.b (UPat(UOps.SHAPETRACKER, src=()), lambda: True), (UPat(UOps.SWIZZLE, src=(UPat(),)), lambda: True), - (UPat(UOps.CONST, name="x"), - lambda x: x.dtype == x.dtype.scalar() and (isinstance(x.arg, Variable) and x.src) or (type(x.arg) is type(dtypes.as_const(x.arg, x.dtype)))), + (UPat(UOps.VALID, dtypes.bool, (UPat(UOps.SHAPETRACKER),)), lambda: True), + (UPat(UOps.CONST, name="x"), lambda x: x.dtype == x.dtype.scalar() and (type(x.arg) is type(dtypes.as_const(x.arg, x.dtype)))), # early LOAD has a (UPat(UOps.LOAD, src=(UPat((UOps.DEFINE_GLOBAL, UOps.DEFINE_LOCAL)), UPat(UOps.SHAPETRACKER))), lambda: True), From 8edce821245aae4866a634865732afd39c98a5eb Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 15:08:13 +0800 Subject: [PATCH 06/45] viz show server status (#6640) --- viz/index.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/viz/index.html b/viz/index.html index 8f4f65f28f..7a000306c3 100644 --- a/viz/index.html +++ b/viz/index.html @@ -137,12 +137,17 @@ transform: rotate(360deg); } } + .status { + color: #EC5D5E; + font-weight: bold; + }

    +
    @@ -170,6 +175,17 @@ const render = new dagreD3.render(); render(inner, g); } + async function checkStatus() { + active = true; + try { + active = (await fetch("/")).ok; + } catch { + active = false; + } + if (!active) { + document.querySelector('.status').textContent = `Connection to localhost:8000 failed, is VIZ=1 running?`; + } + } var ret = {}; var cache = {}; var kernels = null; @@ -177,6 +193,7 @@ var currentKernel = 0; var currentRewrite = 0; async function main() { + checkStatus(); // ** kernel list if (kernels == null) { kernels = await (await fetch("/kernels")).json(); @@ -290,6 +307,7 @@ main() } }) + setInterval(checkStatus, 1000); main() From 9456a625bc36e08c8af920a416f0f93e69c665aa Mon Sep 17 00:00:00 2001 From: chenyu Date: Sat, 21 Sep 2024 03:44:08 -0400 Subject: [PATCH 07/45] const_like type fix (#6641) `Tuple[ConstType, ...]` instead of `Tuple[ConstType]` --- tinygrad/ops.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tinygrad/ops.py b/tinygrad/ops.py index a4aad1169f..2439dd722b 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -179,7 +179,7 @@ class UOp(MathTrait): return ret.arg def sink(self, *srcs:UOp): return UOp(UOps.SINK, dtypes.void, (self,)+srcs) def swizzle(self, st:ShapeTracker): return UOp(UOps.SWIZZLE, self.dtype, (self,), st) - def const_like(self, b:ConstType|Variable|Tuple[ConstType]): return UOp.const(self.dtype, b) + def const_like(self, b:ConstType|Variable|Tuple[ConstType, ...]): return UOp.const(self.dtype, b) def broadcast(self, count:int): assert self.dtype.count == 1 if count == 1: return self From 5bafed2f88b5bb817f336eb94aac50806284d3e6 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sat, 21 Sep 2024 16:53:34 +0800 Subject: [PATCH 08/45] process replay traceback (#6642) --- test/external/process_replay/diff_schedule.py | 7 +++--- test/external/process_replay/helpers.py | 21 ++++++++++++++++-- .../external/process_replay/process_replay.py | 22 ++++++++++--------- test/external/process_replay/reset.py | 6 ++--- test/external/process_replay/restore.py | 22 ------------------- .../process_replay/test_process_replay.py | 8 ++++--- tinygrad/codegen/kernel.py | 6 ++--- 7 files changed, 46 insertions(+), 46 deletions(-) delete mode 100644 test/external/process_replay/restore.py diff --git a/test/external/process_replay/diff_schedule.py b/test/external/process_replay/diff_schedule.py index 1639f32b3a..6637826494 100644 --- a/test/external/process_replay/diff_schedule.py +++ b/test/external/process_replay/diff_schedule.py @@ -3,6 +3,7 @@ import shutil, importlib, uuid, os, logging, contextlib from collections import defaultdict from typing import DefaultDict, List, Set, Tuple from test.external.process_replay.helpers import print_diff +from test.external.process_replay.process_replay import TABLE_NAME from tinygrad.engine.schedule import LBScheduleItem, ScheduleItem from tinygrad.helpers import CI, DEBUG, Context, ContextVar, colored, diskcache_put, fetch, getenv from tinygrad.lazy import LazyBuffer @@ -17,7 +18,7 @@ def process_replay(outs:List[LazyBuffer], graph:DefaultDict[LBScheduleItem, List if not os.path.isfile(fp): shutil.copyfile(fetch(f"https://raw.githubusercontent.com/tinygrad/tinygrad/{ref_schedule}/tinygrad/engine/schedule.py", allow_caching=False), fp) # create the reference graph - ref_graph, ref_in_degree = importlib.import_module("test.external.process_replay.master_schedule")._graph_schedule(outs) + ref_graph, ref_in_degree, _ = importlib.import_module("test.external.process_replay.master_schedule")._graph_schedule(outs) # compare diff_schedule([(ref_graph, ref_in_degree), (graph, in_degree)]) @@ -26,7 +27,7 @@ def diff_schedule(s:List[Tuple[DefaultDict[LBScheduleItem, List[LBScheduleItem]] for _,in_degree in s: for lsi in in_degree: for buf in lsi.outputs: - si_for_buf[buf].append(ScheduleItem(lsi.ast, tuple(x.buffer for x in lsi.outputs+lsi.inputs if x.size != 0), lsi.metadata)) + si_for_buf[buf].append(ScheduleItem(lsi.ast, tuple(x.buffer for x in lsi.outputs+lsi.inputs if x.size != 0), tuple(lsi.metadata))) changed = 0 seen_diffs: Set[bytes] = set() for buf,si in si_for_buf.items(): @@ -39,7 +40,7 @@ def diff_schedule(s:List[Tuple[DefaultDict[LBScheduleItem, List[LBScheduleItem]] if (cache_key:=ref.ast.key+compare.ast.key) in seen_diffs: continue seen_diffs.add(cache_key) changed += 1 - if CAPTURING_PROCESS_REPLAY: diskcache_put("schedule_diff", str(uuid.uuid4()), (str(buf), [ref.ast.key, compare.ast.key])) + if CAPTURING_PROCESS_REPLAY: diskcache_put(f"schedule_{TABLE_NAME}", str(uuid.uuid4()), (str(buf), [ref.ast.key, compare.ast.key])) if not CI: print_si_diff(ref, compare) if DEBUG >= 1: print(f"*** process replay: {changed} unique kernel{'s' if changed>1 else ''} changed") return changed diff --git a/test/external/process_replay/helpers.py b/test/external/process_replay/helpers.py index 399e797895..a932a98a6b 100644 --- a/test/external/process_replay/helpers.py +++ b/test/external/process_replay/helpers.py @@ -1,5 +1,7 @@ -import difflib, logging -from tinygrad.helpers import colored, getenv +from dataclasses import dataclass +import difflib, logging, subprocess, traceback +from typing import Dict, Optional +from tinygrad.helpers import ContextVar, colored, getenv def print_diff(s0, s1, unified=getenv("UNIFIED_DIFF",1)): if not logging.getLogger().hasHandlers(): logging.basicConfig(level=logging.INFO, format="%(message)s") @@ -10,3 +12,18 @@ def print_diff(s0, s1, unified=getenv("UNIFIED_DIFF",1)): import ocdiff diff = ocdiff.console_diff(str(s0), str(s1)) logging.info(diff) + +@dataclass(frozen=True) +class ProcessReplayContext: + ctx_vars: Dict[str, int] + loc: str = "" + head_sha: Optional[str] = None + run_id: Optional[int] = None +def get_process_replay_ctx() -> ProcessReplayContext: + ctx_vars = {k:v.value for k,v in ContextVar._cache.items()} + try: head_sha = subprocess.check_output(["git", "rev-parse", "HEAD"]).strip().decode() + except Exception: head_sha = "" + stack = filter(lambda x: not any(n in x.filename for n in ["engine/schedule.py", "engine/realize.py", "codegen/kernel.py", "unittest"]), + traceback.extract_stack()[:-1]) + loc = "\n".join(traceback.format_list(stack)) + return ProcessReplayContext(ctx_vars, loc, head_sha, getenv("GITHUB_RUN_ID") or None) diff --git a/test/external/process_replay/process_replay.py b/test/external/process_replay/process_replay.py index 9345ee87df..052c9d605e 100755 --- a/test/external/process_replay/process_replay.py +++ b/test/external/process_replay/process_replay.py @@ -12,8 +12,7 @@ from test.external.process_replay.helpers import print_diff PAGE_SIZE = 100 REF = os.getenv("GITHUB_REF_NAME", "") MAX_DIFF_PCT = getenv("PROCESS_REPLAY_MAX_DIFF_PCT", 20) -RUN_ID = os.getenv("GITHUB_RUN_ID", "HEAD") -TABLE_NAME = f"process_replay_{RUN_ID}_{getenv('GITHUB_RUN_ATTEMPT')}_{VERSION}" +TABLE_NAME = f"process_replay_{VERSION}" os.environ["RUN_PROCESS_REPLAY"] = "0" early_stop = multiprocessing.Event() logging.basicConfig(level=logging.INFO, format="%(message)s") @@ -28,7 +27,7 @@ if REF == "master": SKIP_PROCESS_REPLAY = True def diff_schedule(offset:int) -> bool: conn = db_connection() cur = conn.cursor() - cur.execute(f"SELECT val FROM 'schedule_diff_{VERSION}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) + cur.execute(f"SELECT val FROM 'schedule_{TABLE_NAME}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) changed = 0 for row in cur.fetchall(): changed += 1 @@ -43,7 +42,7 @@ def diff_kernel(offset:int) -> bool: if early_stop.is_set(): return True conn = db_connection() cur = conn.cursor() - cur.execute(f"SELECT val FROM '{TABLE_NAME}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) + cur.execute(f"SELECT val FROM 'kernel_{TABLE_NAME}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) changed = 0 for row in cur.fetchall(): # try unpickle @@ -54,7 +53,7 @@ def diff_kernel(offset:int) -> bool: continue # try linearize try: - with Context(**{k:v for k,v in ctx.items() if k in ContextVar._cache and k != "DEBUG"}): + with Context(**{k:v for k,v in ctx.ctx_vars.items() if k in ContextVar._cache and k != "DEBUG"}): k = Kernel(ast, opts=opts) for opt in applied_opts: k.apply_opt(opt) # NOTE: replay with the captured renderer, not the one in master @@ -72,6 +71,7 @@ def diff_kernel(offset:int) -> bool: logging.info("PROCESS REPLAY DETECTED CHANGE") logging.info(ast) logging.info(applied_opts) + logging.info(ctx.loc) print_diff(good_src, compare_src) if ASSERT_DIFF: return True if changed > MAX_DIFF_PCT: @@ -98,12 +98,12 @@ def _pmap(row_count:int, fxn:Callable[[int], bool], maxtasksperchild:int=16) -> def process_replay_schedule() -> None: conn = db_connection() cur = conn.cursor() - try: has_diff = cur.execute(f"select name from sqlite_master where type='table' and name='schedule_diff_{VERSION}'").fetchone() + try: has_diff = cur.execute(f"select name from sqlite_master where type='table' and name='schedule_{TABLE_NAME}'").fetchone() except sqlite3.OperationalError: - logging.warning(f"schedule_diff_{VERSION} isn't accessible in master, did DB_VERSION change?") + logging.warning(f"schedule_{TABLE_NAME} isn't accessible in master, did DB_VERSION change?") return if has_diff: - row_count = cur.execute(f"select count(*) from 'schedule_diff_{VERSION}'").fetchone()[0] + row_count = cur.execute(f"select count(*) from 'schedule_{TABLE_NAME}'").fetchone()[0] if row_count != 0: logging.info("***** schedule diff") conn.commit() cur.close() @@ -112,9 +112,9 @@ def process_replay_schedule() -> None: def process_replay_kernel() -> None: conn = db_connection() cur = conn.cursor() - try: row_count = cur.execute(f"select count(*) from '{TABLE_NAME}'").fetchone()[0] + try: row_count = cur.execute(f"select count(*) from 'kernel_{TABLE_NAME}'").fetchone()[0] except sqlite3.OperationalError: - logging.warning(f"{TABLE_NAME} isn't accessible in master, did DB_VERSION change?") + logging.warning(f"kernel_{TABLE_NAME} isn't accessible in master, did DB_VERSION change?") return None conn.commit() cur.close() @@ -127,6 +127,8 @@ if __name__ == "__main__": logging.info("skipping process replay.") exit(0) + logging.info("***** process replay config") + logging.info(f"{ASSERT_DIFF=}") logging.info("***** schedule diff") try: process_replay_schedule() except Exception as e: diff --git a/test/external/process_replay/reset.py b/test/external/process_replay/reset.py index 552cec748c..9f1913bd5d 100755 --- a/test/external/process_replay/reset.py +++ b/test/external/process_replay/reset.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -from tinygrad.helpers import db_connection, VERSION, getenv, os +from tinygrad.helpers import db_connection, VERSION, os cur = db_connection() -cur.execute(f"drop table if exists process_replay_{getenv('GITHUB_RUN_ID', 'HEAD')}_{getenv('GITHUB_RUN_ATTEMPT')}_{VERSION}") -cur.execute(f"drop table if exists schedule_diff_{VERSION}") +cur.execute(f"drop table if exists kernel_process_replay_{VERSION}") +cur.execute(f"drop table if exists schedule_process_replay_{VERSION}") if os.path.exists(fp:=__file__.replace("reset", "master_schedule")): os.system(f"rm -rf {fp}") diff --git a/test/external/process_replay/restore.py b/test/external/process_replay/restore.py deleted file mode 100644 index 16079c5f2b..0000000000 --- a/test/external/process_replay/restore.py +++ /dev/null @@ -1,22 +0,0 @@ -# restore a specific benchmark process replay -import pickle, os -from tinygrad.device import Device -from tinygrad.helpers import db_connection, VERSION, tqdm - -cur = db_connection() -RUN_ID = os.environ["GITHUB_RUN_ID"] -ATTEMPT = os.environ["GITHUB_RUN_ATTEMPT"] -TABLE_NAME = f"process_replay_{RUN_ID}_{ATTEMPT}_{VERSION}" -PAGE_SIZE = 100 -row_cnt = cur.execute(f"select count(*) from {TABLE_NAME}").fetchone()[0] -for offset in tqdm(range(0, row_cnt, PAGE_SIZE)): - rows = cur.execute(f"SELECT val FROM '{TABLE_NAME}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)).fetchall() - for row in rows: - ast, opts, applied_opts, name, compare_src, ctx = pickle.loads(row[0]) - try: Device[opts.device].compiler.compile(compare_src) - except Exception: - print("FAILED TO COMPILE") - print(ast) - print(applied_opts) - print(compare_src) - continue diff --git a/test/external/process_replay/test_process_replay.py b/test/external/process_replay/test_process_replay.py index 20c4bb0e8f..e1f4829618 100644 --- a/test/external/process_replay/test_process_replay.py +++ b/test/external/process_replay/test_process_replay.py @@ -1,4 +1,5 @@ import unittest +from test.external.process_replay.helpers import get_process_replay_ctx from test.external.process_replay.process_replay import TABLE_NAME, diff_kernel from tinygrad.codegen.kernel import Kernel @@ -8,16 +9,17 @@ from tinygrad.renderer.cstyle import ClangRenderer from tinygrad.tensor import Tensor def helper_append_replay(ast:UOp, name:str, src:str) -> int: - diskcache_put(TABLE_NAME.replace(f"_{VERSION}", ""), "test_1", (ast, ClangRenderer(), [], to_function_name(name), src, {})) + nm = "kernel_"+TABLE_NAME + diskcache_put(nm.replace(f"_{VERSION}", ""), "test_1", (ast, ClangRenderer(), [], to_function_name(name), src, get_process_replay_ctx())) conn = db_connection() - row_count = conn.execute(f"select count(*) from '{TABLE_NAME}'").fetchone()[0] + row_count = conn.execute(f"select count(*) from '{nm}'").fetchone()[0] return row_count class TestProcessReplay(unittest.TestCase): def tearDown(self): conn = db_connection() cur = conn.cursor() - cur.execute(f"DELETE FROM '{TABLE_NAME}' WHERE key LIKE 'test_%'") + cur.execute(f"DELETE FROM 'kernel_{TABLE_NAME}' WHERE key LIKE 'test_%'") conn.commit() cur.close() diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index 3d9ce1eb9a..5a8aab4b99 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -9,7 +9,7 @@ from tinygrad.device import Device from tinygrad.renderer import Renderer, TensorCore, Program from tinygrad.dtype import ImageDType, PtrDType from tinygrad.helpers import _CURRENT_KERNEL, all_same, colored, ansilen, dedup, getenv, prod, DEBUG, TC_OPT, USE_TC, AMX, round_up, all_int, \ - get_contraction, to_function_name, diskcache_put, ContextVar + get_contraction, to_function_name, diskcache_put from tinygrad.shape.shapetracker import ShapeTracker from tinygrad.shape.symbolic import Variable, sint from tinygrad.shape.view import strides_for_shape @@ -763,8 +763,8 @@ class Kernel: src = self.opts.render(name:=to_function_name(ansiname:=(name_override if name_override is not None else self.name)), self.uops) if getenv("RUN_PROCESS_REPLAY"): - table_name = f"process_replay_{getenv('GITHUB_RUN_ID', 'HEAD')}_{getenv('GITHUB_RUN_ATTEMPT')}" - diskcache_put(table_name, str(id(self)), (self.ast, self.opts, self.applied_opts, name, src, {k:v.value for k,v in ContextVar._cache.items()})) + from test.external.process_replay.helpers import get_process_replay_ctx + diskcache_put("kernel_process_replay", str(id(self)), (self.ast, self.opts, self.applied_opts, name, src, get_process_replay_ctx())) # group non-local bufs by the op type (LOAD or STORE) and the buffer arg. take the max access of that buffer in bytes # TODO: these max and min don't work on symbolic, and results are very wrong. From 4751159139622d5e08651cdf049d981192ff9bbd Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sun, 22 Sep 2024 08:49:44 +0800 Subject: [PATCH 09/45] second iteration on viz/serve.py (#6643) * small detail in checkStatus * better abstractions for the api * update test_viz * ui updates --- viz/index.html | 19 +++++----- viz/serve.py | 93 ++++++++++++++++++++++++++++--------------------- viz/test_viz.py | 14 ++++---- 3 files changed, 69 insertions(+), 57 deletions(-) diff --git a/viz/index.html b/viz/index.html index 7a000306c3..6b2d99b800 100644 --- a/viz/index.html +++ b/viz/index.html @@ -182,9 +182,7 @@ } catch { active = false; } - if (!active) { - document.querySelector('.status').textContent = `Connection to localhost:8000 failed, is VIZ=1 running?`; - } + document.querySelector('.status').textContent = active ? `` : `Connection to localhost:8000 failed, is VIZ=1 running?`; } var ret = {}; var cache = {}; @@ -197,12 +195,13 @@ // ** kernel list if (kernels == null) { kernels = await (await fetch("/kernels")).json(); + currentKernel = 0; } const kernelList = document.querySelector(".container.kernel-list"); kernelList.innerHTML = ""; - Object.entries(kernels).forEach(([k,uopRewrites], i) => { - kernelUl = Object.assign(document.createElement("ul"), { innerHTML: `

    ${k}

    `, key: `kernel-${i}`, className: i === currentKernel ? "active" : "" }); - uopRewrites.forEach((u, j) => { + kernels.forEach((k, i) => { + kernelUl = Object.assign(document.createElement("ul"), { innerHTML: `

    ${k.name}

    `, key: `kernel-${i}`, className: i === currentKernel ? "active" : "" }); + k.ctxs.forEach((u, j) => { const rwUl = Object.assign(document.createElement("ul"), { innerText: u, key: `uop-rewrite-${j}`, className: (j === currentUOp && i == currentKernel) ? "active" : "" }) if (i !== currentKernel) { rwUl.style.display = "none"; @@ -243,8 +242,8 @@ const pre = Object.assign(document.createElement("pre"), { innerHTML: `${e}`, className: "code-block" }); metadata.appendChild(pre); }) - if (ret[0].code !== "") { - const pre = Object.assign(document.createElement("pre"), { innerHTML: `${ret[0].code}`, className: "code-block" }); + if (kernels[currentKernel].code !== "") { + const pre = Object.assign(document.createElement("pre"), { innerHTML: `${kernels[currentKernel].code}`, className: "code-block" }); metadata.appendChild(pre); } // ** rewrite list @@ -290,7 +289,7 @@ if (event.key == "ArrowDown") { event.preventDefault() currentRewrite = 0; - const totalUOps = Array.from(Object.values(kernels))[currentKernel].length-1; + const totalUOps = kernels[currentKernel].ctxs.length-1; currentUOp = Math.min(totalUOps, currentUOp+1) main() } @@ -307,7 +306,7 @@ main() } }) - setInterval(checkStatus, 1000); + setInterval(checkStatus, 5000); main() diff --git a/viz/serve.py b/viz/serve.py index 55ad89f774..57958d4d14 100755 --- a/viz/serve.py +++ b/viz/serve.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +from __future__ import annotations from typing import Dict, List, Tuple import pickle, os, sys, time, threading, webbrowser, json, difflib, contextlib from dataclasses import dataclass @@ -11,6 +12,38 @@ from tinygrad.engine.graph import uops_colors, word_wrap from tinygrad.engine.realize import get_runner from tinygrad.engine.schedule import full_ast_rewrite +# **** /graph - detailed UOp + rewrites + +@dataclass(frozen=True) +class UOpRet: + loc: str + graphs: List[Tuple[UOp, UOp, UOp, UOp]] # snapshot of the entire AST after each rewrite + diffs: List[Tuple[str, Tuple[str, int], List[str]]] # the diffs for each rewrite + extra: List[List[str]] # these become code blocks in the UI + @staticmethod + def from_ctx(ctx:TrackedRewriteContext) -> UOpRet: + uops: List[UOp] = [ctx.sink] + graphs: List[Tuple[UOp, UOp, UOp, UOp]] = [(ctx.sink, ctx.sink, ctx.sink, ctx.sink)] + diffs: List[Tuple[str, Tuple[str, int], List[str]]] = [] + extra: List[List[str]] = [[str(ctx.sink)]] + seen_replaces: Dict[bytes, UOp] = {} + for i, (first, rewritten, pattern) in enumerate(ctx.rewrites): + if pattern.location[0].split("/")[-1] == "ops.py": continue + # first, rewrite this UOp with the current rewrite + all the seen rewrites before this + seen_replaces[first.key] = rewritten + new_sink = replace_uop(uops[-1], {**seen_replaces}) + # sanity check + assert new_sink is not uops[-1], f"rewritten sink wasn't rewritten! {i}\n{new_sink}\n{uops[-1]}" + # update ret data + diffs.append((str(pattern), pattern.location, list(difflib.unified_diff(str(first).splitlines(), str(rewritten).splitlines())))) + graphs.append((new_sink, uops[-1], rewritten, first)) + uops.append(new_sink) + extra.append([str(new_sink)]) + return UOpRet(ctx.loc, graphs, diffs, extra) + def to_json(self) -> Dict: + return {"loc": self.loc, "graphs": [[uop_to_json(x) for x in graph] for graph in self.graphs], + "diffs": self.diffs, "extra": self.extra} + def uop_to_json(x:UOp) -> Dict[int, Tuple[str, str, List[int], str, str]]: assert isinstance(x, UOp) graph: Dict[int, Tuple[str, str, List[int], str, str]] = {} @@ -22,51 +55,33 @@ def uop_to_json(x:UOp) -> Dict[int, Tuple[str, str, List[int], str, str]]: graph[id(u)] = (label, str(u.dtype), [id(x) for x in u.src], str(u.arg), uops_colors.get(u.op, "#ffffff")) return graph -@dataclass(frozen=True) -class UOpRet: - loc: str - graphs: List[Tuple[UOp, UOp, UOp, UOp]] # snapshot of the entire AST after each rewrite - diffs: List[Tuple[str, Tuple[str, int], List[str]]] # the diffs for each rewrite - extra: List[List[str]] # these become code blocks in the UI - def replace_uop(base:UOp, replaces:Dict[bytes, UOp]) -> UOp: if (found:=replaces.get(base.key)): return found new_srcs = tuple(replace_uop(x, replaces) for x in base.src) replaces[base.key] = ret = UOp(base.op, base.dtype, new_srcs, base.arg) if new_srcs != base.src else base return ret -def create_graph(ctx:TrackedRewriteContext) -> UOpRet: - uops: List[UOp] = [ctx.sink] - graphs: List[Tuple[UOp, UOp, UOp, UOp]] = [(ctx.sink, ctx.sink, ctx.sink, ctx.sink)] - diffs: List[Tuple[str, Tuple[str, int], List[str]]] = [] - extra: List[List[str]] = [[str(ctx.sink)]] - seen_replaces: Dict[bytes, UOp] = {} - for i, (first, rewritten, pattern) in enumerate(ctx.rewrites): - if pattern.location[0].split("/")[-1] == "ops.py": continue - # first, rewrite this UOp with the current rewrite + all the seen rewrites before this - seen_replaces[first.key] = rewritten - new_sink = replace_uop(uops[-1], {**seen_replaces}) - # sanity check - assert new_sink is not uops[-1], f"rewritten sink wasn't rewritten! {i}\n{new_sink}\n{uops[-1]}" - # update ret data - diffs.append((str(pattern), pattern.location, list(difflib.unified_diff(str(first).splitlines(), str(rewritten).splitlines())))) - graphs.append((new_sink, uops[-1], rewritten, first)) - uops.append(new_sink) - extra.append([str(new_sink)]) - return UOpRet(ctx.loc, graphs, diffs, extra) +# **** /kernels - Overview of the kernel -def get_ctx_groups(contexts:List[TrackedRewriteContext]) -> Dict[str, Tuple[List[TrackedRewriteContext], str]]: - ctx_groups: Dict[str, Tuple[List[TrackedRewriteContext], str]] = {} +@dataclass(frozen=True) +class KernelRet: + name: str + code: str + ctxs: List[TrackedRewriteContext] + def to_json(self) -> Dict: + return {"name":self.name, "code":self.code, "ctxs":[x.loc for x in self.ctxs]} + +def load_kernels(contexts:List[TrackedRewriteContext]) -> List[KernelRet]: + ret: Dict[str, KernelRet] = {} kernel_name = "" code = "" for ctx in contexts: if ctx.loc.split("/")[-1].split(":")[0] == "schedule.py": with Context(TRACK_MATCH_STATS=0): kernel_name, code = (prg:=get_runner(Device.DEFAULT, full_ast_rewrite(ctx.sink)).p).name, prg.src elif ctx.kernel_name is not None: kernel_name = ctx.kernel_name - if ctx_groups.get(k:=to_function_name(kernel_name)) is None: ctx_groups[k] = ([], code) - # TODO: make ansi play nice with css - ctx_groups[to_function_name(kernel_name)][0].append(ctx) - return ctx_groups + if ret.get(k:=to_function_name(kernel_name)) is None: ret[k] = KernelRet(k, code, []) + ret[k].ctxs.append(ctx) + return list(ret.values()) class Handler(BaseHTTPRequestHandler): def do_GET(self): @@ -87,20 +102,18 @@ class Handler(BaseHTTPRequestHandler): self.send_header("Content-type", "application/json") self.end_headers() with open("/tmp/rewrites.pkl", "rb") as f: contexts: List[TrackedRewriteContext] = pickle.load(f) - ctx_groups = get_ctx_groups(contexts) - ret = json.dumps({k:[x.loc for x in v[0]] for k,v in ctx_groups.items()}).encode() + kernels = load_kernels(contexts) + ret = json.dumps([x.to_json() for x in kernels]).encode() elif url.path == "/graph": query = parse_qs(url.query) self.send_response(200) self.send_header("Content-type", "application/json") self.end_headers() with open("/tmp/rewrites.pkl", "rb") as f: contexts: List[TrackedRewriteContext] = pickle.load(f) - ctx_groups = get_ctx_groups(contexts) - group, code = ctx_groups[list(ctx_groups.keys())[int(query["kernel_idx"][0])]] - g = create_graph(group[int(query["uop_idx"][0])]) - rest = [x.loc for x in group] - ret = json.dumps(({"loc": g.loc, "graphs": [[uop_to_json(x) for x in graph] for graph in g.graphs], - "diffs": g.diffs, "extra": g.extra, "code": code}, rest)).encode() + kernels = load_kernels(contexts) + k = kernels[int(query["kernel_idx"][0])] + g = UOpRet.from_ctx(k.ctxs[int(query["uop_idx"][0])]) + ret = json.dumps((g.to_json(), [x.loc for x in k.ctxs])).encode() else: self.send_response(404) ret = b"" diff --git a/viz/test_viz.py b/viz/test_viz.py index 5b76e1c6cf..e0c99c7dc2 100644 --- a/viz/test_viz.py +++ b/viz/test_viz.py @@ -9,7 +9,7 @@ from tinygrad.dtype import dtypes, PtrDType from tinygrad.helpers import CI, all_same, DEBUG, colored, getenv from tinygrad.codegen.uopgraph import constant_folder, devectorize, float4_folding from test.external.process_replay.helpers import print_diff -from viz.serve import create_graph, get_ctx_groups +from viz.serve import UOpRet, load_kernels class TestViz(unittest.TestCase): def tearDown(self) -> None: @@ -19,7 +19,7 @@ class TestViz(unittest.TestCase): def assert_valid_ctx(self, contexts): assert len(contexts) != 0 for i,ctx in enumerate(contexts): - try: ret = create_graph(ctx) + try: ret = UOpRet.from_ctx(ctx) except Exception as e: print(colored(f"failed to create graph for ctx {i}", "red")) raise e @@ -45,10 +45,10 @@ class TestViz(unittest.TestCase): schedule2 = Tensor.randn(4, 4).contiguous().schedule() list(lower_schedule(schedule1)) list(lower_schedule(schedule2)) - ret = get_ctx_groups(contexts) - assert len(ret.keys()) == 2 - assert all(len([x for x in ctxs if "schedule" in x.loc]) != 0 for ctxs,_ in ret.values()) - assert all(len([x for x in ctxs if "uopgraph" in x.loc]) != 0 for ctxs,_ in ret.values()) + ret = load_kernels(contexts) + assert len(ret) == 2 + assert all(len([x for x in y.ctxs if "schedule" in x.loc]) != 0 for y in ret) + assert all(len([x for x in y.ctxs if "uopgraph" in x.loc]) != 0 for y in ret) def test_gemm_diff(self): x = Tensor.empty(64, 64).realize() @@ -67,7 +67,7 @@ class TestViz(unittest.TestCase): ]) ret = graph_rewrite(sink, pm) if DEBUG >= 4: print_diff(sink, ret) - g = create_graph(contexts[0]) + g = UOpRet.from_ctx(contexts[0]) assert g.graphs[-1][0].key == ret.key self.assert_valid_ctx(contexts) From 84703d5b771871b53d5770e792a90ed8147c77c7 Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Sun, 22 Sep 2024 13:22:26 +0800 Subject: [PATCH 10/45] replace the lowerer with a contextual PatternMatcher [run_process_replay] (#6646) * replace the lowerer with a contextual PatternMatcher [run_process_replay] * todo * it's REDUCE by the time it's in lowerer --- tinygrad/codegen/lowerer.py | 103 ++++++++++++++++++------------------ tinygrad/ops.py | 17 +++--- 2 files changed, 61 insertions(+), 59 deletions(-) diff --git a/tinygrad/codegen/lowerer.py b/tinygrad/codegen/lowerer.py index 476b01ddd7..31602afa84 100644 --- a/tinygrad/codegen/lowerer.py +++ b/tinygrad/codegen/lowerer.py @@ -1,10 +1,11 @@ +# the job of the lowerer is to do indexing from __future__ import annotations import functools -from typing import List, Tuple, cast, Optional, Dict +from typing import List, Tuple, cast, Optional from tinygrad.shape.shapetracker import ShapeTracker, variable_to_uop from tinygrad.shape.symbolic import sint from tinygrad.dtype import dtypes -from tinygrad.ops import KernelInfo, BinaryOps, BUFFER_UOPS, UOp, UOps +from tinygrad.ops import KernelInfo, BinaryOps, UOp, UOps, graph_rewrite, PatternMatcher, UPat from tinygrad.renderer import Renderer from tinygrad.helpers import all_int, get_contraction, prod, partition, flatten @@ -34,6 +35,53 @@ def get_grouped_dims(prefix, dims:Tuple[sint, ...], max_sizes:Optional[Tuple[int idx //= dims[c] return ret[::-1] if reverse else ret +# TODO: move this to kernel.py, it doesn't depend on axes +def lower_wmma(ctx: IndependentLowerer, x: UOp): + upcast_axes = x.arg[-2] + wmma_sz = [prod(x[1] for x in l) for l in upcast_axes] + ret = UOp(UOps.WMMA, dtype=x.dtype.vec(wmma_sz[2]), src=( + UOp(UOps.CONTRACT, dtype=x.src[0].dtype.vec(wmma_sz[0]), src=(x.src[0],), arg=upcast_axes[0]), + UOp(UOps.CONTRACT, dtype=x.src[1].dtype.vec(wmma_sz[1]), src=(x.src[1],), arg=upcast_axes[1]), + UOp.const(x.dtype.vec(wmma_sz[2]), 0.0)), arg=x.arg) + return UOp(UOps.EXPAND, x.dtype, (ret,), arg=upcast_axes[2]) + +def lower_reduce_axis(ctx: IndependentLowerer, x: UOp): + # NOTE: always using ridxs is fine here + reduce_range, reduce_expand = partition([ctx.ridxs[i] for i in x.arg[1]], lambda y: y.op is UOps.RANGE) + alu_op: BinaryOps = x.arg[0] + ret = x.src[0] + if len(contract_axis:=flatten(x.arg for x in reduce_expand)): + ret = UOp(UOps.CONTRACT, x.dtype.vec(prod(x[1] for x in contract_axis)), (ret,), tuple(contract_axis)) + ret = functools.reduce(lambda x,y: x.alu(alu_op, y), [ret.gep(i) for i in range(ret.dtype.count)]) + return UOp(UOps.REDUCE, x.dtype, (ret,) + tuple(reduce_range), alu_op) if len(reduce_range) else ret + +def lower_load_store(ctx: IndependentLowerer, x: UOp): + idx, valid = x.st_arg.to_indexed_uops(ctx.ridxs if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL else ctx.idxs) + # TODO: check has_valid in UPat, not here + has_valid = valid.op is not UOps.CONST or valid.arg is not True + buf = x.src[0] + if x.op is UOps.LOAD: + barrier = (UOp(UOps.BARRIER, dtypes.void, (x.src[2],)),) if x.src[0].op is UOps.DEFINE_LOCAL else () + return UOp(UOps.LOAD, x.dtype, (buf, idx) + ((x.const_like(0), valid) if has_valid else ()) + barrier) + # NOTE: only store the local reduceop in the threads that are actually doing the reduce + store_back = x.src[0].op is UOps.DEFINE_LOCAL and x.src[2].op is UOps.REDUCE and \ + x.src[2].src[0].op is UOps.LOAD and x.src[2].src[0].src[0].op is UOps.DEFINE_LOCAL + # NOTE: If we're storing the reduced value back into each thread, need to zero-out the reduced axes + if store_back: idx, _ = x.st_arg.to_indexed_uops([u.const_like(0) if u in x.src[2].src else u for u in ctx.idxs]) + if x.src[0].op is UOps.DEFINE_GLOBAL or store_back: + for oidx, ridx in zip(ctx.idxs, ctx.ridxs): + if oidx != ridx: valid = valid * oidx.eq(0) + has_valid = valid.op is not UOps.CONST or valid.arg is not True + return UOp(UOps.STORE, dtypes.void, (buf, idx, x.src[2]) + ((valid,) if has_valid else ())) + +pm_lowerer = PatternMatcher([ + (UPat(UOps.WMMA, src=(UPat(), UPat()), name="x"), lower_wmma), # 2 param -> 3 param WMMA + (UPat(UOps.REDUCE_AXIS, name="x"), lower_reduce_axis), + (UPat(UOps.VALID, src=(UPat(UOps.SHAPETRACKER),), name="x"), lambda ctx,x: x.st_arg.to_indexed_uops(ctx.idxs)[1]), + # rewrite LOAD/STORE SHAPETRACKER to LOAD/STORE with indexed + (UPat((UOps.LOAD, UOps.STORE), src=(UPat(), UPat(UOps.SHAPETRACKER)), allow_any_len=True, name="x"), lower_load_store), +]) + class IndependentLowerer: def lower(self, ast:UOp, opts:Renderer) -> UOp: self.output_count = len(ast.src) @@ -79,54 +127,7 @@ class IndependentLowerer: for a in range(first_reduce, first_reduce+group_for_reduces): self.ridxs[a] = UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(full_shape[a])), (1000+a, True)) - self.uop_cache: Dict[UOp, UOp] = {} - return self.to_uop(ast) - - def to_uop(self, x:UOp) -> UOp: - if uop:=self.uop_cache.get(x, None): return uop - ret = self._to_uop(x) - self.uop_cache[x] = ret - return ret - - def _to_uop(self, x:UOp) -> UOp: - if x.op in BUFFER_UOPS: - idx, valid = x.st_arg.to_indexed_uops(self.ridxs if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL else self.idxs) - if x.op is UOps.VALID: return valid - # TODO: check has_valid in UPat, not here - has_valid = valid.op is not UOps.CONST or valid.arg is not True - buf = x.src[0] - if x.op is UOps.LOAD: - barrier = (UOp(UOps.BARRIER, dtypes.void, (self.to_uop(x.src[2]),)),) if x.src[0].op is UOps.DEFINE_LOCAL else () - return UOp(UOps.LOAD, x.dtype, (buf, idx) + ((x.const_like(0), valid) if has_valid else ()) + barrier) - # NOTE: only store the local reduceop in the threads that are actually doing the reduce - store_back = x.src[0].op is UOps.DEFINE_LOCAL and x.src[2].op is UOps.REDUCE_AXIS and \ - x.src[2].src[0].op is UOps.LOAD and x.src[2].src[0].src[0].op is UOps.DEFINE_LOCAL - # NOTE: If we're storing the reduced value back into each thread, need to zero-out the reduced axes - if store_back: idx, _ = x.st_arg.to_indexed_uops([u.const_like(0) if i in x.src[2].arg[1] else u for i,u in enumerate(self.idxs)]) - if x.src[0].op is UOps.DEFINE_GLOBAL or store_back: - for oidx, ridx in zip(self.idxs, self.ridxs): - if oidx != ridx: valid = valid * oidx.eq(0) - has_valid = valid.op is not UOps.CONST or valid.arg is not True - return UOp(UOps.STORE, dtypes.void, (buf, idx, self.to_uop(x.src[2])) + ((valid,) if has_valid else ())) - - in_uops = tuple(self.to_uop(y) for y in x.src) - if x.op is UOps.WMMA: - upcast_axes = x.arg[-2] - wmma_sz = [prod(x[1] for x in l) for l in upcast_axes] - ret = UOp(UOps.WMMA, dtype=x.dtype.vec(wmma_sz[2]), src=( - UOp(UOps.CONTRACT, dtype=in_uops[0].dtype.vec(wmma_sz[0]), src=(in_uops[0],), arg=upcast_axes[0]), - UOp(UOps.CONTRACT, dtype=in_uops[1].dtype.vec(wmma_sz[1]), src=(in_uops[1],), arg=upcast_axes[1]), - UOp.const(x.dtype.vec(wmma_sz[2]), 0.0)), arg=x.arg) - return UOp(UOps.EXPAND, x.dtype, (ret,), arg=upcast_axes[2]) - if x.op is UOps.REDUCE_AXIS: - # NOTE: always using ridxs is fine here - reduce_range, reduce_expand = partition([self.ridxs[i] for i in x.arg[1]], lambda y: y.op is UOps.RANGE) - alu_op: BinaryOps = x.arg[0] - ret = in_uops[0] - if len(contract_axis:=flatten(x.arg for x in reduce_expand)): - ret = UOp(UOps.CONTRACT, x.dtype.vec(prod(x[1] for x in contract_axis)), (ret,), tuple(contract_axis)) - ret = functools.reduce(lambda x,y: x.alu(alu_op, y), [ret.gep(i) for i in range(ret.dtype.count)]) - return UOp(UOps.REDUCE, x.dtype, (ret,) + tuple(reduce_range), alu_op) if len(reduce_range) else ret - return x if x.src == in_uops else UOp(x.op, x.dtype, in_uops, x.arg) + # rewrite to add the index + return graph_rewrite(ast, pm_lowerer, ctx=self) def ast_to_uop(ast:UOp, opts:Renderer) -> UOp: return IndependentLowerer().lower(ast, opts) diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 2439dd722b..04443c5467 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -486,11 +486,11 @@ class PatternMatcher: @functools.lru_cache(None) # pylint: disable=method-cache-max-size-none def __add__(self, more:PatternMatcher): return PatternMatcher(self.patterns+more.patterns) - def rewrite(self, uop:UOp) -> Optional[UOp]: + def rewrite(self, uop:UOp, ctx=None) -> Optional[UOp]: ler = set([v for u in uop.src for v in ((u.op, u.arg), (u.op, None))]) for p,fxn,early_reject in self.pdict[(uop.op, uop.arg)] + ([] if uop.arg is None else self.pdict[(uop.op, None)]): if not early_reject.issubset(ler): continue - if (matches := p.match(uop, {})) and (ret:=fxn(**matches[0])) is not None: return ret # NOTE: if it returns None, we keep trying to match + if (matches := p.match(uop, {})) and (ret:=(fxn(ctx, **matches[0]) if ctx is not None else fxn(**matches[0]))) is not None: return ret return None # *** tracking pattern matcher *** @@ -510,7 +510,7 @@ class TrackedPatternMatcher(PatternMatcher): for p,_ in self.patterns: if p not in match_stats: match_stats[p] = [0,0,0.0,0.0] - def rewrite(self, uop:UOp) -> Optional[UOp]: + def rewrite(self, uop:UOp, ctx=None) -> Optional[UOp]: ret = None ler = set([v for u in uop.src for v in ((u.op, u.arg), (u.op, None))]) for p,fxn,early_reject in self.pdict[(uop.op, uop.arg)] + ([] if uop.arg is None else self.pdict[(uop.op, None)]): @@ -519,7 +519,7 @@ class TrackedPatternMatcher(PatternMatcher): match_stats[p][2] += time.perf_counter()-st continue match_stats[p][1] += 1 - if (matches := p.match(uop, {})) and (ret:=fxn(**matches[0])) is not None: + if (matches := p.match(uop, {})) and (ret:=(fxn(ctx, **matches[0]) if ctx is not None else fxn(**matches[0]))) is not None: match_stats[p][0] += 1 match_stats[p][2] += (et:=time.perf_counter()-st) match_stats[p][3] += et @@ -551,8 +551,9 @@ if TRACK_MATCH_STATS: # *** simple graph rewrite engine *** class RewriteContext: - def __init__(self, pm): + def __init__(self, pm, ctx): self.pm: PatternMatcher = pm + self.ctx = ctx self.nodes: Dict[Tuple, UOp] = {} self.replace: Dict[UOp, UOp] = {} def rewrite(self, n:UOp) -> UOp: @@ -561,12 +562,12 @@ class RewriteContext: if found := self.nodes.get(replace_source): self.replace[n] = found else: x = UOp(*replace_source) if new_src != n.src else n - self.nodes[replace_source] = self.replace[n] = found = self.rewrite(new_x) if (new_x := self.pm.rewrite(x)) else x + self.nodes[replace_source] = self.replace[n] = found = self.rewrite(new_x) if (new_x := self.pm.rewrite(x, self.ctx)) else x return found -def graph_rewrite(sink:UOp, pm:PatternMatcher) -> UOp: +def graph_rewrite(sink:UOp, pm:PatternMatcher, ctx=None) -> UOp: if TRACK_MATCH_STATS >= 2: contexts.append(TrackedRewriteContext(f"{(f:=sys._getframe(1)).f_code.co_filename.split('/')[-1]}:{f.f_lineno}", sink, _CURRENT_KERNEL.get())) - return RewriteContext(pm).rewrite(sink) + return RewriteContext(pm, ctx).rewrite(sink) # ***** uop type spec ***** From 0eb710de84b06a12970a3ddbd7734f817812f1bf Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Sun, 22 Sep 2024 14:05:51 +0800 Subject: [PATCH 11/45] move WMMA out of lowerer [run_process_replay] (#6647) --- tinygrad/codegen/kernel.py | 12 ++++++++++-- tinygrad/codegen/lowerer.py | 11 ----------- tinygrad/ops.py | 6 +++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index 5a8aab4b99..9f38b31771 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -711,7 +711,14 @@ class Kernel: # MUL/SUM instead of WMMA ret = UOp(UOps.REDUCE_AXIS, tc.dtype_out, (srcs[0].alu(BinaryOps.MUL, srcs[1]).cast(tc.dtype_out),), (alu_op, wmma_arg[-1])) else: - ret = UOp(UOps.WMMA, tc.dtype_out, (fixup_ast(rsrc.src[0], fix_st1), fixup_ast(rsrc.src[1], fix_st2)), wmma_arg) + # real WMMA, use CONTRACT/EXPAND to get the vectorization right + wmma_upcast_axes = wmma_arg[-2] + wmma_sz = [prod(x[1] for x in l) for l in wmma_upcast_axes] + wmma = UOp(UOps.WMMA, dtype=tc.dtype_out.vec(wmma_sz[2]), src=( + UOp(UOps.CONTRACT, dtype=rsrc.src[0].dtype.vec(wmma_sz[0]), src=(fixup_ast(rsrc.src[0], fix_st1),), arg=wmma_upcast_axes[0]), + UOp(UOps.CONTRACT, dtype=rsrc.src[1].dtype.vec(wmma_sz[1]), src=(fixup_ast(rsrc.src[1], fix_st2),), arg=wmma_upcast_axes[1]), + UOp.const(tc.dtype_out.vec(wmma_sz[2]), 0.0)), arg=wmma_arg) + ret = UOp(UOps.EXPAND, tc.dtype_out, (wmma,), arg=wmma_upcast_axes[2]) new_reduce_axes = tuple(i for i in axis if i-self.first_upcast not in reduce_axes) return op.replace(src=(ret,), arg=(alu_op, new_reduce_axes)) if new_reduce_axes else ret if self.group_for_reduces: @@ -789,7 +796,8 @@ def _assert_valid_uop(uop:UOp, st:ShapeTracker, sts:Dict[UOp, ShapeTracker]) -> if op in {UOps.REDUCE_AXIS, UOps.WMMA}: st = ShapeTracker.from_shape(sts[src[0]].reduce(arg[-1])) elif op is UOps.SWIZZLE: st = arg else: - assert op in {UOps.SHAPETRACKER, UOps.SWIZZLE, UOps.ALU, UOps.CAST, UOps.BITCAST, *BUFFER_UOPS}, f"bad UOp in intermediate uops {uop}" + assert op in {UOps.SHAPETRACKER, UOps.SWIZZLE, UOps.ALU, UOps.CAST, UOps.BITCAST, UOps.CONTRACT, UOps.EXPAND, *BUFFER_UOPS}, \ + f"bad UOp in intermediate uops {uop}" # movementops are pushed to the edges with SHAPETRACKER # elementwise inherits shape st = arg if op is UOps.SHAPETRACKER else sts[src[uop.st_loc if op in BUFFER_UOPS else 0]] diff --git a/tinygrad/codegen/lowerer.py b/tinygrad/codegen/lowerer.py index 31602afa84..8765df5d79 100644 --- a/tinygrad/codegen/lowerer.py +++ b/tinygrad/codegen/lowerer.py @@ -35,16 +35,6 @@ def get_grouped_dims(prefix, dims:Tuple[sint, ...], max_sizes:Optional[Tuple[int idx //= dims[c] return ret[::-1] if reverse else ret -# TODO: move this to kernel.py, it doesn't depend on axes -def lower_wmma(ctx: IndependentLowerer, x: UOp): - upcast_axes = x.arg[-2] - wmma_sz = [prod(x[1] for x in l) for l in upcast_axes] - ret = UOp(UOps.WMMA, dtype=x.dtype.vec(wmma_sz[2]), src=( - UOp(UOps.CONTRACT, dtype=x.src[0].dtype.vec(wmma_sz[0]), src=(x.src[0],), arg=upcast_axes[0]), - UOp(UOps.CONTRACT, dtype=x.src[1].dtype.vec(wmma_sz[1]), src=(x.src[1],), arg=upcast_axes[1]), - UOp.const(x.dtype.vec(wmma_sz[2]), 0.0)), arg=x.arg) - return UOp(UOps.EXPAND, x.dtype, (ret,), arg=upcast_axes[2]) - def lower_reduce_axis(ctx: IndependentLowerer, x: UOp): # NOTE: always using ridxs is fine here reduce_range, reduce_expand = partition([ctx.ridxs[i] for i in x.arg[1]], lambda y: y.op is UOps.RANGE) @@ -75,7 +65,6 @@ def lower_load_store(ctx: IndependentLowerer, x: UOp): return UOp(UOps.STORE, dtypes.void, (buf, idx, x.src[2]) + ((valid,) if has_valid else ())) pm_lowerer = PatternMatcher([ - (UPat(UOps.WMMA, src=(UPat(), UPat()), name="x"), lower_wmma), # 2 param -> 3 param WMMA (UPat(UOps.REDUCE_AXIS, name="x"), lower_reduce_axis), (UPat(UOps.VALID, src=(UPat(UOps.SHAPETRACKER),), name="x"), lambda ctx,x: x.st_arg.to_indexed_uops(ctx.idxs)[1]), # rewrite LOAD/STORE SHAPETRACKER to LOAD/STORE with indexed diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 04443c5467..20661f2c9a 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -618,10 +618,10 @@ spec = PatternMatcher([(x, functools.partial(lambda fxn,**kw: UOp.const(dtypes.b (UPat(UOps.ASSIGN, src=(UPat(UOps.DEFINE_ACC), UPat())), lambda: True), (UPat(UOps.ENDRANGE, dtype=dtypes.void, src=(UPat(UOps.RANGE),)), lambda: True), - # early WMMA has 2 args, - (UPat(UOps.WMMA, src=(UPat(), UPat())), lambda: True), - # late WMMA has 3 args, + # all WMMA has 3 args, (UPat(UOps.WMMA, src=(UPat(), UPat(), UPat())), lambda: True), + (UPat(UOps.CONTRACT, name="x"), lambda x: x.dtype.count == prod(y[1] for y in x.arg)), + (UPat(UOps.EXPAND, name="x"), lambda x: x.src[0].dtype.count == prod(y[1] for y in x.arg)), # if has a (UPat(UOps.IF, dtype=dtypes.void, src=(UPat(), UPat(UOps.BARRIER))), lambda: True), From 4fc5a34fe794036d929217df9939acf9337ae46d Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Sun, 22 Sep 2024 14:15:33 +0800 Subject: [PATCH 12/45] lowerer is just a graph rewrite, not a class [run_process_replay] (#6648) --- tinygrad/codegen/lowerer.py | 108 +++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 51 deletions(-) diff --git a/tinygrad/codegen/lowerer.py b/tinygrad/codegen/lowerer.py index 8765df5d79..5d3c52ee9c 100644 --- a/tinygrad/codegen/lowerer.py +++ b/tinygrad/codegen/lowerer.py @@ -1,6 +1,7 @@ # the job of the lowerer is to do indexing from __future__ import annotations import functools +from dataclasses import dataclass from typing import List, Tuple, cast, Optional from tinygrad.shape.shapetracker import ShapeTracker, variable_to_uop from tinygrad.shape.symbolic import sint @@ -9,6 +10,8 @@ from tinygrad.ops import KernelInfo, BinaryOps, UOp, UOps, graph_rewrite, Patter from tinygrad.renderer import Renderer from tinygrad.helpers import all_int, get_contraction, prod, partition, flatten +# ***** indexing ***** + def _limit_dims(dims:Tuple[sint, ...], max_sizes:Tuple[int, ...]): # TODO: symbolic shape if not all_int(dims): return dims @@ -35,7 +38,58 @@ def get_grouped_dims(prefix, dims:Tuple[sint, ...], max_sizes:Optional[Tuple[int idx //= dims[c] return ret[::-1] if reverse else ret -def lower_reduce_axis(ctx: IndependentLowerer, x: UOp): +@dataclass(frozen=True) +class IndexContext: + idxs: List[UOp] + ridxs: List[UOp] + +def get_index(ast:UOp, opts:Renderer) -> IndexContext: + ki = ast.arg if isinstance(ast.arg, KernelInfo) else KernelInfo() + # NOTE: assumes the shape is + full_shape = ast.full_shape + first_upcasted = len(full_shape)-ki.upcasted + first_output_st: ShapeTracker = ast.src[0].st_arg + # if there's no reduce, this is first_upcasted + first_reduce = [x!=y for x,y in zip(first_output_st.shape[:first_upcasted]+(0,), full_shape[:first_upcasted]+(1,))].index(True) + local_loads = [x for x in ast.parents if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL] + # NOTE: sum up the reduced axes looking across all local loads, yields the number of grouped reduces + group_for_reduces = sum([any(j!=y for j in x) for x,y in zip( + [[l.st_arg.shape[i] for l in local_loads] for i in range(first_reduce,first_upcasted)], + first_output_st.shape[first_reduce:first_upcasted])]) if local_loads else 0 + global_dims = first_reduce-ki.local_dims + + if opts.has_local: + if ki.dont_use_locals: + assert ki.local_dims == 0, "can't use locals if there's no local dims" + idxs = get_grouped_dims("idx", full_shape[:global_dims], opts.global_max, reverse=True) + else: + # define indexes for GPU-like execution + idxs = get_grouped_dims("gidx", full_shape[:global_dims], opts.global_max, reverse=True) + \ + get_grouped_dims("lidx", full_shape[global_dims:first_reduce+group_for_reduces], opts.local_max) + else: + # all loops are RANGES + idxs = [UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(g)), (i, False)) + for i,g in enumerate(full_shape[:first_reduce])] + + # reduce loops + idxs += [UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(g)), (i, True)) + for i,g in enumerate(full_shape[first_reduce+group_for_reduces:first_upcasted], start=first_reduce+group_for_reduces)] + + # upcast loops + for i,g in enumerate(full_shape[first_upcasted:], start=first_upcasted): + assert isinstance(g, int), "needs to be int to upcast/unroll" + idxs.append(UOp(UOps.EXPAND, dtypes.pyint, (UOp.const(dtypes.pyint.vec(g), tuple(range(g))),), ((i,g),))) + + # late indexes (group for reduce) + ridxs = idxs[:] + for a in range(first_reduce, first_reduce+group_for_reduces): + ridxs[a] = UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(full_shape[a])), (1000+a, True)) + + return IndexContext(idxs, ridxs) + +# ***** lowering (given index) ***** + +def lower_reduce_axis(ctx: IndexContext, x: UOp): # NOTE: always using ridxs is fine here reduce_range, reduce_expand = partition([ctx.ridxs[i] for i in x.arg[1]], lambda y: y.op is UOps.RANGE) alu_op: BinaryOps = x.arg[0] @@ -45,7 +99,7 @@ def lower_reduce_axis(ctx: IndependentLowerer, x: UOp): ret = functools.reduce(lambda x,y: x.alu(alu_op, y), [ret.gep(i) for i in range(ret.dtype.count)]) return UOp(UOps.REDUCE, x.dtype, (ret,) + tuple(reduce_range), alu_op) if len(reduce_range) else ret -def lower_load_store(ctx: IndependentLowerer, x: UOp): +def lower_load_store(ctx: IndexContext, x: UOp): idx, valid = x.st_arg.to_indexed_uops(ctx.ridxs if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL else ctx.idxs) # TODO: check has_valid in UPat, not here has_valid = valid.op is not UOps.CONST or valid.arg is not True @@ -71,52 +125,4 @@ pm_lowerer = PatternMatcher([ (UPat((UOps.LOAD, UOps.STORE), src=(UPat(), UPat(UOps.SHAPETRACKER)), allow_any_len=True, name="x"), lower_load_store), ]) -class IndependentLowerer: - def lower(self, ast:UOp, opts:Renderer) -> UOp: - self.output_count = len(ast.src) - - ki = ast.arg if isinstance(ast.arg, KernelInfo) else KernelInfo() - # NOTE: assumes the shape is - full_shape = ast.full_shape - first_upcasted = len(full_shape)-ki.upcasted - first_output_st: ShapeTracker = ast.src[0].st_arg - # if there's no reduce, this is first_upcasted - first_reduce = [x!=y for x,y in zip(first_output_st.shape[:first_upcasted]+(0,), full_shape[:first_upcasted]+(1,))].index(True) - local_loads = [x for x in ast.parents if x.op is UOps.LOAD and x.src[0].op is UOps.DEFINE_LOCAL] - # NOTE: sum up the reduced axes looking across all local loads, yields the number of grouped reduces - group_for_reduces = sum([any(j!=y for j in x) for x,y in zip( - [[l.st_arg.shape[i] for l in local_loads] for i in range(first_reduce,first_upcasted)], - first_output_st.shape[first_reduce:first_upcasted])]) if local_loads else 0 - global_dims = first_reduce-ki.local_dims - - if opts.has_local: - if ki.dont_use_locals: - assert ki.local_dims == 0, "can't use locals if there's no local dims" - self.idxs = get_grouped_dims("idx", full_shape[:global_dims], opts.global_max, reverse=True) - else: - # define indexes for GPU-like execution - self.idxs = get_grouped_dims("gidx", full_shape[:global_dims], opts.global_max, reverse=True) + \ - get_grouped_dims("lidx", full_shape[global_dims:first_reduce+group_for_reduces], opts.local_max) - else: - # all loops are RANGES - self.idxs = [UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(g)), (i, False)) - for i,g in enumerate(full_shape[:first_reduce])] - - # reduce loops - self.idxs += [UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(g)), (i, True)) - for i,g in enumerate(full_shape[first_reduce+group_for_reduces:first_upcasted], start=first_reduce+group_for_reduces)] - - # upcast loops - for i,g in enumerate(full_shape[first_upcasted:], start=first_upcasted): - assert isinstance(g, int), "needs to be int to upcast/unroll" - self.idxs.append(UOp(UOps.EXPAND, dtypes.pyint, (UOp.const(dtypes.pyint.vec(g), tuple(range(g))),), ((i,g),))) - - # late indexes (group for reduce) - self.ridxs = self.idxs[:] - for a in range(first_reduce, first_reduce+group_for_reduces): - self.ridxs[a] = UOp(UOps.RANGE, dtypes.pyint, (UOp.const(dtypes.pyint, 0), variable_to_uop(full_shape[a])), (1000+a, True)) - - # rewrite to add the index - return graph_rewrite(ast, pm_lowerer, ctx=self) - -def ast_to_uop(ast:UOp, opts:Renderer) -> UOp: return IndependentLowerer().lower(ast, opts) +def ast_to_uop(ast:UOp, opts:Renderer) -> UOp: return graph_rewrite(ast, pm_lowerer, ctx=get_index(ast, opts)) From 6b65d8c4610421d882306129db3ada73b36f8de5 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sun, 22 Sep 2024 16:16:58 +0800 Subject: [PATCH 13/45] more process replay tracing work [run_process_replay] (#6650) --- test/external/process_replay/diff_schedule.py | 3 +-- test/external/process_replay/helpers.py | 13 ++++++------- test/external/process_replay/process_replay.py | 10 ++++------ test/external/process_replay/test_process_replay.py | 11 ++++++----- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/test/external/process_replay/diff_schedule.py b/test/external/process_replay/diff_schedule.py index 6637826494..3cdbdffd72 100644 --- a/test/external/process_replay/diff_schedule.py +++ b/test/external/process_replay/diff_schedule.py @@ -3,7 +3,6 @@ import shutil, importlib, uuid, os, logging, contextlib from collections import defaultdict from typing import DefaultDict, List, Set, Tuple from test.external.process_replay.helpers import print_diff -from test.external.process_replay.process_replay import TABLE_NAME from tinygrad.engine.schedule import LBScheduleItem, ScheduleItem from tinygrad.helpers import CI, DEBUG, Context, ContextVar, colored, diskcache_put, fetch, getenv from tinygrad.lazy import LazyBuffer @@ -40,7 +39,7 @@ def diff_schedule(s:List[Tuple[DefaultDict[LBScheduleItem, List[LBScheduleItem]] if (cache_key:=ref.ast.key+compare.ast.key) in seen_diffs: continue seen_diffs.add(cache_key) changed += 1 - if CAPTURING_PROCESS_REPLAY: diskcache_put(f"schedule_{TABLE_NAME}", str(uuid.uuid4()), (str(buf), [ref.ast.key, compare.ast.key])) + if CAPTURING_PROCESS_REPLAY: diskcache_put("schedule_diff", str(uuid.uuid4()), (str(buf), [ref.ast.key, compare.ast.key])) if not CI: print_si_diff(ref, compare) if DEBUG >= 1: print(f"*** process replay: {changed} unique kernel{'s' if changed>1 else ''} changed") return changed diff --git a/test/external/process_replay/helpers.py b/test/external/process_replay/helpers.py index a932a98a6b..b8b9880cfb 100644 --- a/test/external/process_replay/helpers.py +++ b/test/external/process_replay/helpers.py @@ -1,5 +1,5 @@ from dataclasses import dataclass -import difflib, logging, subprocess, traceback +import difflib, logging, traceback, subprocess from typing import Dict, Optional from tinygrad.helpers import ContextVar, colored, getenv @@ -17,13 +17,12 @@ def print_diff(s0, s1, unified=getenv("UNIFIED_DIFF",1)): class ProcessReplayContext: ctx_vars: Dict[str, int] loc: str = "" - head_sha: Optional[str] = None + head_sha: str = "" run_id: Optional[int] = None def get_process_replay_ctx() -> ProcessReplayContext: - ctx_vars = {k:v.value for k,v in ContextVar._cache.items()} + stack = filter(lambda x: "tinygrad" in x.filename and not any(n in x.filename for n in ["engine/schedule.py", "engine/realize.py", \ + "codegen/kernel.py", "unittest"]), traceback.extract_stack()[:-1]) + loc = "\n".join(traceback.format_list(stack)) try: head_sha = subprocess.check_output(["git", "rev-parse", "HEAD"]).strip().decode() except Exception: head_sha = "" - stack = filter(lambda x: not any(n in x.filename for n in ["engine/schedule.py", "engine/realize.py", "codegen/kernel.py", "unittest"]), - traceback.extract_stack()[:-1]) - loc = "\n".join(traceback.format_list(stack)) - return ProcessReplayContext(ctx_vars, loc, head_sha, getenv("GITHUB_RUN_ID") or None) + return ProcessReplayContext({k:v.value for k,v in ContextVar._cache.items()}, loc, head_sha, getenv("GITHUB_RUN_ID") or None) diff --git a/test/external/process_replay/process_replay.py b/test/external/process_replay/process_replay.py index 052c9d605e..de027529c0 100755 --- a/test/external/process_replay/process_replay.py +++ b/test/external/process_replay/process_replay.py @@ -27,7 +27,7 @@ if REF == "master": SKIP_PROCESS_REPLAY = True def diff_schedule(offset:int) -> bool: conn = db_connection() cur = conn.cursor() - cur.execute(f"SELECT val FROM 'schedule_{TABLE_NAME}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) + cur.execute(f"SELECT val FROM 'schedule_diff_{VERSION}' LIMIT ? OFFSET ?", (PAGE_SIZE, offset)) changed = 0 for row in cur.fetchall(): changed += 1 @@ -98,12 +98,12 @@ def _pmap(row_count:int, fxn:Callable[[int], bool], maxtasksperchild:int=16) -> def process_replay_schedule() -> None: conn = db_connection() cur = conn.cursor() - try: has_diff = cur.execute(f"select name from sqlite_master where type='table' and name='schedule_{TABLE_NAME}'").fetchone() + try: has_diff = cur.execute(f"select name from sqlite_master where type='table' and name='schedule_diff_{VERSION}'").fetchone() except sqlite3.OperationalError: - logging.warning(f"schedule_{TABLE_NAME} isn't accessible in master, did DB_VERSION change?") + logging.warning(f"schedule_diff_{VERSION} isn't accessible in master, did DB_VERSION change?") return if has_diff: - row_count = cur.execute(f"select count(*) from 'schedule_{TABLE_NAME}'").fetchone()[0] + row_count = cur.execute(f"select count(*) from 'schedule_diff_{VERSION}'").fetchone()[0] if row_count != 0: logging.info("***** schedule diff") conn.commit() cur.close() @@ -127,8 +127,6 @@ if __name__ == "__main__": logging.info("skipping process replay.") exit(0) - logging.info("***** process replay config") - logging.info(f"{ASSERT_DIFF=}") logging.info("***** schedule diff") try: process_replay_schedule() except Exception as e: diff --git a/test/external/process_replay/test_process_replay.py b/test/external/process_replay/test_process_replay.py index e1f4829618..2490289981 100644 --- a/test/external/process_replay/test_process_replay.py +++ b/test/external/process_replay/test_process_replay.py @@ -1,5 +1,6 @@ import unittest -from test.external.process_replay.helpers import get_process_replay_ctx +import contextlib, sqlite3 +from test.external.process_replay.helpers import ProcessReplayContext from test.external.process_replay.process_replay import TABLE_NAME, diff_kernel from tinygrad.codegen.kernel import Kernel @@ -9,17 +10,17 @@ from tinygrad.renderer.cstyle import ClangRenderer from tinygrad.tensor import Tensor def helper_append_replay(ast:UOp, name:str, src:str) -> int: - nm = "kernel_"+TABLE_NAME - diskcache_put(nm.replace(f"_{VERSION}", ""), "test_1", (ast, ClangRenderer(), [], to_function_name(name), src, get_process_replay_ctx())) + name = f"kernel_{TABLE_NAME}" + diskcache_put(name.replace(f"_{VERSION}", ""), "test_1", (ast, ClangRenderer(), [], to_function_name(name), src, ProcessReplayContext({}))) conn = db_connection() - row_count = conn.execute(f"select count(*) from '{nm}'").fetchone()[0] + row_count = conn.execute(f"select count(*) from '{name}'").fetchone()[0] return row_count class TestProcessReplay(unittest.TestCase): def tearDown(self): conn = db_connection() cur = conn.cursor() - cur.execute(f"DELETE FROM 'kernel_{TABLE_NAME}' WHERE key LIKE 'test_%'") + with contextlib.suppress(sqlite3.OperationalError): cur.execute(f"DELETE FROM 'kernel_{TABLE_NAME}' WHERE key LIKE 'test_%'") conn.commit() cur.close() From d1bae42d3527e265b2772e39e563cdbaea34592e Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Sun, 22 Sep 2024 21:09:46 +0800 Subject: [PATCH 14/45] viz lowerer and graph_rewrite dedup try 2 (#6652) --- tinygrad/ops.py | 4 ++-- viz/serve.py | 12 ++++++------ viz/test_viz.py | 29 ++++++++++++++++++++++++++--- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 20661f2c9a..7ac33ab36c 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -378,8 +378,8 @@ def flops_mem(uops:List[UOp], ignore_indexing=False) -> Tuple[sint, sint]: def get_location() -> Tuple[str, int]: frm = sys._getframe(1) - # find the real frame in the file that has the UPat - while frm.f_back is not None and any(fp == frm.f_back.f_code.co_filename.split("/")[-1] for fp in {"ops.py", "uopgraph.py", "schedule.py"}): + # find the real frame in the file that has the UPat, TODO: is there a better way to do this? + while frm.f_back is not None and frm.f_back.f_code.co_filename.split("/")[-1] in {"ops.py", "uopgraph.py", "schedule.py", "lowerer.py"}: frm = frm.f_back return frm.f_code.co_filename, frm.f_lineno @functools.lru_cache(None) diff --git a/viz/serve.py b/viz/serve.py index 57958d4d14..65c91e8677 100755 --- a/viz/serve.py +++ b/viz/serve.py @@ -67,9 +67,9 @@ def replace_uop(base:UOp, replaces:Dict[bytes, UOp]) -> UOp: class KernelRet: name: str code: str - ctxs: List[TrackedRewriteContext] + ctxs: Dict[Tuple[str, bytes], TrackedRewriteContext] def to_json(self) -> Dict: - return {"name":self.name, "code":self.code, "ctxs":[x.loc for x in self.ctxs]} + return {"name":self.name, "code":self.code, "ctxs":[x.loc for x in self.ctxs.values()]} def load_kernels(contexts:List[TrackedRewriteContext]) -> List[KernelRet]: ret: Dict[str, KernelRet] = {} @@ -79,8 +79,8 @@ def load_kernels(contexts:List[TrackedRewriteContext]) -> List[KernelRet]: if ctx.loc.split("/")[-1].split(":")[0] == "schedule.py": with Context(TRACK_MATCH_STATS=0): kernel_name, code = (prg:=get_runner(Device.DEFAULT, full_ast_rewrite(ctx.sink)).p).name, prg.src elif ctx.kernel_name is not None: kernel_name = ctx.kernel_name - if ret.get(k:=to_function_name(kernel_name)) is None: ret[k] = KernelRet(k, code, []) - ret[k].ctxs.append(ctx) + if ret.get(k:=to_function_name(kernel_name)) is None: ret[k] = KernelRet(k, code, {}) + ret[k].ctxs[(ctx.loc, ctx.sink.key)] = ctx return list(ret.values()) class Handler(BaseHTTPRequestHandler): @@ -112,8 +112,8 @@ class Handler(BaseHTTPRequestHandler): with open("/tmp/rewrites.pkl", "rb") as f: contexts: List[TrackedRewriteContext] = pickle.load(f) kernels = load_kernels(contexts) k = kernels[int(query["kernel_idx"][0])] - g = UOpRet.from_ctx(k.ctxs[int(query["uop_idx"][0])]) - ret = json.dumps((g.to_json(), [x.loc for x in k.ctxs])).encode() + g = UOpRet.from_ctx(list(k.ctxs.values())[int(query["uop_idx"][0])]) + ret = json.dumps((g.to_json(), [x.loc for x in k.ctxs.values()])).encode() else: self.send_response(404) ret = b"" diff --git a/viz/test_viz.py b/viz/test_viz.py index e0c99c7dc2..f1da18171c 100644 --- a/viz/test_viz.py +++ b/viz/test_viz.py @@ -6,7 +6,7 @@ from tinygrad import Tensor from tinygrad.engine.realize import lower_schedule from tinygrad.ops import UOp, UOps, graph_rewrite, PatternMatcher, UPat, contexts, KernelInfo, BinaryOps from tinygrad.dtype import dtypes, PtrDType -from tinygrad.helpers import CI, all_same, DEBUG, colored, getenv +from tinygrad.helpers import CI, Context, all_same, DEBUG, colored, getenv from tinygrad.codegen.uopgraph import constant_folder, devectorize, float4_folding from test.external.process_replay.helpers import print_diff from viz.serve import UOpRet, load_kernels @@ -47,8 +47,8 @@ class TestViz(unittest.TestCase): list(lower_schedule(schedule2)) ret = load_kernels(contexts) assert len(ret) == 2 - assert all(len([x for x in y.ctxs if "schedule" in x.loc]) != 0 for y in ret) - assert all(len([x for x in y.ctxs if "uopgraph" in x.loc]) != 0 for y in ret) + assert all(len([x for x in y.ctxs.values() if "schedule" in x.loc]) != 0 for y in ret) + assert all(len([x for x in y.ctxs.values() if "uopgraph" in x.loc]) != 0 for y in ret) def test_gemm_diff(self): x = Tensor.empty(64, 64).realize() @@ -115,5 +115,28 @@ class TestViz(unittest.TestCase): simple_pm.rewrite(UOp.const(dtypes.int, 2)) self.assertEqual(len(contexts), 0) + def test_dedup_ast(self): + contexts.clear() + a = Tensor.randn(4, 4)+2 + b = Tensor.randn(4, 4)+2 + Tensor.schedule(a, b) + kernels = load_kernels(contexts) + self.assertEqual(len(kernels), 1) + schedule_ctxs = [x for x in kernels[0].ctxs.values() if x.loc.split("/")[-1].split(":")[0] == "schedule.py"] + self.assertEqual(len(schedule_ctxs), 1) + + def test_no_dedup_different_opts(self): + contexts.clear() + a = Tensor.empty(4, 4)+Tensor.empty(4, 4) + s = a.schedule() + with Context(NOOPT=1): list(lower_schedule(s.copy())) + with Context(NOOPT=0): list(lower_schedule(s.copy())) + kernels = load_kernels(contexts) + self.assertEqual(len(kernels), 2) + schedule_ctxs = [x for x in kernels[0].ctxs.values() if x.loc.split("/")[-1].split(":")[0] == "schedule.py"] + self.assertEqual(len(schedule_ctxs), 1) + schedule_ctxs = [x for x in kernels[1].ctxs.values() if x.loc.split("/")[-1].split(":")[0] == "schedule.py"] + self.assertEqual(len(schedule_ctxs), 0) + if __name__ == "__main__": unittest.main() From 8a9195d86e70c0288ed6fdd926dd41116275d277 Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Mon, 23 Sep 2024 09:03:17 +0800 Subject: [PATCH 15/45] qcom texs refactor (#6613) * qcom texs refactor * fix * linter * qcombuf * linter --- tinygrad/runtime/ops_qcom.py | 132 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 68 deletions(-) diff --git a/tinygrad/runtime/ops_qcom.py b/tinygrad/runtime/ops_qcom.py index 0794da519a..d2df1ecaf2 100644 --- a/tinygrad/runtime/ops_qcom.py +++ b/tinygrad/runtime/ops_qcom.py @@ -1,7 +1,7 @@ from __future__ import annotations import os, ctypes, functools, mmap, struct, array, decimal, math from types import SimpleNamespace -from typing import Tuple, List, Dict, Any +from typing import Tuple, List, Any, cast from tinygrad.device import BufferOptions, HCQBuffer, HWComputeQueue, HCQProgram, HCQCompiled, HCQSignal, HCQAllocator, HCQArgsState, hcq_command from tinygrad.runtime.autogen import kgsl, adreno, libc from tinygrad.runtime.ops_gpu import CLCompiler, CLDevice @@ -9,6 +9,8 @@ from tinygrad.renderer.cstyle import QCOMRenderer from tinygrad.helpers import getenv, from_mv, mv_address, to_mv, round_up, data64_le, prod, DEBUG, fromimport if getenv("IOCTL"): import extra.qcom_gpu_driver.opencl_ioctl # noqa: F401 # pylint: disable=unused-import +BUFTYPE_BUF, BUFTYPE_TEX, BUFTYPE_IBO = 0, 1, 2 + def _qreg_exec(reg, __val=0, **kwargs): for k, v in kwargs.items(): __val |= (getattr(adreno, f'{reg[4:]}_{k.upper()}') if v else 0) if type(v) is bool else (v << getattr(adreno, f'{reg[4:]}_{k.upper()}__SHIFT')) @@ -123,39 +125,38 @@ class QCOMComputeQueue(HWComputeQueue): qreg.a6xx_sp_cs_pvt_mem_size(totalpvtmemsize=prg.pvtmem_size_total)) self.cmd(adreno.CP_LOAD_STATE6_FRAG, qreg.cp_load_state6_0(state_type=adreno.ST_CONSTANTS, state_src=adreno.SS6_INDIRECT, - state_block=adreno.SB6_CS_SHADER, num_unit=prg.kernargs_alloc_size // 4), + state_block=adreno.SB6_CS_SHADER, num_unit=1024 // 4), *data64_le(args_state.ptr)) self.cmd(adreno.CP_LOAD_STATE6_FRAG, qreg.cp_load_state6_0(state_type=adreno.ST_SHADER, state_src=adreno.SS6_INDIRECT, state_block=adreno.SB6_CS_SHADER, num_unit=round_up(prg.image_size, 128) // 128), *data64_le(prg.lib_gpu.va_addr)) - self.reg(adreno.REG_A6XX_HLSQ_CONTROL_2_REG, 0xfcfcfcfc, 0xfcfcfcfc, 0xfcfcfcfc, 0xfc, - qreg.a6xx_hlsq_cs_cntl(constlen=prg.kernargs_alloc_size // 4, enabled=True)) + self.reg(adreno.REG_A6XX_HLSQ_CONTROL_2_REG, 0xfcfcfcfc, 0xfcfcfcfc, 0xfcfcfcfc, 0xfc, qreg.a6xx_hlsq_cs_cntl(constlen=1024 // 4, enabled=True)) self.reg(adreno.REG_A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET, qreg.a6xx_sp_cs_pvt_mem_hw_stack_offset(prg.hw_stack_offset)) self.reg(adreno.REG_A6XX_SP_CS_INSTRLEN, qreg.a6xx_sp_cs_instrlen(prg.image_size // 4)) - if hasattr(args_state, 'samplers_ptr'): + if args_state.prg.samp_cnt > 0: self.cmd(adreno.CP_LOAD_STATE6_FRAG, qreg.cp_load_state6_0(state_type=adreno.ST_SHADER, state_src=adreno.SS6_INDIRECT, - state_block=adreno.SB6_CS_TEX, num_unit=args_state.samplers_cnt), - *data64_le(args_state.samplers_ptr.va_addr)) - self.reg(adreno.REG_A6XX_SP_CS_TEX_SAMP, *data64_le(args_state.samplers_ptr.va_addr)) + state_block=adreno.SB6_CS_TEX, num_unit=args_state.prg.samp_cnt), + *data64_le(args_state.ptr + args_state.prg.samp_off)) + self.reg(adreno.REG_A6XX_SP_CS_TEX_SAMP, *data64_le(args_state.ptr + args_state.prg.samp_off)) self.reg(adreno.REG_A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR, *data64_le(prg.device._border_color_base())) - if hasattr(args_state, 'descriptors_ptr'): + if args_state.prg.tex_cnt > 0: self.cmd(adreno.CP_LOAD_STATE6_FRAG, qreg.cp_load_state6_0(state_type=adreno.ST_CONSTANTS, state_src=adreno.SS6_INDIRECT, - state_block=adreno.SB6_CS_TEX, num_unit=args_state.descriptors_cnt), - *data64_le(args_state.descriptors_ptr.va_addr)) - self.reg(adreno.REG_A6XX_SP_CS_TEX_CONST, *data64_le(args_state.descriptors_ptr.va_addr)) + state_block=adreno.SB6_CS_TEX, num_unit=args_state.prg.tex_cnt), + *data64_le(args_state.ptr + args_state.prg.tex_off)) + self.reg(adreno.REG_A6XX_SP_CS_TEX_CONST, *data64_le(args_state.ptr + args_state.prg.tex_off)) - if hasattr(args_state, 'ibos_ptr'): + if args_state.prg.ibo_cnt > 0: self.cmd(adreno.CP_LOAD_STATE6_FRAG, qreg.cp_load_state6_0(state_type=adreno.ST6_IBO, state_src=adreno.SS6_INDIRECT, - state_block=adreno.SB6_CS_SHADER, num_unit=args_state.ibos_cnt), - *data64_le(args_state.ibos_ptr.va_addr)) - self.reg(adreno.REG_A6XX_SP_CS_IBO, *data64_le(args_state.ibos_ptr.va_addr)) + state_block=adreno.SB6_CS_SHADER, num_unit=args_state.prg.ibo_cnt), + *data64_le(args_state.ptr + args_state.prg.ibo_off)) + self.reg(adreno.REG_A6XX_SP_CS_IBO, *data64_le(args_state.ptr + args_state.prg.ibo_off)) self.reg(adreno.REG_A6XX_SP_CS_CONFIG, - qreg.a6xx_sp_cs_config(enabled=True, nsamp=args_state.samplers_cnt, ntex=args_state.descriptors_cnt, nibo=args_state.ibos_cnt)) + qreg.a6xx_sp_cs_config(enabled=True, nsamp=args_state.prg.samp_cnt, ntex=args_state.prg.tex_cnt, nibo=args_state.prg.ibo_cnt)) self.cmd(adreno.CP_RUN_OPENCL, 0) self._cache_flush(write_back=True, invalidate=False, sync=False, memsync=False) @@ -175,46 +176,27 @@ class QCOMComputeQueue(HWComputeQueue): class QCOMArgsState(HCQArgsState): def __init__(self, ptr:int, prg:QCOMProgram, bufs:Tuple[HCQBuffer, ...], vals:Tuple[int, ...]=()): super().__init__(ptr, prg, bufs, vals=vals) - self.ibos_cnt, self.descriptors_cnt, self.samplers_cnt = 0, 0, 0 - ctypes.memset(ptr, 0, 1024) + ctypes.memset(self.ptr, 0, 1024) + + if len(bufs) + len(vals) != len(prg.buf_info): raise RuntimeError(f'incorrect args size given={len(bufs)+len(vals)} != want={len(prg.buf_info)}') + + self.buf_info, self.args_info = prg.buf_info[:len(bufs)], prg.buf_info[len(bufs):] - if len(bufs) + len(vals) != len(prg.buffs_info): raise RuntimeError(f'incorrect args size given={len(bufs)} != want={len(prg.buffs_info)}') - self.boffs, self.aoffs = prg.buffs_info[:len(bufs)], prg.buffs_info[len(bufs):] - for i, v in enumerate(vals): self.update_var(i, v) for cnst_val, cnst_off, cnst_sz in prg.consts_info: ctypes.memmove(self.ptr + cnst_off, (ctypes.c_int8 * cnst_sz).from_buffer_copy(cnst_val.to_bytes(cnst_sz, byteorder='little')), cnst_sz) - samplers: List[Any] = [] - descriptors: List[Any] = [] - ibos: List[Any] = [] - self.i2descr: Dict[int, int] = {} - self.i2ibo: Dict[int, int] = {} - for i, b in enumerate(bufs): - if not hasattr(b, 'samplers') and not hasattr(b, 'descriptor') and not hasattr(b, 'ibo'): self.update_buffer(i, b) - elif self.boffs[i][1]: ibos, self.i2ibo = [*ibos, *getattr(b, 'ibo')], {**self.i2ibo, i: len(ibos)} - else: - samplers, descriptors = [*samplers, *getattr(b, 'samplers')], [*descriptors, *getattr(b, 'descriptor')] - self.i2descr[i] = len(descriptors) - 1 - - def alloc_tex_gpu(data, chunk_size) -> Tuple[HCQBuffer, int]: - tex_gpu = self.prg.device.allocator.alloc(len(data) * 4, BufferOptions(nolru=True, cpu_access=True)) - to_mv(tex_gpu.va_addr, len(data) * 4).cast('I')[:] = array.array('I', data) - return tex_gpu, len(data) // chunk_size - - if len(samplers): self.samplers_ptr, self.samplers_cnt = alloc_tex_gpu(samplers, 4) - if len(descriptors): self.descriptors_ptr, self.descriptors_cnt = alloc_tex_gpu(descriptors, 16) - if len(ibos): self.ibos_ptr, self.ibos_cnt = alloc_tex_gpu(ibos, 16) - - def __del__(self): - for ptr in ('samplers_ptr', 'descriptors_ptr', 'ibos_ptr'): - if hasattr(self, ptr): self.prg.device.allocator.free((x:=getattr(self, ptr)), x.size, BufferOptions(nolru=True, cpu_access=True)) + if prg.samp_cnt > 0: to_mv(self.ptr + prg.samp_off, len(prg.samplers) * 4).cast('I')[:] = array.array('I', prg.samplers) + for i, b in enumerate(cast(List[QCOMBuffer], bufs)): + if prg.buf_info[i].type is BUFTYPE_TEX: to_mv(self.ptr + prg.buf_info[i].offset, len(b.desc) * 4).cast('I')[:] = array.array('I', b.desc) + elif prg.buf_info[i].type is BUFTYPE_IBO: to_mv(self.ptr + prg.buf_info[i].offset, len(b.ibo) * 4).cast('I')[:] = array.array('I', b.ibo) + else: self.update_buffer(i, b) + for i, v in enumerate(vals): self.update_var(i, v) def update_buffer(self, index:int, buf:HCQBuffer): - if (descr:=self.i2descr.get(index, None)) is not None: to_mv(self.descriptors_ptr.va_addr + 16 * descr + 4 * 4, 8).cast('Q')[0] = buf.va_addr - elif (ibo:=self.i2ibo.get(index, None)) is not None: to_mv(self.ibos_ptr.va_addr + 16 * ibo + 4 * 4, 8).cast('Q')[0] = buf.va_addr - else: to_mv(self.ptr + self.boffs[index][0], 8).cast('Q')[0] = buf.va_addr + if self.buf_info[index].type is not BUFTYPE_BUF: to_mv(self.ptr+self.buf_info[index].offset+0x10, 8).cast('Q')[0] = buf.va_addr + else: to_mv(self.ptr + self.buf_info[index].offset, 8).cast('Q')[0] = buf.va_addr - def update_var(self, index:int, val:int): to_mv(self.ptr + self.aoffs[index][0], 8).cast('Q')[0] = val + def update_var(self, index:int, val:int): to_mv(self.ptr + self.args_info[index].offset, 8).cast('Q')[0] = val class QCOMProgram(HCQProgram): def __init__(self, device: QCOMDevice, name: str, lib: bytes): @@ -232,7 +214,7 @@ class QCOMProgram(HCQProgram): self.max_threads = min(1024, ((384 * 32) // (max(1, (self.fregs + round_up(self.hregs, 2) // 2)) * 128)) * 128) device._ensure_stack_size(self.hw_stack_offset * 4) - super().__init__(QCOMArgsState, self.device, self.name, kernargs_alloc_size=1024) + super().__init__(QCOMArgsState, self.device, self.name, kernargs_alloc_size=2048 + (self.tex_cnt + self.ibo_cnt) * 0x40 + self.samp_cnt * 0x10) def __call__(self, *bufs, global_size:Tuple[int,int,int]=(1,1,1), local_size:Tuple[int,int,int]=(1,1,1), vals:Tuple[int, ...]=(), wait=False): if self.max_threads < prod(local_size): raise RuntimeError("Too many resources requsted for launch") @@ -253,19 +235,34 @@ class QCOMProgram(HCQProgram): self.pvtmem, self.shmem = _read_lib(image_desc_off+0xc8), _read_lib(image_desc_off+0xd8) # Fill up constants and buffers info - self.buffs_info, self.consts_info = [], [] + self.buf_info, self.consts_info = [], [] - samplers_count = _read_lib(image_desc_off + 0xdc) - bdoff = round_up(image_desc_off + 0x158 + len(self.name), 4) + 8 * samplers_count - while (bdoff + 16 <= len(self.lib)): - length, _, _, offset_words = struct.unpack("I" * 4, self.lib[bdoff:bdoff+16]) + # Collect sampler info. + self.samp_cnt = _read_lib(image_desc_off + 0xdc) + assert self.samp_cnt <= 1, "Up to one sampler supported" + if self.samp_cnt: + self.samplers = [qreg.a6xx_tex_samp_0(wrap_s=(clamp_mode:=adreno.A6XX_TEX_CLAMP_TO_BORDER), wrap_t=clamp_mode, wrap_r=clamp_mode), + qreg.a6xx_tex_samp_1(unnorm_coords=True, cubemapseamlessfiltoff=True), 0, 0] + + # Collect kernel arguments (buffers) info. + bdoff = round_up(image_desc_off + 0x158 + len(self.name), 4) + 8 * self.samp_cnt + while bdoff + 32 <= len(self.lib): + length, _, _, offset_words, _, _, _, typ = struct.unpack("IIIIIIII", self.lib[bdoff:bdoff+32]) if length == 0: break - self.buffs_info.append((offset_words * 4, struct.unpack("I", self.lib[bdoff+0x3c:bdoff+0x40])[0] == 0x0)) + self.buf_info.append(SimpleNamespace(offset=offset_words * 4, type=typ)) bdoff += length + # Setting correct offsets to textures/ibos. + self.tex_cnt, self.ibo_cnt = sum(x.type is BUFTYPE_TEX for x in self.buf_info), sum(x.type is BUFTYPE_IBO for x in self.buf_info) + self.samp_off, self.ibo_off, self.tex_off = 2048, 2048 + 0x10 * self.samp_cnt, 2048 + 0x10 * self.samp_cnt + 0x40 * self.ibo_cnt + cur_ibo_off, cur_tex_off = self.ibo_off, self.tex_off + for x in self.buf_info: + if x.type is BUFTYPE_IBO: x.offset, cur_ibo_off = cur_ibo_off, cur_ibo_off + 0x40 + elif x.type is BUFTYPE_TEX: x.offset, cur_tex_off = cur_tex_off, cur_tex_off + 0x40 + if _read_lib(0xb0) != 0: # check if we have constants. cdoff = _read_lib(0xac) - while (cdoff + 40 <= image_offset): + while cdoff + 40 <= image_offset: cnst, offset_words, _, is32 = struct.unpack("I", self.lib[cdoff:cdoff+4])[0], *struct.unpack("III", self.lib[cdoff+16:cdoff+28]) self.consts_info.append((cnst, offset_words * (sz_bytes:=(2 << is32)), sz_bytes)) cdoff += 40 @@ -277,6 +274,9 @@ class QCOMProgram(HCQProgram): def __del__(self): if hasattr(self, 'lib_gpu'): self.device.allocator.free(self.lib_gpu, self.lib_gpu.size, options=BufferOptions(cpu_access=True, nolru=True)) +class QCOMBuffer(HCQBuffer): + def __init__(self, va_addr:int, size:int, desc=None, ibo=None): self.va_addr, self.size, self.desc, self.ibo = va_addr, size, desc, ibo + class QCOMAllocator(HCQAllocator): def _alloc(self, size:int, options:BufferOptions) -> HCQBuffer: if options.image is not None: @@ -291,18 +291,14 @@ class QCOMAllocator(HCQAllocator): texture = self.device._gpu_alloc(pitch * round_up(imgh, 16), kgsl.KGSL_MEMTYPE_TEXTURE, map_to_cpu=True) # Extend HCQBuffer with texture-related info. - texture.samplers, texture.descriptor, texture.ibo = [0] * 4, [0] * 16, [0] * 16 - - # Compiled sampler (always the same in tinygrad). - texture.samplers[0] = qreg.a6xx_tex_samp_0(wrap_s=(clamp_mode:=adreno.A6XX_TEX_CLAMP_TO_BORDER), wrap_t=clamp_mode, wrap_r=clamp_mode) - texture.samplers[1] = qreg.a6xx_tex_samp_1(unnorm_coords=True, cubemapseamlessfiltoff=True) + texture.desc, texture.ibo = [0] * 16, [0] * 16 tex_fmt = adreno.FMT6_32_32_32_32_FLOAT if options.image.itemsize == 4 else adreno.FMT6_16_16_16_16_FLOAT - texture.descriptor[0] = qreg.a6xx_tex_const_0(swiz_x=0, swiz_y=1, swiz_z=2, swiz_w=3, fmt=tex_fmt) - texture.descriptor[1] = qreg.a6xx_tex_const_1(width=imgw, height=imgh) - texture.descriptor[2] = qreg.a6xx_tex_const_2(type=adreno.A6XX_TEX_2D, pitch=pitch, pitchalign=pitchalign-6) - texture.descriptor[4:7] = [*data64_le(texture.va_addr), qreg.a6xx_tex_const_6(plane_pitch=0x400000)] - texture.ibo = [texture.descriptor[0] & (~0xffff), *texture.descriptor[1:len(texture.descriptor)]] + texture.desc[0] = qreg.a6xx_tex_const_0(swiz_x=0, swiz_y=1, swiz_z=2, swiz_w=3, fmt=tex_fmt) + texture.desc[1] = qreg.a6xx_tex_const_1(width=imgw, height=imgh) + texture.desc[2] = qreg.a6xx_tex_const_2(type=adreno.A6XX_TEX_2D, pitch=pitch, pitchalign=pitchalign-6) + texture.desc[4:7] = [*data64_le(texture.va_addr), qreg.a6xx_tex_const_6(plane_pitch=0x400000)] + texture.ibo = [texture.desc[0] & (~0xffff), *texture.desc[1:len(texture.desc)]] return texture From 99ed9fb75e56889ec5a450241cf5c37d26946548 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Mon, 23 Sep 2024 09:40:09 +0800 Subject: [PATCH 16/45] simpler verify_ast [run_process_replay] (#6654) --- tinygrad/codegen/kernel.py | 18 ++++++++---------- tinygrad/ops.py | 4 +--- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index 9f38b31771..9b4f06f2fe 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -794,17 +794,15 @@ def _assert_valid_uop(uop:UOp, st:ShapeTracker, sts:Dict[UOp, ShapeTracker]) -> for x in src: _assert_valid_uop(x, st, sts) # only reduceuop is allowed to change shape, limited to turning n to 1 if op in {UOps.REDUCE_AXIS, UOps.WMMA}: st = ShapeTracker.from_shape(sts[src[0]].reduce(arg[-1])) - elif op is UOps.SWIZZLE: st = arg + # movementops are pushed to the edges with SHAPETRACKER and SWIZZLE + elif op in {UOps.SHAPETRACKER, UOps.SWIZZLE}: st = arg + # everything else inherits shape else: - assert op in {UOps.SHAPETRACKER, UOps.SWIZZLE, UOps.ALU, UOps.CAST, UOps.BITCAST, UOps.CONTRACT, UOps.EXPAND, *BUFFER_UOPS}, \ - f"bad UOp in intermediate uops {uop}" - # movementops are pushed to the edges with SHAPETRACKER - # elementwise inherits shape - st = arg if op is UOps.SHAPETRACKER else sts[src[uop.st_loc if op in BUFFER_UOPS else 0]] - for x in src: - if x.has_st and sts[x].shape != st.shape: - if prod(sts[x].shape) == prod(st.shape): raise AssertionError(f"found implicit reshape {x.op} {op} {sts[x].shape} != {st.shape}") - raise AssertionError(f"found implicit expand {x.op} {sts[x].shape} != {op} {st.shape} {prod(sts[x].shape)} != {prod(st.shape)}") + assert op in {UOps.ALU, UOps.CAST, UOps.BITCAST, UOps.CONTRACT, UOps.EXPAND, *BUFFER_UOPS}, f"bad UOp in intermediate uops {uop}" + st = (src_sts:=[sts[x] for x in src if x.has_st])[0] + if not all_same(shapes:=[x.shape for x in src_sts]): + if all_same(sizes:=[prod(x) for x in shapes]): raise AssertionError(f"found implicit reshape {shapes}") + raise AssertionError(f"found implicit expand {sizes}") sts[uop] = st def verify_ast(ast:UOp) -> Dict[UOp, ShapeTracker]: diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 7ac33ab36c..308e6dd680 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -170,11 +170,9 @@ class UOp(MathTrait): return f'({", ".join(map(str, self.arg))})' if self.op is UOps.REDUCE_AXIS else repr(self.arg) if isinstance(self.arg, Variable) else self.arg # *** uop syntactic sugar @property - def st_loc(self) -> int: return 0 if self.op is UOps.VALID else 1 - @property def st_arg(self) -> ShapeTracker: assert self.op in BUFFER_UOPS, f"st_arg called on {self.op}" - ret = self.src[self.st_loc] + ret = self.src[0 if self.op is UOps.VALID else 1] assert ret.op is UOps.SHAPETRACKER, f"st_arg trying to return {ret}" return ret.arg def sink(self, *srcs:UOp): return UOp(UOps.SINK, dtypes.void, (self,)+srcs) From 90c1ccc4029d3468ab0e5a9ce36ccc6c56e73660 Mon Sep 17 00:00:00 2001 From: chenyu Date: Sun, 22 Sep 2024 21:46:39 -0400 Subject: [PATCH 17/45] simpler drop valid check in simplify_valid_image_load (#6653) * simpler drop valid check in simplify_valid_image_load * update tests --- test/unit/test_image_valid.py | 33 +++++++++++++++++++-------------- tinygrad/codegen/uopgraph.py | 23 ++++++++++------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/test/unit/test_image_valid.py b/test/unit/test_image_valid.py index e9e41c604c..ebc05ae0e0 100644 --- a/test/unit/test_image_valid.py +++ b/test/unit/test_image_valid.py @@ -20,6 +20,8 @@ def render(image_shape, valid:UOp, idx:UOp) -> str: def Special(expr, nmax): return UOp(UOps.SPECIAL, dtypes.int, (), (expr, nmax)) def Variable(expr, nmin, nmax): return UOp.define_var(expr, dtypes.int, nmin, nmax) +def Range(n, nmax): + return UOp(UOps.RANGE, dtypes.int, arg=(n, True), src=(UOp.const(dtypes.int, 0), UOp.const(dtypes.int, nmax),)) class TestHelpers(unittest.TestCase): def test_is_increasing(self): @@ -97,46 +99,49 @@ class TestValidSimplification(unittest.TestCase): # empty self.assertRaises(IndexError, lambda: render(shape, (gidx0).lt(8) & (gidx0).lt(8).ne(True), idx)) - @unittest.expectedFailure # TODO: FIXME def test_openpilot_conv1(self): # first conv in openpilot # kernel in tinygrad ae5d1407ee844a97a52ad3756835d38e7e2b9e1b https://gist.github.com/chenyuxyz/39c2d4e9a076b46731c67d345ff066b6 idx1 = Special("idx1", 32) idx2 = Special("idx2", 64) - ridx0 = Variable("ridx0", 0, 5) - ridx1 = Variable("ridx1", 0, 2) - ridx2 = Variable("ridx2", 0, 2) + # ridx0 = Variable("ridx0", 0, 5) + # ridx1 = Variable("ridx1", 0, 2) + # ridx2 = Variable("ridx2", 0, 2) + ridx0 = Range(0, 6) + ridx1 = Range(1, 3) + ridx2 = Range(2, 3) alu1 = ((idx2*2)+ridx1) alu4 = ((idx1*48)+(ridx2*6)+ridx0) - valid = (((idx2*(-2))+(ridx1*(-1))).lt(0))&(((idx1*(-8))+(ridx2*(-1))).lt(0)) + valid = (((idx2*2)+(ridx1)).lt(1).ne(True))&(((idx1*8)+(ridx2)).lt(1).ne(True)) shape = (128, 1536, 4) idx = UOp(UOps.VECTORIZE, dtypes.int.vec(2), ((alu4+1530)%1536, alu1+((idx1+((ridx2+7)//8)+31)//32)+(-2))) - # (((((idx2*(-2))+(ridx1*(-1)))<0)&(((idx1*(-8))+(ridx2*(-1)))<0))?read_imagef(data0, smp, - # (int2)((((idx1*48)+(ridx2*6)+ridx0+1530)%1536),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f)) + # TODO: simplify further self.assertEqual(render(shape, valid, idx), - "read_imagef(data1, smp, (int2)((ridx0+(idx1*48)+(ridx2*6)+(-6)),((idx2*2)+ridx1+(-1))))") + "(((((idx1*8)+ridx2)<1)!=1)?read_imagef(data0, smp, (int2)((((idx1*48)+(ridx2*6)+ridx0+1530)%1536),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 - @unittest.expectedFailure # TODO: FIXME def test_openpilot_conv2(self): # conv in test/external/external_test_valid_remove.py idx1 = Special("idx1", 32) idx2 = Special("idx2", 64) - ridx0 = Variable("ridx0", 0, 2) - ridx1 = Variable("ridx1", 0, 2) - ridx2 = Variable("ridx2", 0, 2) + # ridx0 = Variable("ridx0", 0, 2) + # ridx1 = Variable("ridx1", 0, 2) + # ridx2 = Variable("ridx2", 0, 2) + ridx0 = Range(0, 3) + ridx1 = Range(1, 3) + ridx2 = Range(2, 3) alu1 = ((idx2*2)+ridx1) alu3 = ((idx1*24)+(ridx2*3)+ridx0) - valid = (((idx2*(-2))+(ridx1*(-1))).lt(0))&(((idx1*(-8))+(ridx2*(-1))).lt(0)) + valid = (((idx2*2)+ridx1).lt(1).ne(True))&(((idx1*8)+ridx2).lt(1).ne(True)) shape = (128, 768, 4) idx = UOp(UOps.VECTORIZE, dtypes.int.vec(2), ((alu3+765)%768, alu1+((idx1+((ridx2+7)//8)+31)//32)+(-2))) self.assertEqual(render(shape, valid, idx), - "read_imagef(data1, smp, (int2)((ridx0+(idx1*48)+(ridx2*6)+(-3)),((idx2*2)+ridx1+(-1))))") + "(((((idx1*8)+ridx2)<1)!=1)?read_imagef(data0, smp, (int2)((((idx1*24)+(ridx2*3)+ridx0+765)%768),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 def test_simplify1(self): # idx has the form (A % m, A // m + k) and valid has (c0 < A) and (A < c1) diff --git a/tinygrad/codegen/uopgraph.py b/tinygrad/codegen/uopgraph.py index d05c300427..3c1943e449 100644 --- a/tinygrad/codegen/uopgraph.py +++ b/tinygrad/codegen/uopgraph.py @@ -196,6 +196,7 @@ def simplify_valid_image_load(load:UOp, buf:UOp): expr, is_upper, c = parse_valid(stmt) bounds[expr][int(is_upper)] = c + # simplify idx given that valid is True for uop,v in bounds.items(): # some expr has lower bound > upper bound -> valid is an empty set if v[0] is not None and v[1] is not None and v[0] > v[1]: @@ -204,21 +205,17 @@ def simplify_valid_image_load(load:UOp, buf:UOp): newidx = replace_uop(graph_rewrite(replace_uop(idx, uop, new), constant_folder), new, uop) if newidx.key != idx.key: idx = newidx + # can drop valid if idx is out of bound when valid is False drop_stmt = [] for stmt in _get_chain(valid, BinaryOps.AND): - X, is_upper, c = parse_valid(stmt) - if is_upper: - # X <= c, check if it's out of bound when X = c+1 - for i,b in zip(idx.src, (buf_dtype.shape[1], buf_dtype.shape[0])): - if is_increasing(i) and graph_rewrite(replace_uop(i, X, X.const_like(c+1)), constant_folder).vmin >= b: - drop_stmt.append(stmt) - break - else: - # X >= c, check if it's negative when X = c-1 - for i in idx.src: - if is_increasing(i) and graph_rewrite(replace_uop(i, X, X.const_like(c-1)), constant_folder).vmax < 0: - drop_stmt.append(stmt) - break + X, is_upper_bound, c = parse_valid(stmt) + # if X <= c, check if it's out of bound when X = c+1 + # if X >= c, check if it's out of bound when X = c-1 + test_value = c + 1 if is_upper_bound else c - 1 + for i,b in zip(idx.src, (buf_dtype.shape[1], buf_dtype.shape[0])): + if is_increasing(i): + rw = graph_rewrite(replace_uop(i, X, X.const_like(test_value)), constant_folder) + if rw.vmin >= b or rw.vmax < 0: drop_stmt.append(stmt) if drop_stmt or idx.key != start_idx.key: new_valid = functools.reduce(operator.and_, ss) if (ss:=[s for s in _get_chain(valid, BinaryOps.AND) if s not in drop_stmt]) else None From e945fa9c5cd679203da47e04dd34798cf142ba98 Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:29:17 +0800 Subject: [PATCH 18/45] put local on the PtrDtype [run_process_replay] (#6656) * put local on the PtrDtype [run_process_replay] * those are local too --- test/test_ops.py | 2 ++ test/test_uop_graph.py | 6 +++--- test/test_uops.py | 4 ++-- tinygrad/codegen/kernel.py | 4 ++-- tinygrad/dtype.py | 7 +++++-- tinygrad/ops.py | 4 ++-- tinygrad/renderer/cstyle.py | 13 +++++++------ 7 files changed, 23 insertions(+), 17 deletions(-) diff --git a/test/test_ops.py b/test/test_ops.py index 742d40e058..d9713781f3 100644 --- a/test/test_ops.py +++ b/test/test_ops.py @@ -889,6 +889,8 @@ class TestOps(unittest.TestCase): def test_sum_simple(self): helper_test_op(None, lambda x: x.sum(), vals=[[1.,1.]]) + # NOTE: simple test for locals + # FORWARD_ONLY=1 DEBUG=4 python3 test/test_ops.py TestOps.test_sum_full def test_sum_full(self): helper_test_op([(16384)], lambda x: x.sum()) def test_sum_relu(self): diff --git a/test/test_uop_graph.py b/test/test_uop_graph.py index fd72d24f1e..51570b21a8 100644 --- a/test/test_uop_graph.py +++ b/test/test_uop_graph.py @@ -385,7 +385,7 @@ class TestUOpGraph(unittest.TestCase): def test_fold_gated_load_local(self): glbl0 = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.int), (), 0) - smem = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.int), (), ("temp", 1)) + smem = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.int, local=True), (), ("temp", 1)) lidx = UOp(UOps.SPECIAL, dtypes.int, (), ("lidx0", 16)) st = UOp(UOps.STORE, dtypes.void, (smem, lidx, UOp.load(glbl0, lidx, dtype=dtypes.int))) barrier = UOp(UOps.BARRIER, dtypes.void, (st, )) @@ -650,7 +650,7 @@ def gate_rewrite(sink): return graph_rewrite(sink, constant_folder + expander + class TestIFUOps(unittest.TestCase): def test_create_ifs(self): gbuf = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float), (), 0) - sbuf = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.float), (), ("smem", 4)) + sbuf = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.float, local=True), (), ("smem", 4)) valid = UOp(UOps.SPECIAL, dtypes.int, (), ("gidx0", 10)).lt(5) lidx = UOp(UOps.SPECIAL, dtypes.int, (), ("lidx0", 4)) gate = valid&(lidx.ne(2)) @@ -669,7 +669,7 @@ class TestIFUOps(unittest.TestCase): def test_expand_ifs_one_gate(self): gbuf = UOp(UOps.DEFINE_GLOBAL, PtrDType(dtypes.float), (), 0) - sbuf = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.float), (), ("smem", 16)) + sbuf = UOp(UOps.DEFINE_LOCAL, PtrDType(dtypes.float, local=True), (), ("smem", 16)) valid = UOp(UOps.SPECIAL, dtypes.int, (), ("gidx0", 4)).lt(1) lidx = UOp(UOps.SPECIAL, dtypes.int, (), ("lidx0", 16)) gate = valid&(lidx.ne(2)) diff --git a/test/test_uops.py b/test/test_uops.py index c3c547ba8e..b191fac730 100644 --- a/test/test_uops.py +++ b/test/test_uops.py @@ -305,7 +305,7 @@ class TestLocalAccess(unittest.TestCase): @unittest.skipUnless(Device[Device.DEFAULT].renderer.has_shared, "test requires shared memory") def test_local_basic(self): uops = [] - smem = uop(uops, UOps.DEFINE_LOCAL, PtrDType(dtypes.float32), (), ('smem', 16)) + smem = uop(uops, UOps.DEFINE_LOCAL, PtrDType(dtypes.float32, local=True), (), ('smem', 16)) st = uop(uops, UOps.STORE, dtypes.void, (smem, uop(uops, UOps.CONST, dtypes.int32, (), 0), uop(uops, UOps.CONST, dtypes.float32, (), 42.0))) barr = uop(uops, UOps.BARRIER, dtypes.void, (st,)) sres = uop(uops, UOps.LOAD, dtypes.float32, (smem, uop(uops, UOps.CONST, dtypes.int32, (), 0), barr)) @@ -314,7 +314,7 @@ class TestLocalAccess(unittest.TestCase): @unittest.skipUnless(Device[Device.DEFAULT].renderer.has_shared, "test requires shared memory") def test_local_indirect(self): uops = [] - smem = uop(uops, UOps.DEFINE_LOCAL, PtrDType(dtypes.int32), (), ('smem', 16)) + smem = uop(uops, UOps.DEFINE_LOCAL, PtrDType(dtypes.int32, local=True), (), ('smem', 16)) st1 = uop(uops, UOps.STORE, dtypes.void, (smem, uop(uops, UOps.CONST, dtypes.int32, (), 1), uop(uops, UOps.CONST, dtypes.int32, (), 2))) st2 = uop(uops, UOps.STORE, dtypes.void, (smem, uop(uops, UOps.CONST, dtypes.int32, (), 2), uop(uops, UOps.CONST, dtypes.int32, (), 42))) barr = uop(uops, UOps.BARRIER, dtypes.void, (st1,st2)) diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index 9b4f06f2fe..1325556bc9 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -702,7 +702,7 @@ class Kernel: st_load = [self.sts[self.bufs.index(op)].real_strides() for op in rsrc.parents if op.op is UOps.LOAD] local_shape = tuple(s if max(cast(int, x[i]) for x in st_load) != 0 else 1 for i,s in enumerate(ex_shape)) st_uop = ShapeTracker.from_shape(local_shape).expand(ex_shape).to_uop() - membuf = UOp(UOps.DEFINE_LOCAL, PtrDType(tc.dtype_in), (), (f"temp{-(-1-i)}", st_uop.arg.real_size())) + membuf = UOp(UOps.DEFINE_LOCAL, PtrDType(tc.dtype_in, True), (), (f"temp{-(-1-i)}", st_uop.arg.real_size())) local_store = fixup_ast(UOp(UOps.STORE, tc.dtype_in, (membuf, st_uop, src)), fix_st_fxn) srcs.append(UOp(UOps.LOAD, tc.dtype_in, (membuf, st_uop, local_store))) else: @@ -732,7 +732,7 @@ class Kernel: for i in range(self.first_reduce, self.first_reduce+self.group_for_reduces)]) + \ (1,) * (self.shape_len - self.upcasted - self.group_for_reduces - self.first_reduce) + tuple([x[0] for x in self.upcasted_axis(0)]) st_uop = ShapeTracker.from_shape(local_shape).to_uop() - local_buffer = UOp(UOps.DEFINE_LOCAL, PtrDType(op.dtype), (), (f"temp{self.reduceops.index(op)+1}", st_uop.arg.real_size())) + local_buffer = UOp(UOps.DEFINE_LOCAL, PtrDType(op.dtype, True), (), (f"temp{self.reduceops.index(op)+1}", st_uop.arg.real_size())) local_load = UOp(UOps.LOAD, op.dtype, (local_buffer, st_uop, UOp.store(local_buffer, st_uop, start))) grouped_reduce = UOp(UOps.REDUCE_AXIS, op.dtype, (local_load,), arg=(op.arg[0], second_axis)) if op is self.reduceops[-1]: return grouped_reduce diff --git a/tinygrad/dtype.py b/tinygrad/dtype.py index ca92e6adee..3440b6c7a4 100644 --- a/tinygrad/dtype.py +++ b/tinygrad/dtype.py @@ -25,17 +25,20 @@ class DType: class ImageDType(DType): shape: Tuple[int, ...] # arbitrary arg for the dtype, used in image for the shape base: DType + local: bool = False # images are never local def scalar(self): return self.base def vec(self, sz:int): return self.base.vec(sz) def __repr__(self): return f"dtypes.{self.name}({self.shape})" # @dataclass(frozen=True, init=False, repr=False, eq=False) class PtrDType(DType): - def __init__(self, dt:DType): super().__init__(dt.priority, dt.itemsize, dt.name, dt.fmt, dt.count) + def __init__(self, dt:DType, local=False): + self.base, self.local = dt, local + super().__init__(dt.priority, dt.itemsize, dt.name, dt.fmt, dt.count) def __hash__(self): return super().__hash__() def __eq__(self, dt): return self.priority==dt.priority and self.itemsize==dt.itemsize and self.name==dt.name and self.count==dt.count def __ne__(self, dt): return not (self == dt) - def __repr__(self): return f"PtrDType({super().__repr__()})" + def __repr__(self): return f"PtrDType({super().__repr__()}, local=True)" if self.local else f"PtrDType({super().__repr__()})" class dtypes: @staticmethod diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 308e6dd680..9e2d6cdfd1 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -572,8 +572,8 @@ def graph_rewrite(sink:UOp, pm:PatternMatcher, ctx=None) -> UOp: # this is the matcher for the final rendered UOps # matcher functions returns True or False (or None to not match) spec = PatternMatcher([(x, functools.partial(lambda fxn,**kw: UOp.const(dtypes.bool, r) if (r:=fxn(**kw)) is not None else None, y)) for (x,y) in [ - (UPat(UOps.DEFINE_GLOBAL, name="x"), lambda x: isinstance(x.dtype, (PtrDType, ImageDType))), - (UPat(UOps.DEFINE_LOCAL, name="x"), lambda x: isinstance(x.dtype, PtrDType)), + (UPat(UOps.DEFINE_GLOBAL, name="x"), lambda x: isinstance(x.dtype, (PtrDType, ImageDType)) and not x.dtype.local), + (UPat(UOps.DEFINE_LOCAL, name="x"), lambda x: isinstance(x.dtype, PtrDType) and x.dtype.local), (UPat(UOps.DEFINE_ACC, src=(UPat(UOps.CONST, name="c"),), name="x", allow_any_len=True), lambda x,c: all(y.op is UOps.RANGE for y in x.src[1:]) and c.dtype == x.dtype), (UPat(UOps.DEFINE_VAR, src=(), name="x"), lambda x: isinstance(x.arg[1], int) and isinstance(x.arg[2], int)), diff --git a/tinygrad/renderer/cstyle.py b/tinygrad/renderer/cstyle.py index ddf3d6643c..f746d032a0 100644 --- a/tinygrad/renderer/cstyle.py +++ b/tinygrad/renderer/cstyle.py @@ -56,14 +56,14 @@ class CStyleLanguage(Renderer): return (self.render_cast(val, dtype) if dtype not in [dtypes.float, dtypes.int, dtypes.bool] else val) # returns a str expression of the loaded value with the output type - def render_load(self, output_dtype, buf_name, buf_dtype, idx, local=False) -> str: + def render_load(self, output_dtype, buf_name, buf_dtype, idx) -> str: if isinstance(buf_dtype, ImageDType): assert output_dtype == dtypes.float.vec(4), f"images must be float4, getting {output_dtype}" return f"read_imagef({buf_name}, smp, {idx})" if self.uses_vload and buf_dtype.scalar() == dtypes.float16 and output_dtype.scalar() != dtypes.float16: return f"vload_half{'' if output_dtype.count == 1 else str(output_dtype.count)}(0, {buf_name}+{idx})" if output_dtype.count > 1: - return f"*(({self.smem_prefix if local and self.smem_prefix_for_cast else self.buffer_prefix}{self.render_dtype(output_dtype)}*)({buf_name}+{idx}))" # noqa: E501 + return f"*(({self.smem_prefix if buf_dtype.local and self.smem_prefix_for_cast else self.buffer_prefix}{self.render_dtype(output_dtype)}*)({buf_name}+{idx}))" # noqa: E501 return f"*({buf_name}+{idx})" if self.uses_ptr_arithmetic else f"{buf_name}[{idx}]" def get_kernel_modifier(self, uops:List[UOp]) -> str: return "" @@ -78,14 +78,14 @@ class CStyleLanguage(Renderer): return prg if prefix is None else "\n".join(prefix)+f"\n{prg}" # returns a str statement that does the store - def render_store(self, buf_name:str, buf_dtype:DType, var_name:str, var_dtype:DType, idx:str, local=False) -> str: + def render_store(self, buf_name:str, buf_dtype:Union[ImageDType, PtrDType], var_name:str, var_dtype:DType, idx:str) -> str: if isinstance(buf_dtype, ImageDType): assert var_dtype == dtypes.float.vec(4), f"images must be float4, getting {var_dtype}" return f"write_imagef({buf_name}, {idx}, {var_name});" if self.uses_vload and buf_dtype.scalar() == dtypes.float16 and var_dtype.scalar() != dtypes.float16: return f"vstore_half{'' if var_dtype.count == 1 else str(var_dtype.count)}({var_name}, 0, {buf_name}+{idx});" if var_dtype.count > 1: - prefix = self.smem_prefix if local and self.smem_prefix_for_cast else self.buffer_prefix + prefix = self.smem_prefix if buf_dtype.local and self.smem_prefix_for_cast else self.buffer_prefix return f"*(({prefix}{self.render_dtype(var_dtype)}*)({buf_name}+{idx})) = {var_name};" return f"*({buf_name}+{idx}) = {var_name};" if self.uses_ptr_arithmetic else f"{buf_name}[{idx}] = {var_name};" @@ -124,8 +124,9 @@ class CStyleLanguage(Renderer): kk("}") elif uop is UOps.STORE: # mark DEFINE_GLOBAL buf as writable + assert isinstance(src[0].dtype, (ImageDType, PtrDType)) if src[0].op is UOps.DEFINE_GLOBAL: bufs[src[0]] = (bufs[src[0]][0], (bufs[src[0]][1][0], True)) - rendered_store = self.render_store(r[src[0]], src[0].dtype, r[src[2]], src[2].dtype, strip_parens(r[src[1]]), src[0].op is UOps.DEFINE_LOCAL) + rendered_store = self.render_store(r[src[0]], src[0].dtype, r[src[2]], src[2].dtype, strip_parens(r[src[1]])) kk(f"if ({r[src[3]]}) {{ {rendered_store} }}" if len(src) > 3 and src[3].op is not UOps.IF else rendered_store) else: if uop is UOps.RANGE: @@ -150,7 +151,7 @@ class CStyleLanguage(Renderer): bufs[u] = (args[0], (dtype,False)) r[u] = args[0] elif uop is UOps.LOAD: - val = self.render_load(dtype, r[src[0]], src[0].dtype, strip_parens(r[src[1]]), src[0].op is UOps.DEFINE_LOCAL) + val = self.render_load(dtype, r[src[0]], src[0].dtype, strip_parens(r[src[1]])) # NOTE: this relies on the load not happening if it's in the unselected branch if len(src) > 3 and src[3].op is UOps.ALU: val = self.code_for_op[TernaryOps.WHERE](r[src[3]], val, r[src[2]], dtype) kk(f"{self.render_dtype(dtype)} {ssa('val',u)} = {val};") From 6be1bf09f10e4e90c7deff14f72586794c7e1364 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:39:43 +0800 Subject: [PATCH 19/45] hotfix: bring COMPARE_SCHEDULE=0 back (#6657) --- test/external/process_replay/process_replay.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/external/process_replay/process_replay.py b/test/external/process_replay/process_replay.py index de027529c0..2bcb724a01 100755 --- a/test/external/process_replay/process_replay.py +++ b/test/external/process_replay/process_replay.py @@ -20,6 +20,7 @@ logging.basicConfig(level=logging.INFO, format="%(message)s") # user config ASSERT_DIFF = getenv("ASSERT_PROCESS_REPLAY", int((k:="[run_process_replay]") in os.getenv("COMMIT_MESSAGE", k) or k in os.getenv("PR_TITLE", k))) SKIP_PROCESS_REPLAY = (k:="[skip_process_replay]") in os.getenv("COMMIT_MESSAGE", "") or k in os.getenv("PR_TITLE", "") +COMPARE_SCHEDULE = getenv("COMPARE_SCHEDULE", 1) if REF == "master": SKIP_PROCESS_REPLAY = True # *** differs @@ -127,11 +128,12 @@ if __name__ == "__main__": logging.info("skipping process replay.") exit(0) - logging.info("***** schedule diff") - try: process_replay_schedule() - except Exception as e: - if ASSERT_DIFF: raise e - logging.error(f"schedule diff err {e}") + if COMPARE_SCHEDULE: + logging.info("***** schedule diff") + try: process_replay_schedule() + except Exception as e: + if ASSERT_DIFF: raise e + logging.error(f"schedule diff err {e}") logging.info("***** kernel diff") try: process_replay_kernel() From d24e4b1042f9c5abc73511455bcbb662b3e79f6b Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:48:35 +0800 Subject: [PATCH 20/45] viz more kernel view work (#6659) --- test/external/external_benchmark_schedule.py | 3 +- viz/index.html | 37 +++++++++++++++++--- viz/serve.py | 2 +- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/test/external/external_benchmark_schedule.py b/test/external/external_benchmark_schedule.py index 86ac60a92a..febf91d6fe 100644 --- a/test/external/external_benchmark_schedule.py +++ b/test/external/external_benchmark_schedule.py @@ -1,7 +1,7 @@ from typing import List from extra.models.resnet import ResNet50 from tinygrad import Tensor, Device -from tinygrad.helpers import Profiling, Timing, getenv, BEAM, NOOPT, DEBUG, Context, ansilen +from tinygrad.helpers import Profiling, Timing, getenv, BEAM, NOOPT, DEBUG, Context, ansilen, _CURRENT_KERNEL from tinygrad.ops import UOps from tinygrad.codegen.kernel import Kernel from tinygrad.codegen.lowerer import ast_to_uop @@ -43,6 +43,7 @@ if __name__ == "__main__": rewritten_uops = [] for i,(k,u) in enumerate(zip(kernels, uops)): with Timing(f"rewrite {i:2d} {k.name}{' '*(50-ansilen(k.name))}", enabled=getenv("VERBOSE", 0)): + if getenv("VIZ"): _CURRENT_KERNEL.set(k.name) rewritten_uops.append(full_graph_rewrite(u, k.opts)) uops = rewritten_uops if getenv("LINEARIZE", 1): diff --git a/viz/index.html b/viz/index.html index 6b2d99b800..721f7c873a 100644 --- a/viz/index.html +++ b/viz/index.html @@ -190,6 +190,7 @@ var currentUOp = 0; var currentKernel = 0; var currentRewrite = 0; + var expandKernel = false; async function main() { checkStatus(); // ** kernel list @@ -203,9 +204,7 @@ kernelUl = Object.assign(document.createElement("ul"), { innerHTML: `

    ${k.name}

    `, key: `kernel-${i}`, className: i === currentKernel ? "active" : "" }); k.ctxs.forEach((u, j) => { const rwUl = Object.assign(document.createElement("ul"), { innerText: u, key: `uop-rewrite-${j}`, className: (j === currentUOp && i == currentKernel) ? "active" : "" }) - if (i !== currentKernel) { - rwUl.style.display = "none"; - } + rwUl.style.display = i === currentKernel && expandKernel ? "block" : "none"; rwUl.onclick = (e) => { e.stopPropagation(); currentUOp = j; @@ -216,10 +215,15 @@ kernelUl.appendChild(rwUl) }) kernelUl.onclick = (e) => { - if (i === currentKernel) return; + if (i === currentKernel) { + expandKernel = !expandKernel; + main(); + return; + } currentKernel = i; currentUOp = 0; currentRewrite = 0; + expandKernel = true; main(); } kernelList.appendChild(kernelUl); @@ -279,7 +283,30 @@ } } document.addEventListener("keydown", async function(event) { - // up and down change the UOp from the list + // up and down change the UOp or kernel from the list + if (!expandKernel) { + if (event.key == "ArrowUp") { + event.preventDefault() + currentUOp = 0; + currentRewrite = 0; + currentKernel = Math.max(0, currentKernel-1) + return main() + } + if (event.key == "ArrowDown") { + event.preventDefault() + currentUOp = 0; + currentRewrite = 0; + currentKernel = Math.min(Array.from(Object.keys(kernels)).length, currentKernel+1) + return main() + } + } + if (event.key == "Enter") { + event.preventDefault() + currentUOp = 0; + currentRewrite = 0; + expandKernel = !expandKernel; + main(); + } if (event.key == "ArrowUp") { event.preventDefault() currentRewrite = 0; diff --git a/viz/serve.py b/viz/serve.py index 65c91e8677..88e7262fdc 100755 --- a/viz/serve.py +++ b/viz/serve.py @@ -78,7 +78,7 @@ def load_kernels(contexts:List[TrackedRewriteContext]) -> List[KernelRet]: for ctx in contexts: if ctx.loc.split("/")[-1].split(":")[0] == "schedule.py": with Context(TRACK_MATCH_STATS=0): kernel_name, code = (prg:=get_runner(Device.DEFAULT, full_ast_rewrite(ctx.sink)).p).name, prg.src - elif ctx.kernel_name is not None: kernel_name = ctx.kernel_name + elif ctx.kernel_name is not None: kernel_name, code = ctx.kernel_name, "" if ret.get(k:=to_function_name(kernel_name)) is None: ret[k] = KernelRet(k, code, {}) ret[k].ctxs[(ctx.loc, ctx.sink.key)] = ctx return list(ret.values()) From 46e360fdc0a5ff715fee50d8484f09bc56dfaf79 Mon Sep 17 00:00:00 2001 From: wozeparrot Date: Mon, 23 Sep 2024 10:48:44 +0800 Subject: [PATCH 21/45] check bfloat16 range with threefry (#6660) --- test/test_randomness.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/test/test_randomness.py b/test/test_randomness.py index 159584a92a..7fe5e15677 100644 --- a/test/test_randomness.py +++ b/test/test_randomness.py @@ -90,12 +90,10 @@ class TestRandomness(unittest.TestCase): N = 128 x = Tensor.rand((2, N, N), dtype=dtypes.bfloat16) assert x.dtype == dtypes.bfloat16 - # TODO: fix this property for bfloat16 random - # x = x.numpy() - # ones = np.take(x, np.where(x == 1)) - # zeros = np.take(x, np.where(x == 0)) - # self.assertTrue(ones.size == 0) - # self.assertTrue(zeros.size > 0) + if THREEFRY.value: + nx = x.numpy() + assert nx[nx == 1].size == 0 + assert nx[nx == 0].size > 0 equal_distribution(lambda *x: Tensor.rand(*x, dtype=dtypes.bfloat16).float(), torch.rand, lambda x: np.random.rand(*x), shape=(2, N, N)) def test_randn(self): From 1923932339866c64a8065906fbf1c77ae3ae80e4 Mon Sep 17 00:00:00 2001 From: chenyu Date: Sun, 22 Sep 2024 23:04:47 -0400 Subject: [PATCH 22/45] canonicalize simplex lt (#6658) (X := a0*x0 + a1*x1 + ...) > 0 is equivalent to x0 + x1 + ... > 0 if xi >= 0 and ai > 0 for ints --- .github/workflows/test.yml | 2 +- test/unit/test_image_valid.py | 4 ++-- test/unit/test_uop_symbolic.py | 13 +++++++++++++ tinygrad/codegen/uopgraph.py | 16 ++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b00ffb0faf..2afc877f3e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -197,7 +197,7 @@ jobs: - if: ${{ matrix.task == 'optimage' }} name: Test openpilot model compile and size run: | - PYTHONPATH="." DEBUG=2 ALLOWED_KERNEL_COUNT=208 ALLOWED_GATED_READ_IMAGE=37 FLOAT16=1 DEBUGCL=1 GPU=1 IMAGE=2 python examples/openpilot/compile2.py + PYTHONPATH="." DEBUG=2 ALLOWED_KERNEL_COUNT=208 ALLOWED_GATED_READ_IMAGE=43 FLOAT16=1 DEBUGCL=1 GPU=1 IMAGE=2 python examples/openpilot/compile2.py python -c 'import os; assert os.path.getsize("/tmp/output.thneed") < 100_000_000' - if: ${{ matrix.task == 'optimage' }} name: Test openpilot model correctness (float32) diff --git a/test/unit/test_image_valid.py b/test/unit/test_image_valid.py index ebc05ae0e0..e960855d71 100644 --- a/test/unit/test_image_valid.py +++ b/test/unit/test_image_valid.py @@ -120,7 +120,7 @@ class TestValidSimplification(unittest.TestCase): # TODO: simplify further self.assertEqual(render(shape, valid, idx), - "(((((idx1*8)+ridx2)<1)!=1)?read_imagef(data0, smp, (int2)((((idx1*48)+(ridx2*6)+ridx0+1530)%1536),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 + "(((((idx2+ridx1)<1)!=1)&(((idx1+ridx2)<1)!=1))?read_imagef(data0, smp, (int2)((((idx1*48)+(ridx2*6)+ridx0+1530)%1536),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 def test_openpilot_conv2(self): # conv in test/external/external_test_valid_remove.py @@ -141,7 +141,7 @@ class TestValidSimplification(unittest.TestCase): idx = UOp(UOps.VECTORIZE, dtypes.int.vec(2), ((alu3+765)%768, alu1+((idx1+((ridx2+7)//8)+31)//32)+(-2))) self.assertEqual(render(shape, valid, idx), - "(((((idx1*8)+ridx2)<1)!=1)?read_imagef(data0, smp, (int2)((((idx1*24)+(ridx2*3)+ridx0+765)%768),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 + "(((((idx2+ridx1)<1)!=1)&(((idx1+ridx2)<1)!=1))?read_imagef(data0, smp, (int2)((((idx1*24)+(ridx2*3)+ridx0+765)%768),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 def test_simplify1(self): # idx has the form (A % m, A // m + k) and valid has (c0 < A) and (A < c1) diff --git a/test/unit/test_uop_symbolic.py b/test/unit/test_uop_symbolic.py index 5dc0b1bbd5..ad22261247 100644 --- a/test/unit/test_uop_symbolic.py +++ b/test/unit/test_uop_symbolic.py @@ -448,6 +448,19 @@ class TestSymbolic(unittest.TestCase): self.helper_test_variable((idx//4).lt(3), 0, 1, "(idx<12)") self.helper_test_variable((idx//-4).lt(-3), 0, 1, "((idx//(-4))<(-3))") + def test_simplex_lt(self): + a = Variable("a", 0, 3) + b = Variable("b", 0, 3) + c = Variable("c", 0, 3) + d = Variable("d", -3, 3) + self.helper_test_variable((a).lt(1).ne(True), 0, 1, "((a<1)!=1)") + self.helper_test_variable((a+b).lt(1).ne(True), 0, 1, "(((a+b)<1)!=1)") + self.helper_test_variable((a*3+b*4).lt(1).ne(True), 0, 1, "(((a+b)<1)!=1)") + self.helper_test_variable((a*(-3)+b*4).lt(1).ne(True), 0, 1, "((((a*(-3))+(b*4))<1)!=1)") # negative coeff, should not be simplified + self.helper_test_variable((a*3+d*4).lt(1).ne(True), 0, 1, "((((a*3)+(d*4))<1)!=1)") # var can be negative, should not be simplified + self.helper_test_variable((a+b+c*2).lt(1).ne(True), 0, 1, "(((a+b+c)<1)!=1)") + self.helper_test_variable((a+b*2+c*4).lt(1).ne(True), 0, 1, "(((a+b+c)<1)!=1)") + @unittest.skip("not supported on uops yet") class TestSymbolicNumeric(unittest.TestCase): def helper_test_numeric(self, f): diff --git a/tinygrad/codegen/uopgraph.py b/tinygrad/codegen/uopgraph.py index 3c1943e449..cdefdeff42 100644 --- a/tinygrad/codegen/uopgraph.py +++ b/tinygrad/codegen/uopgraph.py @@ -163,6 +163,19 @@ def fold_unrolled_divs(divs:UOp): # ***** image load valid simplification ***** +def canonicalize_simplex(X:UOp) -> Optional[UOp]: + # (X := a0*x0 + a1*x1 + ...) > 0 is equivalent to x0 + x1 + ... > 0 if xi >= 0 and ai > 0 for ints. + # returns x0 + x1 + ... in such case, or None if not + changed, ret = False, [] + for u in _get_chain(X, BinaryOps.ADD): + # assumed the const is the last src of MUL + if u.op is UOps.ALU and u.arg is BinaryOps.MUL and u.src[1].op is UOps.CONST and u.src[1].arg > 0: + changed = True + u = u.src[0] + if not (u.op in (UOps.DEFINE_VAR, UOps.SPECIAL, UOps.RANGE) and u.vmin >= 0): return None + ret.append(u) + return functools.reduce(operator.add, ret) if changed else None + def is_increasing(f:UOp): # is f a monotonically increasing function regards its input if f.op in [UOps.CONST, UOps.DEFINE_VAR, UOps.SPECIAL, UOps.RANGE]: return True @@ -415,6 +428,9 @@ constant_folder = PatternMatcher([ # generic lt folding (UPat.var("x").lt(UPat.cvar("c", vec=False)), lambda x,c: lt_folding(x, c.arg) if 0 < c.arg and dtypes.is_int(x.dtype) and not dtypes.is_unsigned(x.dtype) else None), + # canonicalize a simplex with positive coefficients > 0 + # not x < 1 -> X > 0 + (UPat.var("x").lt(1).ne(True), lambda x: newx.lt(1).ne(True) if dtypes.is_int(x.dtype) and (newx:=canonicalize_simplex(x)) is not None else None), # ** div ** # # div folding (UPat.var("x") // UPat.cvar("c", vec=False), lambda x,c: From 2d4d5949949733096fca839c38f5afb996326fba Mon Sep 17 00:00:00 2001 From: chenyu Date: Sun, 22 Sep 2024 23:42:47 -0400 Subject: [PATCH 23/45] validhack is_irreducible helper (#6664) [run_process_replay] --- tinygrad/codegen/uopgraph.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tinygrad/codegen/uopgraph.py b/tinygrad/codegen/uopgraph.py index cdefdeff42..b785e2645b 100644 --- a/tinygrad/codegen/uopgraph.py +++ b/tinygrad/codegen/uopgraph.py @@ -163,6 +163,8 @@ def fold_unrolled_divs(divs:UOp): # ***** image load valid simplification ***** +def is_irreducible(u:UOp): return u.op in (UOps.DEFINE_VAR, UOps.SPECIAL, UOps.RANGE) + def canonicalize_simplex(X:UOp) -> Optional[UOp]: # (X := a0*x0 + a1*x1 + ...) > 0 is equivalent to x0 + x1 + ... > 0 if xi >= 0 and ai > 0 for ints. # returns x0 + x1 + ... in such case, or None if not @@ -172,13 +174,13 @@ def canonicalize_simplex(X:UOp) -> Optional[UOp]: if u.op is UOps.ALU and u.arg is BinaryOps.MUL and u.src[1].op is UOps.CONST and u.src[1].arg > 0: changed = True u = u.src[0] - if not (u.op in (UOps.DEFINE_VAR, UOps.SPECIAL, UOps.RANGE) and u.vmin >= 0): return None + if not (is_irreducible(u) and u.vmin >= 0): return None ret.append(u) return functools.reduce(operator.add, ret) if changed else None def is_increasing(f:UOp): # is f a monotonically increasing function regards its input - if f.op in [UOps.CONST, UOps.DEFINE_VAR, UOps.SPECIAL, UOps.RANGE]: return True + if f.op is UOps.CONST or is_irreducible(f): return True if f.op is UOps.ALU and f.arg is BinaryOps.ADD: return is_increasing(f.src[0]) and is_increasing(f.src[1]) if f.op is UOps.ALU and f.arg in (BinaryOps.MUL, BinaryOps.IDIV) and f.src[1].op is UOps.CONST and f.src[1].arg >= 0: return is_increasing(f.src[0]) return False # False if not sure From 52c2c4df9c564b46e6845e21ed0b239a84fb98da Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:56:53 +0800 Subject: [PATCH 24/45] fix match of sz 0 + dedup kernel ast [run_process_replay] (#6663) * fix match of sz 0 [run_process_replay] * empty graph rewrite to dedup st --- test/unit/test_pattern_matcher.py | 14 ++++++++++++++ test/unit/test_shapetracker.py | 8 ++++++++ tinygrad/codegen/kernel.py | 6 ++++-- tinygrad/ops.py | 4 ++-- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/test/unit/test_pattern_matcher.py b/test/unit/test_pattern_matcher.py index dedddac9fc..1354a0cb34 100644 --- a/test/unit/test_pattern_matcher.py +++ b/test/unit/test_pattern_matcher.py @@ -11,6 +11,20 @@ class TestPatternMatcher(unittest.TestCase): self.assertEqual(matcher.rewrite(c1), c1) self.assertEqual(matcher.rewrite(c2), None) + def test_match_sz_0(self): + match_cnt = 0 + def fxn(x): + nonlocal match_cnt + match_cnt += 1 + assert len(x.src) == 0 + return UOp(UOps.CONST, src=(UOp(UOps.CONST),)) + matcher = PatternMatcher([(UPat(UOps.CONST, src=(), name="x"), fxn)]) + c1 = UOp(UOps.CONST, dtypes.float, arg=1.0) + # second rewrite shouldn't match anything + c1 = matcher.rewrite(c1) + c1 = matcher.rewrite(c1) + self.assertEqual(match_cnt, 1) + def test_uop(self): matcher = PatternMatcher([(UPat(UOps.CONST, name="x"), lambda x: x)]) c1 = UOp(UOps.CONST, dtypes.float, arg=1.0) diff --git a/test/unit/test_shapetracker.py b/test/unit/test_shapetracker.py index 27f897b621..9a68ec2664 100644 --- a/test/unit/test_shapetracker.py +++ b/test/unit/test_shapetracker.py @@ -489,6 +489,14 @@ class TestComplexShapeTracker(unittest.TestCase): print(self.st.views) assert self.st.contiguous +class TestShapeTrackerEquality(unittest.TestCase): + def test_simple_equals(self): + self.assertEqual(ShapeTracker.from_shape((10,10)), ShapeTracker.from_shape((10,10))) + def test_other_equals(self): + st1 = ShapeTracker(views=(View(shape=(3,), strides=(1,), offset=0, mask=None, contiguous=True))) + st2 = ShapeTracker(views=(View(shape=(3,), strides=(1,), offset=0, mask=None, contiguous=True))) + self.assertEqual(st1, st2) + class TestSingleShapeTracker(unittest.TestCase): def setUp(self): self.st = CheckingShapeTracker((7,4)) diff --git a/tinygrad/codegen/kernel.py b/tinygrad/codegen/kernel.py index 1325556bc9..b843132c43 100644 --- a/tinygrad/codegen/kernel.py +++ b/tinygrad/codegen/kernel.py @@ -4,7 +4,8 @@ from dataclasses import dataclass from collections import defaultdict from typing import Optional, List, Tuple, cast, Dict, Final, DefaultDict -from tinygrad.ops import TRACK_MATCH_STATS, BinaryOps, UNSAFE_PAD_OPS, KernelInfo, BUFFER_UOPS, UOp, UOps, print_uops, type_verify +from tinygrad.ops import TRACK_MATCH_STATS, BinaryOps, UNSAFE_PAD_OPS, KernelInfo, BUFFER_UOPS, UOp, UOps, print_uops, type_verify, \ + graph_rewrite, PatternMatcher from tinygrad.device import Device from tinygrad.renderer import Renderer, TensorCore, Program from tinygrad.dtype import ImageDType, PtrDType @@ -742,7 +743,8 @@ class Kernel: elif op.op is UOps.SINK: arg = KernelInfo(self.local_dims, self.upcasted, self.dont_use_locals) return op.replace(src=tuple(fixup_ast(x, apply_to_st) for x in op.src), arg=arg) - return fixup_ast(self.ast) + # NOTE: rewrite with an empty PatternMatcher to dedup UOps + return graph_rewrite(fixup_ast(self.ast), PatternMatcher([])) # **** this is the lowerer **** diff --git a/tinygrad/ops.py b/tinygrad/ops.py index 9e2d6cdfd1..db67229dbc 100644 --- a/tinygrad/ops.py +++ b/tinygrad/ops.py @@ -402,7 +402,7 @@ class UPat(MathTrait): # repeat if it's a UPat elif isinstance(src, UPat): self.src = [itertools.repeat(src)] - self.allowed_len: int = 0 if allow_any_len or isinstance(src, UPat) or src is None else len(src) + self.allowed_len: int = -1 if allow_any_len or isinstance(src, UPat) or src is None else len(src) self.location = location or get_location() if custom_early_reject is not None: self.early_reject = custom_early_reject @@ -455,7 +455,7 @@ class UPat(MathTrait): (self.dtype is not None and uop.dtype not in self.dtype) or \ (self.arg is not None and self.arg != uop.arg) or \ (self.op is not None and uop.op not in self.op) or \ - (self.allowed_len != 0 and len(uop.src) != self.allowed_len): return [] + (self.allowed_len != -1 and len(uop.src) != self.allowed_len): return [] if self.src is None: return [store] res: List[Dict[str, UOp]] = [] for vp in self.src: From da5b74165683633461c0924ef2c49e21e1b277d0 Mon Sep 17 00:00:00 2001 From: chenyu Date: Mon, 23 Sep 2024 00:30:18 -0400 Subject: [PATCH 25/45] removed valid in openpilot conv (#6619) 35 valids left --- .github/workflows/test.yml | 2 +- test/unit/test_image_valid.py | 5 ++--- tinygrad/codegen/uopgraph.py | 32 ++++++++++++++++++++++++++++---- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2afc877f3e..f27bd7da16 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -197,7 +197,7 @@ jobs: - if: ${{ matrix.task == 'optimage' }} name: Test openpilot model compile and size run: | - PYTHONPATH="." DEBUG=2 ALLOWED_KERNEL_COUNT=208 ALLOWED_GATED_READ_IMAGE=43 FLOAT16=1 DEBUGCL=1 GPU=1 IMAGE=2 python examples/openpilot/compile2.py + PYTHONPATH="." DEBUG=2 ALLOWED_KERNEL_COUNT=208 ALLOWED_GATED_READ_IMAGE=35 FLOAT16=1 DEBUGCL=1 GPU=1 IMAGE=2 python examples/openpilot/compile2.py python -c 'import os; assert os.path.getsize("/tmp/output.thneed") < 100_000_000' - if: ${{ matrix.task == 'optimage' }} name: Test openpilot model correctness (float32) diff --git a/test/unit/test_image_valid.py b/test/unit/test_image_valid.py index e960855d71..61e0b9ed33 100644 --- a/test/unit/test_image_valid.py +++ b/test/unit/test_image_valid.py @@ -118,9 +118,8 @@ class TestValidSimplification(unittest.TestCase): shape = (128, 1536, 4) idx = UOp(UOps.VECTORIZE, dtypes.int.vec(2), ((alu4+1530)%1536, alu1+((idx1+((ridx2+7)//8)+31)//32)+(-2))) - # TODO: simplify further self.assertEqual(render(shape, valid, idx), - "(((((idx2+ridx1)<1)!=1)&(((idx1+ridx2)<1)!=1))?read_imagef(data0, smp, (int2)((((idx1*48)+(ridx2*6)+ridx0+1530)%1536),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 + "read_imagef(data0, smp, (int2)(((idx1*48)+(ridx2*6)+ridx0+(-6)),((idx2*2)+ridx1+(-1))))") def test_openpilot_conv2(self): # conv in test/external/external_test_valid_remove.py @@ -141,7 +140,7 @@ class TestValidSimplification(unittest.TestCase): idx = UOp(UOps.VECTORIZE, dtypes.int.vec(2), ((alu3+765)%768, alu1+((idx1+((ridx2+7)//8)+31)//32)+(-2))) self.assertEqual(render(shape, valid, idx), - "(((((idx2+ridx1)<1)!=1)&(((idx1+ridx2)<1)!=1))?read_imagef(data0, smp, (int2)((((idx1*24)+(ridx2*3)+ridx0+765)%768),((idx2*2)+ridx1+((idx1+((ridx2+7)//8)+31)//32)+(-2)))):(float4)(0.0f,0.0f,0.0f,0.0f))") # noqa: E501 + "read_imagef(data0, smp, (int2)(((idx1*24)+(ridx2*3)+ridx0+(-3)),((idx2*2)+ridx1+(-1))))") def test_simplify1(self): # idx has the form (A % m, A // m + k) and valid has (c0 < A) and (A < c1) diff --git a/tinygrad/codegen/uopgraph.py b/tinygrad/codegen/uopgraph.py index b785e2645b..8d1bc3e0ec 100644 --- a/tinygrad/codegen/uopgraph.py +++ b/tinygrad/codegen/uopgraph.py @@ -187,7 +187,7 @@ def is_increasing(f:UOp): def replace_uop(uop:UOp, old:UOp, new:UOp): # replace all `old` in `uop` to `new` - return new if uop is old else UOp(uop.op, uop.dtype, tuple(replace_uop(s, old, new) for s in uop.src), uop.arg) + return new if uop.key == old.key else UOp(uop.op, uop.dtype, tuple(replace_uop(s, old, new) for s in uop.src), uop.arg) def parse_valid(valid:UOp) -> Tuple[UOp, bool, int]: # if it's X <= c, returns X, True, c @@ -216,14 +216,38 @@ def simplify_valid_image_load(load:UOp, buf:UOp): # some expr has lower bound > upper bound -> valid is an empty set if v[0] is not None and v[1] is not None and v[0] > v[1]: return UOp(UOps.LOAD, load.dtype, (buf, idx, invalid_val, valid.const_like(False))) - new = UOp.define_var("fake", uop.dtype, uop.vmin if v[0] is None else v[0], uop.vmax if v[1] is None else v[1]) - newidx = replace_uop(graph_rewrite(replace_uop(idx, uop, new), constant_folder), new, uop) - if newidx.key != idx.key: idx = newidx + + if uop.op is UOps.ALU and uop.arg is BinaryOps.ADD and all(is_irreducible(u) and u.vmin == 0 for u in _get_chain(uop, BinaryOps.ADD)): + # if the constraint is a simplex: X0 + X1 + ... > 0, we can check if all Xi > 0 simplify into the same output + newidxs: List[List[UOp]] = [[], []] + for variable in _get_chain(uop, BinaryOps.ADD): + new = UOp(UOps.DEFINE_VAR, variable.dtype, (), ("fake", 1, variable.vmax)) + newidx = replace_uop(graph_rewrite(replace_uop(idx, variable, new), constant_folder), new, variable) + newidxs[0].append(newidx.src[0]) + newidxs[1].append(newidx.src[1]) + + if len(newidxs[0])==1 or (len(newidxs[0]) > 1 and all_same([i.key for i in newidxs[0]])): idx = idx.replace(src=(newidxs[0][0], idx.src[1])) + if len(newidxs[1])==1 or (len(newidxs[1]) > 1 and all_same([i.key for i in newidxs[1]])): idx = idx.replace(src=(idx.src[0], newidxs[1][0])) + + elif is_irreducible(uop): + new = UOp.define_var("fake", uop.dtype, uop.vmin if v[0] is None else v[0], uop.vmax if v[1] is None else v[1]) + newidx = replace_uop(graph_rewrite(replace_uop(idx, uop, new), constant_folder), new, uop) + if newidx.key != idx.key: idx = newidx # can drop valid if idx is out of bound when valid is False drop_stmt = [] for stmt in _get_chain(valid, BinaryOps.AND): X, is_upper_bound, c = parse_valid(stmt) + + # for X0 + X1 + ... >= 1, check if it's out of bound when Xi = 0 for all i + if not is_upper_bound and c == 1 and X.op is UOps.ALU and X.arg is BinaryOps.ADD and \ + all(is_irreducible(u) and u.vmin == 0 for u in _get_chain(X, BinaryOps.ADD)): + testidx = functools.reduce(lambda nowidx,u: replace_uop(nowidx, u, u.const_like(0)), _get_chain(X, BinaryOps.ADD), idx) + testidx = graph_rewrite(testidx, constant_folder) + if testidx.src[0].vmax < 0 or testidx.src[1].vmax < 0: + drop_stmt.append(stmt) + continue + # if X <= c, check if it's out of bound when X = c+1 # if X >= c, check if it's out of bound when X = c-1 test_value = c + 1 if is_upper_bound else c - 1 From e9248b9e277f455e04a0cc7e93d5cd8fc3fc4f43 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Mon, 23 Sep 2024 13:46:18 +0800 Subject: [PATCH 26/45] viz highlight new nodes (#6665) * p2 * ret adds and dels * maybe that way * add additions * simpler test_viz --- viz/index.html | 12 ++++++++---- viz/serve.py | 15 +++++++-------- viz/test_viz.py | 5 ++--- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/viz/index.html b/viz/index.html index 721f7c873a..b52c48d671 100644 --- a/viz/index.html +++ b/viz/index.html @@ -155,13 +155,17 @@