#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum OnnxExecutionProvider {
Cuda,
DirectMl,
CoreMl,
Cpu,
}
impl OnnxExecutionProvider {
pub fn auto_detect() -> Self {
if cfg!(target_os = "macos") {
OnnxExecutionProvider::CoreMl
} else {
OnnxExecutionProvider::Cpu
}
}
}
impl std::fmt::Display for OnnxExecutionProvider {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Cuda => write!(f, "CUDA"),
Self::DirectMl => write!(f, "DirectML"),
Self::CoreMl => write!(f, "CoreML"),
Self::Cpu => write!(f, "CPU"),
}
}
}