mirror of https://github.com/commaai/tinygrad.git
include negative float in test_dtype (#3884)
* include negative float in test_dtype * that is ub * too annoying * pack can overflow
This commit is contained in:
parent
e22d78b3d2
commit
2c69888654
|
@ -49,7 +49,7 @@ jobs:
|
|||
DEBUG=2 EMULATE_HSA=1 FORWARD_ONLY=1 PYTHON=1 python3 ./test/test_linearizer.py TestLinearizer.test_tensor_cores
|
||||
DEBUG=2 EMULATE_CUDA=1 FORWARD_ONLY=1 PYTHON=1 python3 ./test/test_linearizer.py TestLinearizer.test_tensor_cores
|
||||
- name: Test dtype with Python emulator
|
||||
run: PYTHONPATH=. DEBUG=2 PYTHON=1 python3 test/test_dtype.py
|
||||
run: DEBUG=1 PYTHONPATH=. PYTHON=1 python3 test/test_dtype.py
|
||||
- name: Test ops with Python emulator
|
||||
run: DEBUG=2 PYTHON=1 python3 -m pytest test/test_ops.py -k "not (test_split or test_simple_cumsum or test_cumsum or test_einsum or test_dot or test_dot_1d or test_big_gemm or test_broadcastdot or test_multidot or test_var_axis or test_std_axis or test_broadcast_full or test_broadcast_partial or test_simple_conv3d or test_dilated_conv_transpose2d or test_simple_conv_transpose3d or test_large_input_conv2d or test_maxpool2d or test_maxpool2d_simple or test_maxpool2d_bigger_stride or test_avgpool2d or test_cat or test_scaled_product_attention or test_scaled_product_attention_causal)" --durations=20
|
||||
- name: Test symbolic with Python emulator
|
||||
|
|
|
@ -41,6 +41,13 @@ def _assert_eq(tensor:Tensor, target_dtype:DType, target):
|
|||
def _test_op(fxn, target_dtype:DType, target):
|
||||
_assert_eq(fxn(), target_dtype, target)
|
||||
def _test_cast(a:Tensor, target_dtype:DType):
|
||||
if a.is_floating_point() and dtypes.is_unsigned(target_dtype):
|
||||
# converting negative float to unsigned integer is undefined
|
||||
a = a.abs()
|
||||
if target_dtype == dtypes.half and Device.DEFAULT == "PYTHON":
|
||||
# TODO: struct.pack cannot pack value > 65504 (max of half) into e format
|
||||
a = (a > 65504).where(65504, a)
|
||||
|
||||
_test_op(lambda: a.cast(target_dtype), target_dtype, list(a.numpy().astype(target_dtype.np)))
|
||||
def _test_bitcast(a:Tensor, target_dtype:DType, target=None):
|
||||
if target_dtype == dtypes.bfloat16: raise unittest.SkipTest("no test for bf16 bitcast yet")
|
||||
|
@ -60,8 +67,7 @@ class TestDType(unittest.TestCase):
|
|||
elif cls.DTYPE == dtypes.bool:
|
||||
cls.DATA = np.random.choice([True, False], size=DATA_SIZE)
|
||||
else:
|
||||
# TODO: include negative numbers here and fix negative number cast to uint
|
||||
cls.DATA = np.random.uniform(0, 10, size=DATA_SIZE).astype(cls.DTYPE.np)
|
||||
cls.DATA = np.random.uniform(-10, 10, size=DATA_SIZE).astype(cls.DTYPE.np)
|
||||
def setUp(self):
|
||||
if self.DTYPE is None: raise unittest.SkipTest("base class")
|
||||
|
||||
|
|
Loading…
Reference in New Issue