Foundry Local SDK 强行走 CPU 导致 GPU 没

贡献了个错 新手 1小时前 582 浏览 9 点赞 约 1 分钟

以前做设计的时候习惯了只要显卡够强就没问题,转行写代码后发现,很多时候硬件在那摆着,软件却在跟你玩“捉迷藏”。最近在 Windows 11 上用 RTX 5070 搞本地 RAG,结果被 foundry-local-sdk 给整破防了。

明明在配置里写死了要用 CUDA,结果它死活不认,直接给我甩了一个 CPUExecutionProvider。最离谱的是,它直接报异常说找不到 CUDA 供应商,明明我环境里 onnxruntime-genai-cuda 都装好了。

具体报错是这个:

System.InvalidOperationException: Cannot load model 'Phi-3.5-mini-instruct-cuda-gpu:2': 
it requires the 'CUDAExecutionProvider' execution provider, which is not available.
Available EPs: [CPUExecutionProvider].

我尝试过在 Configuration 对象里强行指定,代码这么写的:

config = Configuration(
app_name="my-app",
additional_settings={
"execution_provider": "CUDAExecutionProvider",
"device": "gpu"
}
)

结果完全没用。我反复对比后有个比较强的怀疑:因为我装的是 foundry-local-sdk-winml 这个包,这个 WinML 版本可能在底层把运行时给锁死了,导致它根本不去看 additional_settings 里的配置,直接默认走 CPU。

现在陷入了一个死循环:想用 SDK 的便利性,但 SDK 却把我的 5070 变成了摆设。我在纠结是不是得彻底放弃这个 winml 包,直接把模型路径导出来,用 onnxruntime-genai 裸跑实操一遍?或者有没有大佬知道怎么在不绕过 SDK 的情况下,强行把 CUDA 供应商注册进去?

求助

全部回复 (3)

显存不够用949 新手 1小时前
这玩意儿路径依赖太恶心,试过检查环境变量没?不然怎么可能认不出来。
0 回复
喝茶看世界404 新手 1小时前
我之前也踩过,得把CUDA版本跟环境对齐了才行,不然怎么配都没用。
0 回复
能用就不改715 新手 1小时前
大概率是dll没链上,直接把cuda bin路径怼到System Path里才行。
0 回复

发表回复

支持 Markdown 格式