use std::path::PathBuf;
use crate::backend::{CudaModelSessionConfig, CudaPlanningPolicy};
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct CudaConfig {
pub device_ordinal: usize,
pub memory_pool_release_threshold: u64,
pub nvrtc_include_paths: Vec<PathBuf>,
pub nvrtc_cache_directory: Option<PathBuf>,
pub planning: CudaPlanningPolicy,
pub model_session: CudaModelSessionConfig,
}
impl Default for CudaConfig {
fn default() -> Self {
Self {
device_ordinal: 0,
memory_pool_release_threshold: 512 * 1_024 * 1_024,
nvrtc_include_paths: vec![
PathBuf::from("/usr/local/cuda/include"),
PathBuf::from("/usr/local/cuda/include/cccl"),
],
nvrtc_cache_directory: None,
planning: CudaPlanningPolicy::default(),
model_session: CudaModelSessionConfig::default(),
}
}
}