| # 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"}) |