onnxruntime/docs/tutorials/mobile/using-nnapi-coreml-with-ort-mobile.md
Edward Chen 3c9ca35f93
[Docs] Update mobile docs for 1.9 (#9237)
* Edgchen1/objc api reference 1.9 (#1)

* Update Objective-C API reference for 1.9.

* Update spelling.

* Test link changes.

* Fix links.

* Fix links and updates in mobile-performance-tuning.md.

* Fix links in tutorials/mobile/custom-build.md.

* Fix

* Fix

* Fix links in docs/tutorials/mobile/initial-setup.md.

* Fix links.

* Update note.

* Add 1.9 op type support page.

* Add nav info to page.

* Rename files to not have spaces.
2021-10-04 15:48:53 -07:00

2.4 KiB

title parent grand_parent nav_order
Enabling NNAPI or CoreML Execution Providers Deploy ONNX Runtime Mobile Tutorials 6

Using NNAPI and CoreML with ONNX Runtime Mobile

  • Usage of NNAPI on Android platforms is via the NNAPI Execution Provider (EP).
  • Usage of CoreML on iOS and macOS platforms is via the CoreML EP.

The pre-built ONNX Runtime Mobile package includes the NNAPI EP on Android, and the CoreML EP on iOS.

If performing a custom build of ONNX Runtime, support for the NNAPI EP or CoreML EP must be enabled when building.

Create a minimal build with NNAPI EP or CoreML EP support

Please see the instructions for setting up the Android or iOS environment required to build. The Android build can be cross-compiled on Windows or Linux. The iOS/macOS build must be performed on a mac machine.

Once you have all the necessary components setup, follow the instructions to create the custom build, with the following changes:

  • Replace --minimal_build with --minimal_build extended to enable support for execution providers that dynamically create kernels at runtime, which is required by the NNAPI EP and CoreML EP.
  • Add --use_nnapi to include the NNAPI EP in the build
  • Add --use_coreml to include the CoreML EP in the build
Example build commands with the NNAPI EP enabled:
  • Windows example: <ONNX Runtime repository root>.\build.bat --config MinSizeRel --android --android_sdk_path D:\Android --android_ndk_path D:\Android\ndk\21.1.6352462\ --android_abi arm64-v8a --android_api 29 --cmake_generator Ninja --minimal_build extended --use_nnapi --disable_ml_ops --disable_exceptions --build_shared_lib --skip_tests --include_ops_by_config <config file from model conversion>
  • Linux example: <ONNX Runtime repository root>./build.sh --config MinSizeRel --android --android_sdk_path /Android --android_ndk_path /Android/ndk/21.1.6352462/ --android_abi arm64-v8a --android_api 29 --minimal_build extended --use_nnapi --disable_ml_ops --disable_exceptions --build_shared_lib --skip_tests --include_ops_by_config <config file from model conversion>

Next: Limitations