forked from tinygrad/tinygrad
delete View minify [pr] (#12538)
This commit is contained in:
@@ -175,12 +175,6 @@ class TestRealSimplifies(unittest.TestCase):
|
||||
View.create((8, 3, 3, 11, 2, 28), (924, 308, 0, 28, 0, 1), 0, None),
|
||||
View.create((8, 1, 6, 10, 28, 3, 2, 1), (5544, 0, 0, 56, 1, 1848, 672, 0), 0, None)))
|
||||
|
||||
class TestViewMinify(unittest.TestCase):
|
||||
def test_minifies(self):
|
||||
assert len(View.create((10,10)).minify().shape) == 1
|
||||
assert len(View.create((10,10)).permute((1,0)).minify().shape) == 2
|
||||
assert len(View.create((10,10,10,10)).permute((1,0,2,3)).minify().shape) == 3
|
||||
|
||||
class TestIndexExpressions2d(unittest.TestCase):
|
||||
def setUp(self):
|
||||
shapes = [(30, 5), (15, 10), (15, 1), (5, 10), (5, 1)] # Make sure dim0 is a multiple of 5, one of the tests divides this dimension by 5
|
||||
|
||||
@@ -10,25 +10,6 @@ class TestView(unittest.TestCase):
|
||||
v = View.create(shape=(4,3,2), strides=(1,4,10), mask=((0,4),(0,3),(0,2)))
|
||||
self.assertIsNone(v.mask)
|
||||
|
||||
def test_minify_zero_strided_dims(self):
|
||||
target = View.create(shape=(2,2), strides=(30,2), offset=7, mask=None)
|
||||
v = View.create(shape=(2,1,2), strides=(30,0,2), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(1,2,2), strides=(0,30,2), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(2,2,1), strides=(30,2,0), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(2,1,1,2), strides=(30,0,0,2), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(1,1,2,2), strides=(0,0,30,2), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(2,2,1,1), strides=(30,2,0,0), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(1,2,2,1), strides=(0,30,2,0), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
v = View.create(shape=(1,2,1,2), strides=(0,30,0,2), offset=7, mask=None)
|
||||
self.assertEqual(v.minify(), target)
|
||||
|
||||
def test_empty_mask_contiguous(self):
|
||||
v1 = View.create(shape=(2,2,2), strides=(4,2,1), mask=None)
|
||||
v2 = View.create(shape=(2,2,2), strides=(4,2,1), mask=((0,2),(0,2),(0,2)))
|
||||
|
||||
@@ -12,7 +12,6 @@ from tinygrad.uop.ops import UOp, Ops, graph_rewrite, Variable, sint, sint_to_uo
|
||||
def views_to_valid_uop(views: tuple[View, ...], _idxs:tuple[UOp, ...]|None=None) -> UOp:
|
||||
idx = views[-1].to_valid_uop(_idxs)
|
||||
for view in reversed(views[0:-1]):
|
||||
view = view.minify()
|
||||
idx = view.to_valid_uop([sint_to_uop(i) for i in unravel(view.shape, idx)])
|
||||
with Context(TRACK_MATCH_STATS=0):
|
||||
return graph_rewrite(idx, sym, name="indexing sym @ 1")
|
||||
|
||||
@@ -226,11 +226,6 @@ class View:
|
||||
|
||||
return View.create(vm1.shape, tuple(strides), ssimplify(sum(o * s for o, s in zip(origin, vm2.strides)) + vm2.offset))
|
||||
|
||||
@functools.cache # pylint: disable=method-cache-max-size-none
|
||||
def minify(self):
|
||||
min_shape = tuple(x[0] for x in merge_dims(self.shape, self.strides, self.mask))
|
||||
return nv if (nv := self.reshape(min_shape)) else self
|
||||
|
||||
def __unsafe_resize(self, arg: tuple[tuple[sint, sint], ...], mask=None) -> View:
|
||||
offset = sum([s * x[0] for s, x in zip(self.strides,arg)])
|
||||
if self.mask:
|
||||
|
||||
Reference in New Issue
Block a user