
* fix.. speed_limit error... * draw tpms settings. * fix.. traffic light stopping only.. * fix.. waze cam * fix.. waze... * add setting (Enable comma connect ) * auto detect LFA2 * fix.. cruisespeed1 * vff2 driving model. * fix.. * agnos 12.3 * fix.. * ff * ff * test * ff * fix.. drawTurnInfo.. * Update drive_helpers.py * fix.. support eng voice eng sounds fix settings... english fix.. mph.. fix.. roadlimit speed bug.. * new vff model.. 250608 * fix soundd.. * fix safe exit speed.. * fix.. sounds. * fix.. radar timeStep.. * KerryGold model * Update drive_helpers.py * fix.. model. * fix.. * fix.. * Revert "fix.." This reverts commit b09ec459afb855c533d47fd7e8a1a6b1a09466e7. * Revert "fix.." This reverts commit 290bec6b83a4554ca232d531a911edccf94a2156. * fix esim * add more acc table. 10kph * kg update.. * fix cruisebutton mode3 * test atc..cond. * fix.. canfd * fix.. angle control limit
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import random
|
|
from extra.optimization.helpers import load_worlds, ast_str_to_lin
|
|
from tinygrad.engine.search import actions
|
|
from tinygrad.codegen.kernel import Kernel
|
|
from tinygrad.codegen.heuristic import hand_coded_optimizations
|
|
from tinygrad.helpers import tqdm
|
|
|
|
tactions = set()
|
|
def test_rebuild(lin):
|
|
linr = Kernel(lin.ast)
|
|
for o in lin.applied_opts:
|
|
assert o in actions, f"{o} is not in actions"
|
|
tactions.add(o)
|
|
linr.apply_opt(o)
|
|
|
|
assert len(lin.sts) == len(linr.sts)
|
|
for st1,st2 in zip(lin.sts, linr.sts):
|
|
assert st1 == st2, f"{st1} != {st2}"
|
|
|
|
if __name__ == "__main__":
|
|
ast_strs = load_worlds(False, False, False)
|
|
random.shuffle(ast_strs)
|
|
ast_strs = ast_strs[:2000]
|
|
for ast_str in tqdm(ast_strs):
|
|
lin = ast_str_to_lin(ast_str)
|
|
#if not lin.apply_tensor_cores():
|
|
lin.apply_opts(hand_coded_optimizations(lin))
|
|
test_rebuild(lin)
|
|
# confirm linearize can be called twice
|
|
uops1 = lin.linearize().uops
|
|
uops2 = lin.linearize().uops
|
|
for x,y in zip(uops1, uops2):
|
|
# for some reason DEFINE_ACC is changing the arg
|
|
if x.op != y.op or x.dtype != y.dtype: # or x.arg != y.arg:
|
|
uops1.print()
|
|
uops2.print()
|
|
raise Exception(f"UOPS MISMATCH {x} {y}")
|
|
|
|
print(len(tactions), len(actions))
|
|
print(sorted(list(tactions)))
|