Backend_intf.Deviceinclude Device_typesinclude Device_configinclude Device_config_commonval sexp_of_dev : dev -> Sexplib0.Sexp.tval sexp_of_runner : runner -> Sexplib0.Sexp.tAn event tracks if a stream finished computing past a particular point in its schedue. These values are used internally for scheduling across streams of the backend, and can be used for explicit scheduling.
val sexp_of_event : event -> Sexplib0.Sexp.tThe optimization context for compiling code, in particular Low_level.optimize_ctx for low-level backends.
val sexp_of_optimize_ctx : optimize_ctx -> Sexplib0.Sexp.tval empty_optimize_ctx : Base.unit -> optimize_ctxtype nonrec device = (buffer_ptr, dev, runner, event) deviceval sexp_of_device : device -> Sexplib0.Sexp.ttype nonrec stream = (buffer_ptr, dev, runner, event) streamval sexp_of_stream : stream -> Sexplib0.Sexp.ttype nonrec context = (buffer_ptr, stream, optimize_ctx) contextval sexp_of_context : context -> Sexplib0.Sexp.tinclude Alloc_buffer
with type buffer_ptr := buffer_ptr
and type stream := streaminclude Buffer with type buffer_ptr := buffer_ptrval sexp_of_buffer_ptr : buffer_ptr -> Sexplib0.Sexp.tinclude sig ... endtype nonrec buffer = buffer_ptr bufferval sexp_of_buffer : buffer -> Sexplib0.Sexp.ttype nonrec ctx_arrays = buffer_ptr ctx_arraysval sexp_of_ctx_arrays : ctx_arrays -> Sexplib0.Sexp.tval alloc_array : Ops.prec -> dims:Base.int Base.array -> stream -> buffer_ptrval alloc_zeros : Ops.prec -> dims:Base.int Base.array -> stream -> buffer_ptrval free_buffer : (stream -> buffer_ptr -> Base.unit) Base.optionval make_context :
?ctx_arrays:ctx_arrays ->
?optimize_ctx:optimize_ctx ->
stream ->
contextReturns a context without a parent.
val make_child :
?ctx_arrays:ctx_arrays ->
?optimize_ctx:optimize_ctx ->
context ->
contextReturns a context with the same Backend_intf.context.stream, and Backend_intf.context.ctx_arrays, Backend_intf.context.optimize_ctx if omitted, as the given context's, which is also the Backend_intf.context.parent.
val get_name : stream -> Base.string