| 12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env python3
- import os
- #os.environ['OMP_NUM_THREADS'] = '1'
- import time
- import numpy as np
- N = 512
- if __name__ == "__main__":
- # N^2
- A = np.random.randn(N, N).astype(np.float32)
- # N^2
- B = np.random.randn(N, N).astype(np.float32)
- # 2N compute in N^2 output cells
- flop = 2*N*N*N
- #print(f"{flop / 1e9:.2f} GFLOP")
- for i in range(10):
- st = time.monotonic()
- C = A @ B.T
- et = time.monotonic()
- s = et-st
- print(f"{flop/s * 1e-9:.2f} GFLOP/S, {s*1e3:.2f} ms")
- with open("/tmp/matmul", "wb") as f:
- f.write(A.data)
- f.write(B.data)
- f.write(C.data)
|