mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-08 22:48:25 -05:00
fix tests that failed locally on mac (#13872)
keccak output was silently broken without contiguous
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
import os
|
||||||
|
os.environ['USE_TF'] = '0' # prevent transformers from importing tensorflow
|
||||||
import unittest
|
import unittest
|
||||||
from tinygrad import Tensor
|
from tinygrad import Tensor
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class TestEfficientNet(unittest.TestCase):
|
|||||||
self.assertEqual(_LABELS[labels[0]], "sports car, sport car")
|
self.assertEqual(_LABELS[labels[0]], "sports car, sport car")
|
||||||
|
|
||||||
def test_chicken_car(self):
|
def test_chicken_car(self):
|
||||||
labels = _infer(self.model, np.concat([chicken_img, car_img], axis=0))
|
labels = _infer(self.model, np.concatenate([chicken_img, car_img], axis=0))
|
||||||
self.assertEqual(_LABELS[labels[0]], "hen")
|
self.assertEqual(_LABELS[labels[0]], "hen")
|
||||||
self.assertEqual(_LABELS[labels[1]], "sports car, sport car")
|
self.assertEqual(_LABELS[labels[1]], "sports car, sport car")
|
||||||
|
|
||||||
|
|||||||
@@ -47,10 +47,10 @@ class TestKeccak(unittest.TestCase):
|
|||||||
|
|
||||||
ha_ref, hb_ref = hasher(a), hasher(b)
|
ha_ref, hb_ref = hasher(a), hasher(b)
|
||||||
tres = Tensor.stack(*(Tensor(d) for d in (a, b))).keccak(name)
|
tres = Tensor.stack(*(Tensor(d) for d in (a, b))).keccak(name)
|
||||||
ha, hb = tres[0].data(), tres[1].data()
|
ha, hb = bytes(tres[0].data()), bytes(tres[1].data())
|
||||||
|
|
||||||
self.assertEqual(ha_ref, ha)
|
self.assertEqual(ha_ref, ha)
|
||||||
self.assertEqual(ha_ref, Tensor(a).keccak(name).data())
|
self.assertEqual(ha_ref, bytes(Tensor(a).keccak(name).data()))
|
||||||
self.assertEqual(hb_ref, hb)
|
self.assertEqual(hb_ref, hb)
|
||||||
|
|
||||||
def test_referenced(self):
|
def test_referenced(self):
|
||||||
|
|||||||
@@ -1845,6 +1845,7 @@ class Tensor(OpMixin):
|
|||||||
p = state.reshape(bs, 5, 5).transpose(2, 1)
|
p = state.reshape(bs, 5, 5).transpose(2, 1)
|
||||||
t1 = (p[:,:,0] ^ p[:,:,1] ^ p[:,:,2] ^ p[:,:,3] ^ p[:,:,4]).roll(-1, 1) # xor reduce
|
t1 = (p[:,:,0] ^ p[:,:,1] ^ p[:,:,2] ^ p[:,:,3] ^ p[:,:,4]).roll(-1, 1) # xor reduce
|
||||||
state = state ^ (t1.roll(2, 1).bitwise_xor((t1 << 1) ^ (t1 >> 63)).unsqueeze(2).expand(bs, 5, 5).transpose(2, 1).flatten(1))
|
state = state ^ (t1.roll(2, 1).bitwise_xor((t1 << 1) ^ (t1 >> 63)).unsqueeze(2).expand(bs, 5, 5).transpose(2, 1).flatten(1))
|
||||||
|
state = state.contiguous() # required for correct indexing in π step # TODO: why is it needed?
|
||||||
# ρ and π steps
|
# ρ and π steps
|
||||||
state = state[:, reorder_indexes]
|
state = state[:, reorder_indexes]
|
||||||
state = (state * rot_offsets_v0).bitwise_or(state // rot_offsets_v1).reshape(bs, 5, 5)
|
state = (state * rot_offsets_v0).bitwise_or(state // rot_offsets_v1).reshape(bs, 5, 5)
|
||||||
|
|||||||
Reference in New Issue
Block a user