#![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 mtl;
#[cfg(rlx_metal_host)]
pub mod icb;
#[cfg(rlx_metal_host)]
pub mod kernels;
pub mod vmath;
#[cfg(rlx_metal_host)]
pub mod fft_dispatch;
#[cfg(rlx_metal_host)]
pub mod spd;
#[cfg(rlx_metal_host)]
pub mod hc_sinkhorn_gate;
#[cfg(rlx_metal_host)]
pub mod llada2_gate;
#[cfg(rlx_metal_host)]
pub mod ms_deform_attn;
#[cfg(rlx_metal_host)]
pub mod config;
#[cfg(rlx_metal_host)]
pub use config::{
MetalRuntimeConfig, install_runtime_config, reload_runtime_config, runtime_config,
};
#[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 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 double_single;
#[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;
#[cfg(rlx_metal_host)]
pub mod prefill_stats;
#[cfg(rlx_metal_host)]
pub mod collective;
pub mod supported_ops;
pub use supported_ops::SUPPORTED_OPS;
pub mod segmented;
pub mod kernel_plan;
#[cfg(rlx_metal_host)]
pub fn is_available() -> bool {
device::has_metal_device()
}