| 1234567891011121314151617181920212223242526272829303132 |
- import numpy as np
- import os
- def generate_fp_vector(cases, filename, dtype=np.float16):
- dsize = 0
- if dtype == np.float16:
- dsize = 2
- elif dtype == np.float32:
- dsize = 4
- else:
- raise ValueError(f"Unknown dtype {dtype}")
- x = np.frombuffer(os.urandom(cases * dsize), dtype=dtype)
- y = np.frombuffer(os.urandom(cases * dsize), dtype=dtype)
- sum = x + y
- mul = x * y
- x = x.tobytes()
- y = y.tobytes()
- sum = sum.tobytes()
- mul = mul.tobytes()
- with open(filename, 'w') as f:
- for i in range(cases):
- f.write(' '.join([
- x[i*dsize:i*dsize+dsize].hex(),
- y[i*dsize:i*dsize+dsize].hex(),
- sum[i*dsize:i*dsize+dsize].hex(),
- mul[i*dsize:i*dsize+dsize].hex(),
- ]) + '\n')
- if __name__ == '__main__':
- generate_fp_vector(30, 'fp32_test.hex', dtype=np.float32)
|