Metal.DeviceRepresents the GPU device capable of executing Metal commands. See MTLDevice.
val sexp_of_t : t -> Sexplib0.Sexp.tval create_system_default : unit -> tReturns the default Metal device for the system. See MTLCreateSystemDefaultDevice.
val copy_all_devices : unit -> t arrayReturns an array of all the Metal device instances in the system. See MTLCopyAllDevices.
module GPUFamily : sig ... endRepresents a Metal GPU family, categorizing devices by feature set and capability. See MTLGPUFamily.
val supports_family : t -> GPUFamily.t -> boolChecks if the device supports the specified GPU family. See supportsFamiliy:.
module ArgumentBuffersTier : sig ... endDescribes the level of support for argument buffers. See MTLArgumentBuffersTier.
type attributes = {name : string;registry_id : Unsigned.ULLong.t;max_threads_per_threadgroup : Size.t;max_buffer_length : Unsigned.ULong.t;max_threadgroup_memory_length : Unsigned.ULong.t;argument_buffers_support : ArgumentBuffersTier.t;recommended_max_working_set_size : Unsigned.ULLong.t;is_low_power : bool;is_removable : bool;is_headless : bool;has_unified_memory : bool;peer_count : Unsigned.ULong.t;peer_group_id : Unsigned.ULLong.t;supported_gpu_families : GPUFamily.t list;}val sexp_of_attributes : attributes -> Sexplib0.Sexp.tMetal device attributes relevant for compute tasks.
val get_attributes : t -> attributesFetches the static compute-relevant attributes of the device.