#![allow(unexpected_cfgs)]
#[cfg(rlx_metal_host)]
pub mod device;
#[cfg(rlx_metal_host)]
pub mod arena;
#[cfg(rlx_metal_host)]
pub mod blas;
#[cfg(rlx_metal_host)]
pub mod mps_blas;
#[cfg(rlx_metal_host)]
pub mod mps_graph;
#[cfg(rlx_metal_host)]
pub mod mps_graph_hybrid;
#[cfg(rlx_metal_host)]
pub mod mps_graph_lower;
#[cfg(rlx_metal_host)]
pub mod mps_gelu;
#[cfg(rlx_metal_host)]
pub mod icb;
#[cfg(rlx_metal_host)]
pub mod kernels;
#[cfg(rlx_metal_host)]
pub mod fft_dispatch;
#[cfg(rlx_metal_host)]
pub mod llada2_gate;
#[cfg(rlx_metal_host)]
pub mod ms_deform_attn;
#[cfg(rlx_metal_host)]
pub mod cost;
#[cfg(rlx_metal_host)]
pub mod calibrate;
#[cfg(rlx_metal_host)]
pub mod thunk;
#[cfg(rlx_metal_host)]
pub mod backend;
#[cfg(rlx_metal_host)]
pub mod attention_bwd_gpu;
#[cfg(rlx_metal_host)]
pub mod thunk_profile;
#[cfg(rlx_metal_host)]
pub mod gpu_time;
#[cfg(rlx_metal_host)]
pub mod encode_profile;
#[cfg(rlx_metal_host)]
pub mod counter_profile;
#[cfg(rlx_metal_host)]
pub mod mps_profile;
#[cfg(all(feature = "native-splat", rlx_metal_host))]
pub mod splat_adam;
#[cfg(all(feature = "native-splat", rlx_metal_host))]
pub mod splat_native;
#[cfg(all(feature = "native-splat", rlx_metal_host))]
pub mod splat_training;
#[cfg(all(feature = "native-splat", rlx_metal_host))]
pub mod splat_training_pipeline;
#[cfg(rlx_metal_host)]
pub mod pipeline_cache;
#[cfg(rlx_metal_host)]
pub mod onnx_qmatmul;
#[cfg(rlx_metal_host)]
pub mod async_copy;
#[cfg(rlx_metal_host)]
pub mod op_registry;
pub mod segmented;
#[cfg(rlx_metal_host)]
pub fn is_available() -> bool {
device::has_metal_device()
}