File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -88,10 +88,18 @@ def validate(self):
88
88
assert self .base .data .item () % 16 == 0 , "base must be 16-byte aligned"
89
89
assert len (self .strides ) == self .ndim
90
90
assert len (self .block_shape ) == self .ndim
91
+ assert self .ndim >= 1 , "descriptor cannot be 0 dimensional"
91
92
92
93
for stride in self .strides [:- 1 ]:
93
94
assert stride .data .item () % 16 == 0 , "stride must be 16-byte aligned"
94
95
assert self .strides [- 1 ].data .item () == 1 , "last dim must be contiguous"
96
+ for i in range (self .ndim - 1 ):
97
+ stride = self .strides [i ].data .item ()
98
+ prev_stride = self .strides [i + 1 ].data .item ()
99
+ prev_size = self .shape [i + 1 ].data .item ()
100
+ assert stride >= prev_stride , "strides must be ordered largest to smallest"
101
+ assert (stride % prev_stride ) == 0 , "strides must be even multiples of smaller strides"
102
+ assert (stride // prev_stride ) >= prev_size , "invalid stride"
95
103
96
104
def materialize_pointers (self , offsets : List [TensorHandle ]):
97
105
assert len (offsets ) == self .ndim
You can’t perform that action at this time.
0 commit comments