move into codegen late [pr] (#11823)

This commit is contained in:
George Hotz
2025-08-24 10:23:25 -07:00
committed by GitHub
parent bba088ef11
commit 6540bb32a6
11 changed files with 10 additions and 9 deletions

View File

@@ -29,6 +29,7 @@ setup(name='tinygrad',
'tinygrad.apps', 'tinygrad.apps',
'tinygrad.codegen', 'tinygrad.codegen',
'tinygrad.codegen.opt', 'tinygrad.codegen.opt',
'tinygrad.codegen.late',
'tinygrad.engine', 'tinygrad.engine',
'tinygrad.frontend', 'tinygrad.frontend',
'tinygrad.nn', 'tinygrad.nn',

View File

@@ -20,7 +20,7 @@ class TestPickle(unittest.TestCase):
self.assertEqual(pm2.rewrite(sink).key, tt.key) self.assertEqual(pm2.rewrite(sink).key, tt.key)
def test_pickle_main_pattern_matcher(self): def test_pickle_main_pattern_matcher(self):
from tinygrad.codegen.devectorizer import sym from tinygrad.codegen.late.devectorizer import sym
ssym = pickle.dumps(sym) ssym = pickle.dumps(sym)
dsym = pickle.loads(ssym) dsym = pickle.loads(ssym)
self.assertEqual(dsym.patterns[0][0].location, sym.patterns[0][0].location) self.assertEqual(dsym.patterns[0][0].location, sym.patterns[0][0].location)

View File

@@ -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.ops import Ops, UOp, UPat, PatternMatcher, track_rewrites, graph_rewrite, GroupOp
from tinygrad.uop.symbolic import sym from tinygrad.uop.symbolic import sym
from tinygrad.codegen import full_rewrite, full_rewrite_to_sink 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([ simple_pm = PatternMatcher([
(UPat.cvar('x', dtypes.int), lambda x: UOp.const(dtypes.float, 1.0) + UOp.const(dtypes.float, 2.0)), (UPat.cvar('x', dtypes.int), lambda x: UOp.const(dtypes.float, 1.0) + UOp.const(dtypes.float, 2.0)),

View File

@@ -1,7 +1,7 @@
import unittest, random import unittest, random
from tinygrad.dtype import dtypes from tinygrad.dtype import dtypes
from tinygrad.uop.ops import print_uops, UOp, Ops 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 from tinygrad.renderer.cstyle import OpenCLRenderer
def is_toposorted(lst:list[UOp]): def is_toposorted(lst:list[UOp]):

View File

@@ -6,7 +6,7 @@ from tinygrad.helpers import prod
from tinygrad.shape.shapetracker import ShapeTracker, View from tinygrad.shape.shapetracker import ShapeTracker, View
from tinygrad import Variable from tinygrad import Variable
from tinygrad.uop.ops import UOp, Ops, graph_rewrite 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 from itertools import product
def shapetracker_getitem(st:ShapeTracker, val:int): def shapetracker_getitem(st:ShapeTracker, val:int):

View File

@@ -4,7 +4,7 @@ import z3
from tinygrad.dtype import dtypes, ConstType from tinygrad.dtype import dtypes, ConstType
from tinygrad.codegen import full_rewrite 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.helpers import Context
from tinygrad.uop.ops import UOp, Ops, graph_rewrite, sym_infer from tinygrad.uop.ops import UOp, Ops, graph_rewrite, sym_infer
from tinygrad import Variable from tinygrad import Variable

View File

@@ -12,10 +12,10 @@ from tinygrad.codegen.quantize import pm_quant
from tinygrad.codegen.gpudims import pm_add_gpudims from tinygrad.codegen.gpudims import pm_add_gpudims
from tinygrad.uop.symbolic import sym, symbolic_simple, gep_pushing from tinygrad.uop.symbolic import sym, symbolic_simple, gep_pushing
from tinygrad.uop.decompositions import get_late_rewrite_patterns from tinygrad.uop.decompositions import get_late_rewrite_patterns
from tinygrad.codegen.expander import migrate_indexing, expander from tinygrad.codegen.late.expander import migrate_indexing, expander
from tinygrad.codegen.devectorizer import load_store_folding, load_store_indexing, devectorize, pm_reduce, \ from tinygrad.codegen.late.devectorizer import load_store_folding, load_store_indexing, devectorize, pm_reduce, \
ReduceContext, correct_load_store, pm_render 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 import pm_get_optimization, pm_do_optimize
from tinygrad.codegen.opt.swizzler import view_left, view_right, fix_kernel_ops from tinygrad.codegen.opt.swizzler import view_left, view_right, fix_kernel_ops

View File

@@ -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.helpers import strip_parens, getenv, prod, dedup, AMX
from tinygrad.dtype import ImageDType, dtypes, DType, PtrDType, AddrSpace, truncate from tinygrad.dtype import ImageDType, dtypes, DType, PtrDType, AddrSpace, truncate
from tinygrad.renderer import Renderer 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([ base_rewrite = PatternMatcher([
(UPat(Ops.DEFINE_REG, name="x"), lambda ctx,x: f"{ctx.render_dtype(x.dtype.base)} {ctx[x]}[{x.dtype.size}];"), (UPat(Ops.DEFINE_REG, name="x"), lambda ctx,x: f"{ctx.render_dtype(x.dtype.base)} {ctx[x]}[{x.dtype.size}];"),