getDefaultProvidersForPlatform method
Implementation
List<OrtProvider> getDefaultProvidersForPlatform() {
final available = getAvailableProviders();
if (Platform.isIOS || Platform.isMacOS) {
final providers = <OrtProvider>[];
if (available.contains(OrtProvider.coreML.ortName)) {
providers.add(OrtProvider.coreML);
}
providers.add(OrtProvider.cpu);
return providers;
}
if (Platform.isAndroid) {
final providers = <OrtProvider>[];
// GPU providers first (higher priority)
if (available.contains('WebGpuExecutionProvider') ||
available.contains('WebGPUExecutionProvider')) {
providers.add(OrtProvider.webGpu);
}
if (available.contains('NnapiExecutionProvider') ||
available.contains('NNAPIExecutionProvider')) {
providers.add(OrtProvider.nnapi);
}
// CPU-optimized providers
if (available.contains('XnnpackExecutionProvider') ||
available.contains('XNNPACKExecutionProvider')) {
providers.add(OrtProvider.xnnpack);
}
if (available.contains(OrtProvider.qnn.ortName)) {
providers.add(OrtProvider.qnn);
}
providers.add(OrtProvider.cpu);
return providers;
}
if (Platform.isLinux || Platform.isWindows) {
final providers = <OrtProvider>[];
if (available.contains(OrtProvider.cuda.ortName)) {
providers.add(OrtProvider.cuda);
}
if (available.contains(OrtProvider.tensorRT.ortName)) {
providers.add(OrtProvider.tensorRT);
}
if (available.contains(OrtProvider.rocm.ortName)) {
providers.add(OrtProvider.rocm);
}
if (available.contains(OrtProvider.openVINO.ortName)) {
providers.add(OrtProvider.openVINO);
}
if (available.contains(OrtProvider.dnnl.ortName)) {
providers.add(OrtProvider.dnnl);
}
providers.add(OrtProvider.cpu);
return providers;
}
return [OrtProvider.cpu];
}