fpu_test_gen.py 906 B

1234567891011121314151617181920212223242526272829303132
  1. import numpy as np
  2. import os
  3. def generate_fp16_tb(cases, filename, dtype=np.float16):
  4. dsize = 0
  5. if dtype == np.float16:
  6. dsize = 2
  7. elif dtype == np.float32:
  8. dsize = 4
  9. else:
  10. raise ValueError(f"Unknown dtype {dtype}")
  11. x = np.frombuffer(os.urandom(cases * dsize), dtype=dtype)
  12. y = np.frombuffer(os.urandom(cases * dsize), dtype=dtype)
  13. sum = x + y
  14. mul = x * y
  15. x = x.tobytes()
  16. y = y.tobytes()
  17. sum = sum.tobytes()
  18. mul = mul.tobytes()
  19. with open(filename, 'w') as f:
  20. for i in range(cases):
  21. f.write(' '.join([
  22. x[i*dsize:i*dsize+dsize].hex(),
  23. y[i*dsize:i*dsize+dsize].hex(),
  24. sum[i*dsize:i*dsize+dsize].hex(),
  25. mul[i*dsize:i*dsize+dsize].hex(),
  26. ]) + '\n')
  27. if __name__ == '__main__':
  28. generate_fp16_tb(30, 'fp32_test.hex', dtype=np.float32)