mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-23 05:48:08 -05:00
11
test/external/process_replay/process_replay.py
vendored
11
test/external/process_replay/process_replay.py
vendored
@@ -2,11 +2,11 @@
|
||||
# compare kernels created by HEAD against master
|
||||
import os, multiprocessing, logging, pickle, sqlite3, difflib, functools, warnings
|
||||
from typing import Callable, cast
|
||||
from tinygrad.helpers import VERSION, Context, ContextVar, colored, db_connection, getenv, tqdm
|
||||
from tinygrad.engine.schedule import create_schedule_with_vars
|
||||
from tinygrad.helpers import VERSION, Context, ContextVar, colored, db_connection, getenv, tqdm, dedup
|
||||
from tinygrad.engine.grouper import get_becomes_map
|
||||
from tinygrad.codegen.kernel import Kernel, Opt
|
||||
from tinygrad.renderer import Renderer
|
||||
from tinygrad.ops import UOp
|
||||
from tinygrad.ops import UOp, Ops
|
||||
|
||||
# *** process replay settings
|
||||
|
||||
@@ -34,8 +34,9 @@ class ProcessReplayWarning(Warning): pass
|
||||
# *** recreators
|
||||
|
||||
def recreate_sched(big_sink:UOp) -> list[UOp]:
|
||||
sched, _, __ = create_schedule_with_vars(big_sink)
|
||||
return [x.ast for x in sched]
|
||||
sched_sink = get_becomes_map(big_sink)[0][big_sink]
|
||||
return dedup(u.src[1].arg.ast for u in sched_sink.toposort if u.op is Ops.ASSIGN)
|
||||
|
||||
def recreate_kernel(ast:UOp, opts:Renderer, applied_opts:list[Opt], name:str, _) -> str:
|
||||
k = Kernel(ast, opts=opts)
|
||||
for opt in applied_opts: k.apply_opt(opt)
|
||||
|
||||
Reference in New Issue
Block a user