Spoc_core.Devicetype t = Spoc_framework.Device_type.t = {id : int;backend_id : int;name : string;framework : string;capabilities : Spoc_framework.Framework_sig.capabilities;}Device type from SDK
val devices : t array Stdlib.refDevice initialization state
val init : ?frameworks:string list -> unit -> t arrayInitialize all available backends and enumerate devices
val all : unit -> t arrayGet all initialized devices
val get : int -> t optionGet device by global ID
val first : unit -> t optionGet first available device (if any)
val by_framework : string -> t arrayFilter devices by framework
val with_fp64 : unit -> t arrayFilter devices by capability
val best : unit -> t optionGet the best device (first CUDA, then OpenCL, then Native)
val to_string : t -> stringPretty-print device info
val is_cuda : t -> boolval is_opencl : t -> boolval is_native : t -> boolval is_cpu : t -> boolval is_gpu : t -> boolval allows_fp64 : t -> boolval supports_atomics : t -> boolval compute_capability : t -> int * intval warp_size : t -> intval max_threads_per_block : t -> intval max_block_dims : t -> int * int * intval max_grid_dims : t -> int * int * intval total_memory : t -> int64val multiprocessor_count : t -> intval clock_rate_khz : t -> intval max_registers_per_block : t -> intval filter_cuda : unit -> t arrayval filter_opencl : unit -> t arrayval filter_native : unit -> t arrayval with_atomics : unit -> t arrayval with_min_memory : int64 -> t arrayval with_compute_capability : major:int -> minor:int -> t arrayval free_memory : t -> int64 optionQuery current free memory on device (if supported by backend)
val synchronize : t -> unitval set_current : t -> unit