From: Inki Dae Date: Wed, 11 Dec 2024 09:10:24 +0000 (+0900) Subject: set user-given number of threads X-Git-Tag: accepted/tizen/9.0/unified/20250102.114432^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b79a4e1c4217fd9366bc7f15df3ab1921e4b182f;p=platform%2Fcore%2Fmultimedia%2Finference-engine-tflite.git set user-given number of threads [Version] : 0.0.9 [Issue type] : new feature Set user-given number of threads value via SetPrivateData() function. Change-Id: If55014021823fababf561285836fb7f0934b3abd Signed-off-by: Inki Dae --- diff --git a/packaging/inference-engine-tflite.spec b/packaging/inference-engine-tflite.spec index 17da402..63ba259 100644 --- a/packaging/inference-engine-tflite.spec +++ b/packaging/inference-engine-tflite.spec @@ -1,6 +1,6 @@ Name: inference-engine-tflite Summary: Tensorflow-Lite based implementation of inference-engine-interface -Version: 0.0.7 +Version: 0.0.9 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/inference_engine_tflite.cpp b/src/inference_engine_tflite.cpp index 81cdbdb..74dc0c3 100644 --- a/src/inference_engine_tflite.cpp +++ b/src/inference_engine_tflite.cpp @@ -44,7 +44,18 @@ namespace TFLiteImpl int InferenceTFLite::SetPrivateData(void *data) { - // Nothing to do yet. + if (!data) { + LOGE("private data is nullptr. It should not be nullptr."); + return INFERENCE_ENGINE_ERROR_INVALID_PARAMETER; + } + + auto private_data = static_cast(data); + + // Just skip if it's not number of threads. + if (private_data->data_type != INFERENCE_ENGINE_PRIVATE_TYPE_NUM_OF_THREADS) + return INFERENCE_ENGINE_ERROR_NONE; + + _number_of_threads = private_data->int_value; return INFERENCE_ENGINE_ERROR_NONE; } @@ -131,8 +142,14 @@ namespace TFLiteImpl } } - const char *envNumThreads = std::getenv("TFLITE_NUM_THREADS"); - int numThreads = envNumThreads ? std::atoi(envNumThreads) : MV_INFERENCE_TFLITE_MAX_THREAD_NUM; + int numThreads = MV_INFERENCE_TFLITE_MAX_THREAD_NUM; + + if (_number_of_threads > 0) { + numThreads = _number_of_threads; + } else { + const char *envNumThreads = std::getenv("TFLITE_NUM_THREADS"); + numThreads = envNumThreads ? std::atoi(envNumThreads) : MV_INFERENCE_TFLITE_MAX_THREAD_NUM; + } LOGD("numThreads : [%d]", numThreads); diff --git a/src/inference_engine_tflite_private.h b/src/inference_engine_tflite_private.h index 12e2bf3..547e7b5 100644 --- a/src/inference_engine_tflite_private.h +++ b/src/inference_engine_tflite_private.h @@ -106,6 +106,7 @@ namespace TFLiteImpl TfLiteDelegate *mDelegate {}; bool mIsDynamicTensorMode {}; + int32_t _number_of_threads {}; }; } /* InferenceEngineImpl */