mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-09 15:08:02 -05:00
move into codegen late [pr] (#11823)
This commit is contained in:
1
setup.py
1
setup.py
@@ -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',
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)),
|
||||||
|
|||||||
@@ -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]):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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}];"),
|
||||||
|
|||||||
Reference in New Issue
Block a user