diff --git a/setup.py b/setup.py index 1c4f618445..2b510424e4 100644 --- a/setup.py +++ b/setup.py @@ -29,6 +29,7 @@ setup(name='tinygrad', 'tinygrad.apps', 'tinygrad.codegen', 'tinygrad.codegen.opt', + 'tinygrad.codegen.late', 'tinygrad.engine', 'tinygrad.frontend', 'tinygrad.nn', diff --git a/test/test_pickle.py b/test/test_pickle.py index 93758eef68..d5c62cd77f 100644 --- a/test/test_pickle.py +++ b/test/test_pickle.py @@ -20,7 +20,7 @@ class TestPickle(unittest.TestCase): self.assertEqual(pm2.rewrite(sink).key, tt.key) def test_pickle_main_pattern_matcher(self): - from tinygrad.codegen.devectorizer import sym + from tinygrad.codegen.late.devectorizer import sym ssym = pickle.dumps(sym) dsym = pickle.loads(ssym) self.assertEqual(dsym.patterns[0][0].location, sym.patterns[0][0].location) diff --git a/test/test_uop_graph.py b/test/test_uop_graph.py index 366676ba35..945c2b6a38 100644 --- a/test/test_uop_graph.py +++ b/test/test_uop_graph.py @@ -6,7 +6,7 @@ from tinygrad.helpers import DEBUG, Context from tinygrad.uop.ops import Ops, UOp, UPat, PatternMatcher, track_rewrites, graph_rewrite, GroupOp from tinygrad.uop.symbolic import sym from tinygrad.codegen import full_rewrite, full_rewrite_to_sink -from tinygrad.codegen.expander import expander +from tinygrad.codegen.late.expander import expander simple_pm = PatternMatcher([ (UPat.cvar('x', dtypes.int), lambda x: UOp.const(dtypes.float, 1.0) + UOp.const(dtypes.float, 2.0)), diff --git a/test/unit/test_block_reorder.py b/test/unit/test_block_reorder.py index cf6df95aa5..c5e2309d08 100644 --- a/test/unit/test_block_reorder.py +++ b/test/unit/test_block_reorder.py @@ -1,7 +1,7 @@ import unittest, random from tinygrad.dtype import dtypes from tinygrad.uop.ops import print_uops, UOp, Ops -from tinygrad.codegen.linearize import block_reorder +from tinygrad.codegen.late.linearize import block_reorder from tinygrad.renderer.cstyle import OpenCLRenderer def is_toposorted(lst:list[UOp]): diff --git a/test/unit/test_shapetracker.py b/test/unit/test_shapetracker.py index b9ffce946e..bf2bf3d36c 100644 --- a/test/unit/test_shapetracker.py +++ b/test/unit/test_shapetracker.py @@ -6,7 +6,7 @@ from tinygrad.helpers import prod from tinygrad.shape.shapetracker import ShapeTracker, View from tinygrad import Variable from tinygrad.uop.ops import UOp, Ops, graph_rewrite -from tinygrad.codegen.devectorizer import sym +from tinygrad.codegen.late.devectorizer import sym from itertools import product def shapetracker_getitem(st:ShapeTracker, val:int): diff --git a/test/unit/test_uop_symbolic.py b/test/unit/test_uop_symbolic.py index 7d38180dee..5d116c1a1a 100644 --- a/test/unit/test_uop_symbolic.py +++ b/test/unit/test_uop_symbolic.py @@ -4,7 +4,7 @@ import z3 from tinygrad.dtype import dtypes, ConstType from tinygrad.codegen import full_rewrite -from tinygrad.codegen.devectorizer import sym +from tinygrad.codegen.late.devectorizer import sym from tinygrad.helpers import Context from tinygrad.uop.ops import UOp, Ops, graph_rewrite, sym_infer from tinygrad import Variable diff --git a/tinygrad/codegen/__init__.py b/tinygrad/codegen/__init__.py index 826f6139fb..6a38d1dd3b 100644 --- a/tinygrad/codegen/__init__.py +++ b/tinygrad/codegen/__init__.py @@ -12,10 +12,10 @@ from tinygrad.codegen.quantize import pm_quant from tinygrad.codegen.gpudims import pm_add_gpudims from tinygrad.uop.symbolic import sym, symbolic_simple, gep_pushing from tinygrad.uop.decompositions import get_late_rewrite_patterns -from tinygrad.codegen.expander import migrate_indexing, expander -from tinygrad.codegen.devectorizer import load_store_folding, load_store_indexing, devectorize, pm_reduce, \ +from tinygrad.codegen.late.expander import migrate_indexing, expander +from tinygrad.codegen.late.devectorizer import load_store_folding, load_store_indexing, devectorize, pm_reduce, \ ReduceContext, correct_load_store, pm_render -from tinygrad.codegen.linearize import block_create, pm_blockend_merge, block_merge, pm_finalize, BlockContext +from tinygrad.codegen.late.linearize import block_create, pm_blockend_merge, block_merge, pm_finalize, BlockContext from tinygrad.codegen.opt import pm_get_optimization, pm_do_optimize from tinygrad.codegen.opt.swizzler import view_left, view_right, fix_kernel_ops diff --git a/tinygrad/codegen/devectorizer.py b/tinygrad/codegen/late/devectorizer.py similarity index 100% rename from tinygrad/codegen/devectorizer.py rename to tinygrad/codegen/late/devectorizer.py diff --git a/tinygrad/codegen/expander.py b/tinygrad/codegen/late/expander.py similarity index 100% rename from tinygrad/codegen/expander.py rename to tinygrad/codegen/late/expander.py diff --git a/tinygrad/codegen/linearize.py b/tinygrad/codegen/late/linearize.py similarity index 100% rename from tinygrad/codegen/linearize.py rename to tinygrad/codegen/late/linearize.py diff --git a/tinygrad/renderer/cstyle.py b/tinygrad/renderer/cstyle.py index 1794b3ede8..c199354459 100644 --- a/tinygrad/renderer/cstyle.py +++ b/tinygrad/renderer/cstyle.py @@ -6,7 +6,7 @@ from tinygrad.uop.ops import GroupOp, Ops, UOp, PatternMatcher, UPat from tinygrad.helpers import strip_parens, getenv, prod, dedup, AMX from tinygrad.dtype import ImageDType, dtypes, DType, PtrDType, AddrSpace, truncate from tinygrad.renderer import Renderer -from tinygrad.codegen.devectorizer import no_vectorized_alu +from tinygrad.codegen.late.devectorizer import no_vectorized_alu base_rewrite = PatternMatcher([ (UPat(Ops.DEFINE_REG, name="x"), lambda ctx,x: f"{ctx.render_dtype(x.dtype.base)} {ctx[x]}[{x.dtype.size}];"),