fn init() -> Result<(), GpuError>
Source: gpu/metal.joule:10
fn init() -> Result<(), GpuError>Source: gpu/metal.joule:10
fn list_devices() -> Vec<GpuDevice>Source: gpu/metal.joule:17
fn MTLCopyAllDevices() -> *mut std::ffi::c_void; // Returns NSArraySource: gpu/metal.joule:19
fn mtl_array_count(array: *mut std::ffi::c_void) -> usize;Source: gpu/metal.joule:20
fn mtl_array_object_at(array: *mut std::ffi::c_void, index: usize) -> *mut std::ffi::c_void;Source: gpu/metal.joule:21
fn mtl_device_name(device: *mut std::ffi::c_void) -> *const i8;Source: gpu/metal.joule:22
fn mtl_device_max_threads_per_threadgroup(device: *mut std::ffi::c_void) -> u64;Source: gpu/metal.joule:23
fn mtl_device_max_buffer_length(device: *mut std::ffi::c_void) -> u64;Source: gpu/metal.joule:24
fn mtl_device_supports_family(device: *mut std::ffi::c_void, family: i32) -> bool;Source: gpu/metal.joule:25
fn mtl_device_is_low_power(device: *mut std::ffi::c_void) -> bool;Source: gpu/metal.joule:26
fn mtl_device_is_headless(device: *mut std::ffi::c_void) -> bool;Source: gpu/metal.joule:27
fn mtl_device_recommended_max_working_set_size(device: *mut std::ffi::c_void) -> u64;Source: gpu/metal.joule:28
fn get_metal_version() -> StringGet Metal version string
Source: gpu/metal.joule:130
fn NSProcessInfo_operatingSystemVersionString() -> *const i8;Source: gpu/metal.joule:135
fn default_device() -> Option<*mut std::ffi::c_void>Get default Metal device
Source: gpu/metal.joule:148
fn MTLCreateSystemDefaultDevice() -> *mut std::ffi::c_void;Source: gpu/metal.joule:150
fn create_command_queue(device: *mut std::ffi::c_void) -> Option<*mut std::ffi::c_void>Create a new command queue for a device
Source: gpu/metal.joule:166
fn mtl_device_new_command_queue(Source: gpu/metal.joule:168
fn create_command_buffer(Create a new command buffer
Source: gpu/metal.joule:182
fn mtl_command_queue_command_buffer(Source: gpu/metal.joule:186
fn commit_and_wait(buffer: *mut std::ffi::c_void)Commit and wait for command buffer
Source: gpu/metal.joule:200
fn mtl_command_buffer_commit(buffer: *mut std::ffi::c_void);Source: gpu/metal.joule:202
fn mtl_command_buffer_wait_until_completed(buffer: *mut std::ffi::c_void);Source: gpu/metal.joule:203
fn create_compute_encoder(Create compute encoder
Source: gpu/metal.joule:213
fn mtl_command_buffer_compute_command_encoder(Source: gpu/metal.joule:217
fn set_pipeline(encoder: *mut std::ffi::c_void, pipeline: *mut std::ffi::c_void)Set compute pipeline state
Source: gpu/metal.joule:231
fn mtl_compute_encoder_set_pipeline(Source: gpu/metal.joule:233
fn set_buffer(Set buffer at index
Source: gpu/metal.joule:243
fn mtl_compute_encoder_set_buffer(Source: gpu/metal.joule:250
fn dispatch_threads(Dispatch threads
Source: gpu/metal.joule:262
fn mtl_compute_encoder_dispatch_threadgroups(Source: gpu/metal.joule:268
fn end_encoding(encoder: *mut std::ffi::c_void)End encoding
Source: gpu/metal.joule:285
fn mtl_compute_encoder_end_encoding(encoder: *mut std::ffi::c_void);Source: gpu/metal.joule:287
fn matrix_multiply(Source: gpu/metal.joule:300
fn mps_matrix_multiplication_create(Source: gpu/metal.joule:310
fn mps_matrix_multiplication_encode(Source: gpu/metal.joule:321
fn convolution_2d(Source: gpu/metal.joule:350
fn mps_cnn_convolution_create(Source: gpu/metal.joule:358
fn compile(Source: gpu/metal.joule:391
fn mtl_compile_library(Source: gpu/metal.joule:396
fn get_function(Get function from library
Source: gpu/metal.joule:418
fn mtl_library_new_function(Source: gpu/metal.joule:423
fn create_pipeline(Create compute pipeline state
Source: gpu/metal.joule:442
fn mtl_device_new_compute_pipeline(Source: gpu/metal.joule:447