#![allow(clippy::too_many_arguments)]
pub mod backend;
pub mod decode_affinity;
pub mod decode_numa;
pub mod decode_spmd;
pub mod dtype;
pub mod kernels;
#[cfg(feature = "mlas")]
pub mod nchwc_layout;
pub mod optimizer;
pub mod provider;
pub mod strided;
mod trace;
pub mod weight_offload;
pub use backend::CpuBackend;
pub use kernels::qmoe::WeightOffloadHostCache;
pub use optimizer::{
ConvBatchNormActivationFusion, MatMulNBitsBiasFusion, ProjectionFusion, cpu_optimization_passes,
};
pub use provider::CpuExecutionProvider;
pub use weight_offload::placement::{
ArbitrationAction, GpuLayersOverrideReport, HostFallbackReason, IqFormat, KvAdmissionDecision,
KvAdmissionLimitingFactor, LayerPlacement, LayerWeightRegions, Placement, PlacementError,
PlacementPlan, QuantTileFormat, RegionPlacement, SnappedTileSize, TileSizeError,
VramArbitrationConfig, VramArbitrationError, VramArbitrationOutcome, VramArbitrationState,
VramDemand, VramSubBudgets, arbitrate_vram, decide_kv_admission, plan_placement,
snap_transfer_tile_bytes,
};
pub use weight_offload::weight_handle::{
ExecutionProviderCapabilities, LazyDeviceWeightBinder, LazyWeight, LazyWeightBoundary,
NXRT_WEIGHT_PAGING_CAPABILITY, NegotiatedWeight, Phase3aHostOnlyBinder, ResidentWeight,
ResidentWeightMaterializer, WeightHandle, WeightHandleError,
};
pub use weight_offload::{
LinuxProcessMemoryStats, WEIGHT_OFFLOAD_ENV, WEIGHT_OFFLOAD_HOST_BYTES_ENV,
WeightOffloadLayerStats, WeightOffloadStats, set_weight_offload_host_budget,
weight_offload_stats,
};
pub use kernels::selection::non_max_suppression;
pub use kernels::slice::{SliceAxisPlan, slice_axes_steps, slice_plan};
pub use kernels::matmul_nbits::set_decode_thread_budget;
pub use kernels::matmul_nbits::bound_process_to_decode_budget;
pub use kernels::matmul_nbits::with_decode_pool_scope;