Execute.WindowControl and statistics of the launch window.
type stats = Launch_window.stats = {submitted : int;JIT launches made through run/run_vectors
issued : int;backend launches actually made
*)fused_groups : int;groups of several launches issued as one kernel
*)fused_built : int;distinct fused kernels built
*)fused_refused : int;launch sequences whose fusion failed
*)}Issue every deferred launch now. Synchronisation points do this themselves; this is for callers that want the device to start early.
val stats : unit -> Launch_window.statsval defers_device : Spoc_core.Device.t -> booltrue when JIT launches on this device are deferred: its backend's window is on and it is not a CPU device (whose host-pointer buffers alias host memory, so they can alias each other).
Turn deferral on or off for every backend (flushes first). SAREK_OPT_DISABLE=window in the environment turns it off at start-up.
Turn deferral on or off for one backend (flushes first). On by default for HIP, OpenCL, Vulkan, CUDA and Metal.
true when epilogue fusion may run on this backend under the process grants (HIP, Metal; the others with Cross_kernel_contraction).
Switch epilogue fusion off or back on for one backend (flushes first); never a grant.