tflite: mtk_neuron: Add ParallelInference test

Rauru NPU has multiple cores (MDLAs, and MVPUs),
we want to see if Rauru NPU can utilize this feature
to allow multiple model running at the same time.

This CL add a test case trying to send two models to NPU
at the same time. These two models are expected to utilize
only one MDLA and one MVPU, so, in theory, they can be run
in parallel.

My tests show that the time difference between the two inference
is usually around 11%, which should indicate that we can run
models in parallel.

BUG=b:374245241
TEST=neuron_delegate_test on navi

Change-Id: I905fa9efbeafed24a182814ce3edefd5372e0ca4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/tflite/+/6437794
Commit-Queue: Tommy Chiang <ototot@google.com>
Reviewed-by: Shik Chen <shik@chromium.org>
Tested-by: Tommy Chiang <ototot@google.com>
1 file changed
tree: 8a995754684b1b97a883f91898a2ee48e2ef2ad3
  1. android/
  2. common/
  3. delegate/
  4. patch/
  5. script/
  6. tool/
  7. udev/
  8. .bazelignore
  9. .bazelrc
  10. .bazelversion
  11. .clang-format
  12. .gitignore
  13. BUILD.bazel
  14. CPPLINT.cfg
  15. DIR_METADATA
  16. OWNERS
  17. PRESUBMIT.cfg
  18. README.md
  19. WORKSPACE.bazel
README.md

ChromeOS TFLite

This repository hosts the core ChromeOS TFLite components, enabling on-device machine learning (ODML) workloads accelerated by NPU.

The corresponding ebuild can be found at: tensorflow-9999.ebuild

TensorFlow Patch Management

Patches are stored in the patch/ directory and explicitly listed in WORKSPACE.bazel. A helper script, ./script/patcher.py, is included to facilitate patch management within a TFLite workspace.

The typical workflow:

  1. Eject (Download) TensorFlow Source Code

    Download the TensorFlow source code into a local git repository with patches applied as individual commits:

    ./script/patcher.py eject
    

    This creates a new local git repository at tensorflow/.

  2. Modify the TensorFlow Repository

    Make changes to the tensorflow/ repository as needed, following standard git workflows. Optionally, include a PATCH_NAME= tag in commit messages to specify the filename of the corresponding patch.

  3. Seal the Repository

    Regenerate the patch files and update the WORKSPACE.bazel file:

    ./script/patcher.py seal
    

    This updates the patches in the patch/ directory and reflects the changes in WORKSPACE.bazel.

It's preferred to submit changes to upstream TensorFlow first and cherry-pick them as patches. This helps minimize divergence and makes TensorFlow updates easier.