fix: skip ROCm EP registration when not available in ORT build
Some checks failed
release / build (push) Failing after 3s

Eliminates the spurious ERROR log from ORT when ROCm isn't compiled in.
Checks is_available() before attempting registration so the session
correctly falls back to CPU without noise.
This commit is contained in:
Breadway 2026-06-07 15:53:06 +08:00
parent 708eb8f3b4
commit 478d06a5d5
3 changed files with 16 additions and 10 deletions

View file

@ -247,12 +247,18 @@ fn try_load_session(
path: &std::path::Path,
) -> (Option<ort::session::Session>, 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) => {