-
Notifications
You must be signed in to change notification settings - Fork 313
Description
Issue: NVIDIA NPU EP Download Error
Env:
NVIDIA GeForce RTX 3060 Laptop GPU, driver version 32.0.15.7324, cuda version 12.5
windows 11 Pro, 24H2
windows Update to KB5065789(2025-09 D)
To test whether CppConsoleDesktop can automatically call the NVIDIA execution provider on a clean PC, I ran the original sample (with only minor debug prints added):
std::cout << "Getting available providers..." << std::endl;
auto catalog = winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProviderCatalog::GetDefault();
auto providers = catalog.FindAllProviders();
for (const auto& provider : providers)
{
std::wcout << L"Provider: " << provider.Name().c_str() << std::endl;
try
{
auto readyState = provider.ReadyState();
std::wcout << L" Ready state: " << static_cast<int>(readyState) << std::endl;
// Only call EnsureReadyAsync if we allow downloads or if the provider is already ready
if (allowDownload || readyState != winrt::Microsoft::Windows::AI::MachineLearning::ExecutionProviderReadyState::NotPresent)
{
std::wcout << L" Ensuring ready..." << std::endl;
provider.EnsureReadyAsync().get();
}
if (!provider.TryRegister())
{
std::wcout << L" Failed to register provider!" << std::endl;
}
else
{
std::wcout << L" Successfully registered." << std::endl;
}
}
catch (...)
{
// Continue if provider fails to initialize
}
}The app detects NvTensorRtRtxExecutionProvider in the catalog, but TryRegister() fails, and the EP is never actually downloaded or becomes usable.
Getting available providers...
Provider: NvTensorRTRTXExecutionProvider
Ready state: 2
Ensuring ready...
Failed to register provider!
ONNX Runtime Version: 1.23.2
According to the official documentation, NvTensorRtRtxExecutionProvider was released in version 1.8.14.0 via Windows Update in "2025 9D."
However, why am I not getting the execution provider (EP) properly, even though I'm using the corresponding system version?