Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Most execution providers in Windows ML are dynamically acquired via Windows Update at runtime as seen in initialize execution providers, and updated versions are automatically updated (with compatible updates) as described in update execution providers, meaning the version of the EP might vary over time.
See the supported execution providers docs to see what execution providers are available and their release history.
Check your end-user's EP version
You can programmatically check the version of an execution provider (EP) that's present on the device by inspecting the PackageId property on ExecutionProvider.
If the EP is not yet present, PackageId will return null.
// Get all EPs compatible with this device
var providers = ExecutionProviderCatalog.GetDefault().FindAllProviders();
// For each provider
foreach (var provider in providers)
{
// Log the name
Debug.WriteLine($"Windows ML EP: {provider.Name}");
// Log the version
if (provider.PackageId != null)
{
var v = provider.PackageId.Version;
Debug.WriteLine($"Version: {v.Major}.{v.Minor}.{v.Build}.{v.Revision}");
}
else
{
Debug.WriteLine("Version: Not installed");
}
}
On a device with the QNN EP installed, this code outputs the following...
Windows ML EP: QNNExecutionProvider
Version: 1.8.27.0
Check your own device's EP version
You can also easily check which version of an EP is installed on your development device by using PowerShell.
Get-AppxPackage MicrosoftCorporationII.WinML.*
On a device with the QNN EP installed, this outputs the following...
Name : MicrosoftCorporationII.WinML.Qualcomm.QNN.EP.1.8
Publisher : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : Arm64
ResourceId :
Version : 1.8.27.0
...