#[cfg(feature = "cuda")]
pub mod tensor;
#[cfg(feature = "cuda")]
pub mod arch;
#[cfg(feature = "cuda")]
pub mod weight_store;
#[cfg(feature = "cuda")]
pub mod cublas;
#[cfg(feature = "cuda")]
pub mod kernels;
#[cfg(feature = "cuda")]
pub mod kv_cache;
#[cfg(feature = "cuda")]
pub mod compute;
#[cfg(feature = "cuda")]
pub mod generate;
#[cfg(feature = "cuda")]
pub mod streams;
#[cfg(feature = "cuda")]
pub mod batch;
#[cfg(feature = "cuda")]
pub mod speculative;
#[cfg(feature = "cuda")]
pub mod lazy_layers;
#[cfg(feature = "cuda")]
pub mod lazy_weight_store;
#[cfg(feature = "cuda")]
pub mod lazy_generate;
#[cfg(feature = "cuda")]
pub mod tiered;
#[cfg(feature = "cuda")]
pub mod tiered_generate;
#[cfg(feature = "cuda")]
pub use tensor::GpuTensor;
#[cfg(feature = "cuda")]
pub use arch::{ModelArch, ModelConfig};
#[cfg(feature = "cuda")]
pub use weight_store::WeightStore;
#[cfg(feature = "cuda")]
pub use compute::ComputeEngine;
#[cfg(feature = "cuda")]
pub use generate::{Generator, SamplingParams};
#[cfg(feature = "cuda")]
pub use streams::StreamManager;
#[cfg(feature = "cuda")]
pub use batch::{BatchScheduler, BatchStats, Request, RequestState};
#[cfg(feature = "cuda")]
pub use speculative::{SpeculativeConfig, SpeculativeDecoder, VerificationResult};
#[cfg(feature = "cuda")]
pub use lazy_layers::{HoloLayerLoader, LayerLoader, LazyLayerStats, LazyLayerStore};
#[cfg(feature = "cuda")]
pub use lazy_weight_store::{LazyWeightConfig, LazyWeightStore};
#[cfg(feature = "cuda")]
pub use lazy_generate::LazyGenerator;
#[cfg(feature = "cuda")]
pub use tiered::{
create_loader, EagerLoader, LoadingStrategy, ProgressiveLoader, TieredConfig, TieredError,
TieredStats, TieredWeightStore, WeightLoader,
};
#[cfg(feature = "cuda")]
pub use tiered_generate::TieredGenerator;
#[derive(Debug, thiserror::Error)]
pub enum InferenceError {
#[error("CUDA device error: {0}")]
Device(String),
#[error("Kernel execution error: {0}")]
Kernel(String),
#[error("Memory allocation error: {0}")]
Memory(String),
#[error("cuBLAS error: {0}")]
CuBlas(String),
#[error("Shape mismatch: expected {expected}, got {got}")]
Shape {
expected: String,
got: String,
},
#[error("Model loading error: {0}")]
ModelLoad(String),
#[error("Unsupported architecture: {0}")]
UnsupportedArch(String),
#[error("Generation error: {0}")]
Generation(String),
#[error("Tokenizer error: {0}")]
Tokenizer(String),
#[error("Invalid parameter: {0}")]
InvalidParam(String),
}
#[cfg(all(test, feature = "cuda"))]
mod tests;