aboutsummaryrefslogtreecommitdiff
path: root/delegate/python/test/test_external_delegate.py
diff options
context:
space:
mode:
Diffstat (limited to 'delegate/python/test/test_external_delegate.py')
-rw-r--r--delegate/python/test/test_external_delegate.py65
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"})