You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ONNX Runtime GPU版本无GPU设备时能否自动降级使用CPU?

ONNX Runtime GPU版自动 fallback 到CPU的支持情况

ONNX Runtime的GPU版NuGet包默认不会自动在无GPU设备上切换到CPU运行,但官方提供了成熟的机制来实现你需要的“有GPU则用GPU,无则用CPU”的边缘部署需求。

实现逻辑步骤

  • 检测GPU可用性:通过ONNX Runtime提供的API判断当前设备是否支持GPU执行提供者(比如CUDA、DirectML)。例如在C#中,可以调用OrtEnvironment.Instance.GetAvailableProviders()获取所有可用的执行提供者列表,检查是否包含CUDAExecutionProvider或DirectMLExecutionProvider。
  • 动态配置执行提供者:根据检测结果,在创建InferenceSession时选择性添加执行提供者。如果GPU可用,优先添加GPU执行提供者;否则仅添加CPU执行提供者。

代码示例(C#)

using Microsoft.ML.OnnxRuntime;

var sessionOptions = new SessionOptions();
var availableProviders = OrtEnvironment.Instance.GetAvailableProviders();

// 优先使用GPU(以CUDA为例)
if (availableProviders.Contains("CUDAExecutionProvider"))
{
    sessionOptions.AppendExecutionProvider_CUDA();
}
else
{
    // 无GPU时使用CPU
    sessionOptions.AppendExecutionProvider_CPU();
}

// 创建推理会话
using var session = new InferenceSession("your_model.onnx", sessionOptions);
// 后续推理逻辑...

官方说明

官方推荐这种显式检测+动态配置的方式,因为不同边缘场景对 fallback 的策略可能存在差异(比如部分场景需要强制使用GPU并抛出错误),显式处理能让开发者更精准地控制行为,同时避免自动 fallback 带来的潜在性能问题或意外错误。

内容的提问来源于stack exchange,提问作者Tullhead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:35:26