You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
651 B
16 lines
651 B
1 month ago
|
import unittest
|
||
|
from extra.f16_decompress import u32_to_f16
|
||
|
from tinygrad.tensor import Tensor
|
||
|
from tinygrad.device import Device, is_dtype_supported
|
||
|
from tinygrad import dtypes
|
||
|
import numpy as np
|
||
|
|
||
|
class TestF16Decompression(unittest.TestCase):
|
||
|
def test_u32_to_f16(self):
|
||
|
a = Tensor.randn(50, dtype=dtypes.float16, device=None if is_dtype_supported(dtypes.float16) else "CLANG:0")
|
||
|
f16_as_u32 = a.bitcast(dtypes.uint32) if is_dtype_supported(dtypes.float16) else a.bitcast(dtypes.uint32).to(Device.DEFAULT)
|
||
|
f16 = u32_to_f16(f16_as_u32)
|
||
|
ref = a.numpy()
|
||
|
out = f16.numpy().astype(np.float16)
|
||
|
np.testing.assert_allclose(out, ref)
|