Autotune.DriverAn execution context: a device stream with its compilation lineage (Context.t).
A linked routine of a ctx (Context.routine).
What a compile compiles (Ir.Assignments.comp). The autotuner never inspects one: it hands it to the compiles and asks the two questions below.
Compiled code kept for a later relink_outcome (Context.retained).
A lowering cell shared by one search's compiles (Ir.Lowering_reuse.t): the cell itself is the driver's, since what it is keyed on is the driver's program.
val routine_name : routine -> Base.stringval routine_id : routine -> Base.intval routine_bindings : routine -> Ir.Indexing.lowered_bindingsThe routine's live launch-parameter cells, not copies: timing assigns and restores them.
val routine_grid : routine -> Ir.C_syntax.grid_summaryval routine_segments : routine -> Ir.Low_level.optimized Base.listval routine_mma : routine -> Ir.C_syntax.mma_summaryThe routine accessors: the name, routine_id, bindings, grid, segments and mma fields of Context.routine.
val program_name : program -> Base.string Base.optionThe name a compile given no ?name derives for the program's routine, or None where that derivation fails (the compile then refuses the program itself). Read lazily, as a diagnostic label only.
val program_nodes : program -> Base.Set.M(Ir.Tnode).tEvery node the program reads or writes; gates the bounds-blind cache rebase (gh-ocannl-1614), so it is cache-replay behaviour, not a diagnostic.
val reuse_create : Base.unit -> reuseval reuse_reseed : reuse -> Ir.Low_level.optimized -> Base.unitval compile :
?name:Base.string ->
?lowered_transform:
(Ir.Low_level.optimized -> Ir.Low_level.optimized Base.list) ->
?prelowered:Ir.Low_level.optimized ->
?reuse:reuse ->
ctx ->
program ->
Ir.Indexing.unit_bindings ->
ctx * routineval compile_outcome :
?name:Base.string ->
?lowered_transform:
(Ir.Low_level.optimized -> Ir.Low_level.optimized Base.list) ->
?prelowered:Ir.Low_level.optimized ->
?reuse:reuse ->
provenance:Ir.Schedule_outcome.provenance ->
?candidate:Base.string ->
?retain:(retained -> Base.unit) ->
ctx ->
program ->
Ir.Indexing.unit_bindings ->
(ctx * routine) Ir.Schedule_outcome.outcomeval relink_outcome : retained -> (ctx * routine) Ir.Schedule_outcome.outcomeval lowered_for_decisions :
?name:Base.string ->
?materialized:Ir.Tnode.t Base.list ->
?inline:Ir.Tnode.t Base.list ->
?footprint:Ir.Tnode.t Base.list ->
?facts:Ir.Backend_intf.backend_facts ->
?limits:Ir.Backend_intf.hardware_limits ->
ctx ->
program ->
Ir.Indexing.unit_bindings ->
Ir.Low_level.optimizedval lowered_transform_input : Ir.Low_level.optimized -> Ir.Low_level.optimizedval probe_link_floor :
?name:Base.string ->
?prelowered:Base.bool ->
ctx ->
Ir.Low_level.optimized ->
Ir.Backend_intf.link_floorval sync : ctx -> Base.unitval release : ctx -> Base.unitval check_launch_bindings : routine -> Base.unitval failure_classifier :
ctx ->
Ir.Schedule_outcome.phase ->
Base.exn ->
Ir.Schedule_outcome.classified_cause Base.optionval rollback_execution : ctx -> Base.int -> Base.unitval poison_lineage : ctx -> routine_name:Base.string -> Base.exn -> Base.unitval poisoned_failure : ctx -> Base.exn Base.optionval save_accumulation_history : ctx -> Base.unit -> Base.unitval timing_identity : ctx -> Ir.Backend_intf.timing_identity Base.optionval hardware_limits : ctx -> Ir.Backend_intf.hardware_limitsval codegen_capabilities : ctx -> Ir.Backend_intf.codegen_capabilitiesval backend_facts : ctx -> Ir.Backend_intf.backend_factsval backend_name : ctx -> Base.stringval ordinal : ctx -> Base.intval get_used_memory : ctx -> Base.intval placements : ctx -> Ir.Tnode.Placements.tval inherits_computation : ctx -> Ir.Tnode.t -> Base.boolval decide_readings :
?skip_empty:Base.bool ->
ctx ->
(Ir.Tnode.t Base.list * Ir.Tnode.t Base.list * Ir.Tnode.t Base.list) ->
ctxval mem : ctx -> Ir.Tnode.t -> Base.boolval to_host : ctx -> Ir.Tnode.t -> Ir.Ndarray.tval from_host : ctx -> Ir.Tnode.t -> Ir.Ndarray.t -> ctxThe remaining members are Context's same-named functions, with the same contracts.