diff options
author | Jan Eilers <jan.eilers@arm.com> | 2020-12-15 10:42:38 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2021-01-22 11:48:34 +0000 |
commit | 2cd184763ff7f8767e751f2fe0c461714350aae6 (patch) | |
tree | 048a95b2b571bfa3ad03eceb5dd4ccd4d0a70c06 /delegate/python/test/test_external_delegate.py | |
parent | d672f5d4386dc0545d2e484ce85b76d53edb6bc9 (diff) | |
download | armnn-2cd184763ff7f8767e751f2fe0c461714350aae6.tar.gz |
IVGCVSW-5571 Expose the TfLite Delegate to the TfLite python API
* Implemented external delegate adaptor interface for TfLite
* Activated armnn logging for delegate
* Added logging info to indicate if gpu tuning is turned on
* Added pytests to ensure functionality of the external delegate adaptor
* Included the delegate directory into doxygen
* Added documentation on how to use the external delegate in python
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: Id3b4588fb0b9ac7e3f47ba2c19feead7beb58e18
Diffstat (limited to 'delegate/python/test/test_external_delegate.py')
-rw-r--r-- | delegate/python/test/test_external_delegate.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/delegate/python/test/test_external_delegate.py b/delegate/python/test/test_external_delegate.py new file mode 100644 index 0000000000..995de8cd70 --- /dev/null +++ b/delegate/python/test/test_external_delegate.py @@ -0,0 +1,65 @@ +# Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +# SPDX-License-Identifier: MIT + +import pytest +import tflite_runtime.interpreter as tflite +import os +from utils import run_mock_model + + +def test_external_delegate_unknown_options(delegate_dir): + print(delegate_dir) + with pytest.raises(ValueError): + tflite.load_delegate( + delegate_dir, + options={"wrong": "wrong"}) + + +def test_external_delegate_options_multiple_backends(delegate_dir): + tflite.load_delegate( + delegate_dir, + options={"backends": "GpuAcc,CpuAcc,CpuRef,Unknown"}) + + +@pytest.mark.GpuAccTest +def test_external_delegate_options_gpu_tuning(delegate_dir, test_data_folder, tmp_path): + + tuning_file = os.path.join(str(tmp_path), "test_gpu.tuning") + # cleanup previous test run if necessary + if os.path.exists(tuning_file): + os.remove(tuning_file) + + # with tuning level 2 a tuning file should be created + armnn_delegate = tflite.load_delegate( + delegate_dir, + options={ + "backends": "GpuAcc", + "gpu-tuning-level": "2", + "gpu-tuning-file": tuning_file, + "logging-severity": "info"}) + + run_mock_model(armnn_delegate, test_data_folder) + + # destroy delegate, otherwise tuning file won't be written to file + armnn_delegate.__del__() + assert (os.path.exists(tuning_file)) + + # if no tuning level is provided it defaults to 0 which means it will use the tuning parameters from a tuning + # file if one is provided + armnn_delegate2 = tflite.load_delegate( + delegate_dir, + options={ + "backends": "GpuAcc", + "gpu-tuning-file": tuning_file, + "logging-severity": "info"}) + + run_mock_model(armnn_delegate2, test_data_folder) + + # cleanup + os.remove(tuning_file) + +def test_external_delegate_options_wrong_logging_level(delegate_dir): + with pytest.raises(ValueError): + tflite.load_delegate( + delegate_dir, + options={"logging-severity": "wrong"}) |