#[derive(Clone, Debug, PartialEq)]
pub enum PlatformType {
Nvidia,
Apple,
Jetson,
Intel,
Amd,
AmdGpu,
Tenstorrent,
Rebellions,
Furiosa,
Gaudi,
}
impl PlatformType {
pub fn from_str(platform_str: &str) -> Self {
match platform_str.to_lowercase().as_str() {
"nvidia" => PlatformType::Nvidia,
"apple" => PlatformType::Apple,
"jetson" => PlatformType::Jetson,
"intel" => PlatformType::Intel,
"amd" => PlatformType::Amd,
"amdgpu" | "amd-gpu" | "amd_gpu" => PlatformType::AmdGpu,
"tenstorrent" | "tt" => PlatformType::Tenstorrent,
"rebellions" | "rbln" => PlatformType::Rebellions,
"furiosa" => PlatformType::Furiosa,
"gaudi" | "habana" => PlatformType::Gaudi,
_ => {
eprintln!("Unknown platform '{platform_str}', defaulting to nvidia");
PlatformType::Nvidia
}
}
}
}