diff --git a/Cargo.lock b/Cargo.lock index d08b439..59a39e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -314,7 +314,7 @@ dependencies = [ [[package]] name = "breadman" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "breadpad-shared", @@ -331,7 +331,7 @@ dependencies = [ [[package]] name = "breadpad" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "breadpad-shared", @@ -350,7 +350,7 @@ dependencies = [ [[package]] name = "breadpad-shared" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "bread-theme", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "breadpad-test" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "breadpad-shared", diff --git a/Cargo.toml b/Cargo.toml index 5ec24f9..9c26f19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT" authors = ["Breadway"] diff --git a/breadpad-shared/src/classifier.rs b/breadpad-shared/src/classifier.rs index fef87e0..e752a31 100644 --- a/breadpad-shared/src/classifier.rs +++ b/breadpad-shared/src/classifier.rs @@ -247,12 +247,18 @@ fn try_load_session( path: &std::path::Path, ) -> (Option, ExecutionProvider) { // Try ROCm (iGPU) first, fall back to CPU. - match build_onnx_session(path, ort::ep::ROCm::default().build()) { - Ok(s) => { - tracing::info!("ONNX session loaded (ROCm iGPU)"); - return (Some(s), ExecutionProvider::Gpu); + let rocm_available = { + use ort::execution_providers::ExecutionProvider as _; + ort::ep::ROCm::default().is_available().unwrap_or(false) + }; + if rocm_available { + match build_onnx_session(path, ort::ep::ROCm::default().build()) { + Ok(s) => { + tracing::info!("ONNX session loaded (ROCm iGPU)"); + return (Some(s), ExecutionProvider::Gpu); + } + Err(e) => tracing::debug!("ROCm EP unavailable: {}; trying CPU", e), } - Err(e) => tracing::debug!("ROCm EP unavailable: {}; trying CPU", e), } match build_onnx_session(path, ort::ep::CPU::default().build()) { Ok(s) => {