package arrayjit

  1. Overview
  2. Docs

Module Backends.Sync_backendSource

A minimalisitc wrapper creating backends where all calls run synchronously on the main thread. There is only one physical device, but as always an arbitrary number of virtual devices.

Parameters

Signature

Sourcetype buffer_ptr = Backend.buffer_ptr
Sourceval sexp_of_buffer_ptr : buffer_ptr -> Sexplib0.Sexp.t
Sourcetype device = {
  1. subordinal : Base.int;
  2. merge_buffer : (buffer_ptr * Tnode.t) Base.option Base.ref;
  3. mutable allocated_buffer : (buffer_ptr * Base.int) Base.option;
}
Sourceval sexp_of_device : device -> Sexplib0.Sexp.t
Sourceval alloc_buffer : ?old_buffer:(Backend.buffer_ptr * Base.int) -> size_in_bytes:Base.int -> 'a -> Backend.buffer_ptr
Sourcetype physical_device =
  1. | CPU
Sourceval sexp_of_physical_device : physical_device -> Sexplib0.Sexp.t
Sourcetype code = Backend.code
Sourceval sexp_of_code : code -> Sexplib0.Sexp.t
Sourcetype code_batch = Backend.code_batch
Sourceval sexp_of_code_batch : code_batch -> Sexplib0.Sexp.t
Sourceval expected_merge_node : code -> Tnode.t Base.option
Sourceval expected_merge_nodes : code_batch -> Tnode.t Base.option Base.array
Sourceval is_idle : 'a -> bool
Sourceval await : 'a -> unit
Sourceval global_run_no : int Base.ref
Sourcetype context = {
  1. device : device;
  2. ctx : Backend.context;
  3. expected_merge_node : Tnode.t Base.option;
}
Sourceval sexp_of_context : context -> Sexplib0.Sexp.t
Sourceval sexp_of_routine : routine -> Sexplib0.Sexp.t
Sourceval init : device -> context
Sourceval is_initialized : Base.unit -> Base.bool
Sourceval finalize : context -> Base.unit
Sourceval compile_batch : ?shared:Base.bool -> ?names:Base.string Base.array -> ?occupancy:(name:Base.string -> src_n:Base.int -> Base.bool) -> Indexing.unit_bindings -> Assignments.t Base.array -> Backend.code_batch
Sourceval get_name : device -> string
Sourceval from_host : context -> Tnode.t -> bool
Sourceval to_host : context -> Tnode.t -> bool
Sourceval device_to_device : Tnode.t -> into_merge_buffer:Backend_utils.Types.merge_buffer_use -> dst:context -> src:context -> bool
Sourceval num_physical_devices : unit -> int
Sourceval suggested_num_virtual_devices : 'a -> int
Sourceval next_virtual_device_id : int Base.ref
Sourceval unsafe_cleanup : unit -> Base.unit
Sourceval get_device : ordinal:int -> physical_device
Sourceval new_virtual_device : physical_device -> device
Sourceval get_physical_device : 'a -> physical_device
Sourceval get_ctx_device : context -> device
Sourceval to_ordinal : 'a -> int
Sourceval to_subordinal : device -> Base.int
Sourceval to_buffer : Tnode.t -> dst:Backend.buffer_ptr -> src:context -> Base.unit
Sourceval host_to_buffer : Ndarray.t -> dst:Backend.buffer_ptr -> Base.unit
Sourceval buffer_to_host : Ndarray.t -> src:Backend.buffer_ptr -> Base.unit
OCaml

Innovation. Community. Security.