beam-boot / scripts /compare_clock_encodings.py
StarAtNyte1's picture
Publish Beam Boot / Super Beam source
324ecd2 verified
Raw History Blame Contribute Delete
1.18 kB
"""Compare scalar and bipolar-binary clocks with identical seeded writes."""
import argparse
import random
import torch
from beamboot.beam_probe import BeamAttentionProbe, calibrated_gain
from beamboot.binary_time_probe import BinaryTimeProbe
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--horizons', nargs='+', type=int, default=[128, 512, 1024])
parser.add_argument('--seed', type=int, default=417)
parser.add_argument('--dtype', choices=['float32', 'float16', 'bfloat16'], default='bfloat16')
args = parser.parse_args()
dtype = getattr(torch, args.dtype)
for horizon in args.horizons:
for name, mem in [('scalar', BeamAttentionProbe(horizon, dtype, calibrated_gain(horizon))),
('binary', BinaryTimeProbe(horizon, dtype))]:
rng = random.Random(args.seed)
errors = 0
for _ in range(horizon):
a, v = rng.randrange(16), rng.randrange(16)
mem.write(a, v)
errors += mem.read(a) != v
print(f'{name} {dtype} horizon={horizon} immediate_read_errors={errors}', flush=True)
if __name__ == '__main__': main()