123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128# 1 "rune/lib/metal/rune_metal.missing.ml"(* This file is selected when nx.metal is not available *)letis_available=falseletnot_available()=failwith"Metal backend is not available on this platform"typecontext=unittype('a,'b)t=unitletcreate_context()=not_available()letview_t=not_available()letdtype_t=not_available()letcontext_t=not_available()letdata_t=not_available()letop_buffer_t=not_available()letop_const_scalar_t=not_available()letop_const_array_t=not_available()letop_add_t=not_available()letop_mul_t=not_available()letop_idiv_t=not_available()letop_fdiv_t=not_available()letop_max_t=not_available()letop_mod_t=not_available()letop_pow_t=not_available()letop_cmplt_t=not_available()letop_cmpne_t=not_available()letop_xor_t=not_available()letop_or_t=not_available()letop_and_t=not_available()letop_neg_t=not_available()letop_log2_t=not_available()letop_exp2_t=not_available()letop_sin_t=not_available()letop_sqrt_t=not_available()letop_recip_t=not_available()letop_where_t=not_available()letop_reduce_sum~axes:_~keepdims:__t=not_available()letop_reduce_max~axes:_~keepdims:__t=not_available()letop_reduce_prod~axes:_~keepdims:__t=not_available()letop_expand_t=not_available()letop_reshape_t=not_available()letop_permute_t=not_available()letop_pad_t=not_available()letop_shrink_t=not_available()letop_flip_t=not_available()letop_unfold_t~kernel_size:_~stride:_~dilation:_~padding:_=not_available()letop_fold_t~output_size:_~kernel_size:_~stride:_~dilation:_~padding:_=not_available()letop_matmul_a_b=not_available()letop_cat_t=not_available()letop_cast_t=not_available()letop_contiguous_t=not_available()letop_copy_t=not_available()letop_assign_t=not_available()letop_threefry_t=not_available()letop_gather_t=not_available()letop_scatter?mode:_?unique_indices:__ctx_src_index_src_data=not_available()(* Stub JIT backend when Metal is not available *)moduleJit_backend:Rune_jit.Backend_intf.S=structletname="STUB_BACKEND"typedevice_info=unittypedevice_buffer_native=unittypecompiled_artifact_native=unittypecallable_kernel_native=unittypenonrec'adevice_buffer=('a,device_buffer_native)Rune_jit.Backend_intf.device_buffertypenonrecany_device_buffer=device_buffer_nativeRune_jit.Backend_intf.any_device_buffertypenonreccompiled_artifact=compiled_artifact_nativeRune_jit.Backend_intf.compiled_artifacttypenonreccallable_kernel=callable_kernel_nativeRune_jit.Backend_intf.callable_kernelmoduleDevice_info=structletget_default()=not_available()letmax_shared_memory_=not_available()letmax_workgroup_size_=not_available()letsupports_dtype__=not_available()letrenderer_float4_str_=not_available()letrenderer_smem_prefix_=not_available()letrenderer_barrier_str_=not_available()endmoduleRenderer=structletrender~device_info:_~lowered_ir:_~kernel_name:_=not_available()endmoduleCompiler=structtypecompile_options=unitletdefault_options_=not_available()letcompile~device_info:_~source_code:_~options:_=not_available()endmoduleRuntime=structletallocate_buffer~device_info:_~size_in_bytes:_~dtype:_=not_available()letcopy_to_device~dest_buffer:_~host_data:_~host_data_offset_bytes:_~copy_size_bytes:_=not_available()letcopy_from_device~src_buffer:_~host_dest_ptr:_~device_data_offset_bytes:_~copy_size_bytes:_=not_available()letget_kernel~artifact:_~kernel_name:_=not_available()letlaunch_kernel?local_dims:_~device_info:_~global_dims:_~args:__=not_available()letsynchronize~device_info:_=not_available()endend