From 768b325b79d75b8157ce332ae6d2c4844c05a390 Mon Sep 17 00:00:00 2001 From: Hyeongseok Oh Date: Wed, 12 Jun 2024 19:03:40 +0900 Subject: [PATCH 1/2] [onert] Update deprecated API implementation This commit updates deprecated API implementation to use common function. It includes unittest for deprecated API. ONE-DCO-1.0-Signed-off-by: Hyeongseok Oh --- .../api/nnfw/include/nnfw_experimental.h | 11 +++++++-- runtime/onert/api/nnfw/src/nnfw_api.cc | 18 ++++++-------- .../onert/api/nnfw/src/nnfw_api_internal.cc | 24 +++++-------------- .../onert/api/nnfw/src/nnfw_api_internal.h | 6 ++--- .../src/NNPackageTests/SingleSession.test.cc | 8 +++++++ 5 files changed, 32 insertions(+), 35 deletions(-) diff --git a/runtime/onert/api/nnfw/include/nnfw_experimental.h b/runtime/onert/api/nnfw/include/nnfw_experimental.h index 92e2601acf0..7f7f157f4fb 100644 --- a/runtime/onert/api/nnfw/include/nnfw_experimental.h +++ b/runtime/onert/api/nnfw/include/nnfw_experimental.h @@ -116,10 +116,13 @@ NNFW_STATUS nnfw_output_tensorindex(nnfw_session *session, const char *tensornam */ NNFW_STATUS nnfw_set_backends_per_operation(nnfw_session *session, const char *backend_settings); -/* - * Prepare session to be ready for inference +/** + * @brief Prepare session to be ready for inference + * * This phase may finalize model compilation, scheduling, and additional settings. * + * @deprecated Deprecated since 1.22.1 + * * @param session the session to be prepared * @return NNFW_STATUS_NO_ERROR if successful */ @@ -132,6 +135,8 @@ NNFW_STATUS nnfw_prepare_pipeline(nnfw_session *session, const char *map_file_pa * function can be reused for many inferences. \p lengths must be greater or equal than the operand * requires. if you give empty \p inputs to this function, then this function will join all threads. * + * @deprecated Deprecated since 1.22.1 + * * @param[in] session Session to the input is to be set * @param[in] inputs Raw buffers for input, it must be \p std::vector type pointer for * multiple input model @@ -148,6 +153,8 @@ NNFW_STATUS nnfw_push_pipeline_input(nnfw_session *session, void *inputs, void * * This function must be called after {@link nnfw_prepare_pipeline}, \p outputs given to this * function must be cleared for memory management. * + * @deprecated Deprecated since 1.22.1 + * * @param[in] session Session from last outputs is to be extracted * @param[out] outputs Raw buffer for outputs, it must be \p std::vector type pointer for * multiple output model diff --git a/runtime/onert/api/nnfw/src/nnfw_api.cc b/runtime/onert/api/nnfw/src/nnfw_api.cc index c728d305e4a..82d274bc9b2 100644 --- a/runtime/onert/api/nnfw/src/nnfw_api.cc +++ b/runtime/onert/api/nnfw/src/nnfw_api.cc @@ -270,7 +270,7 @@ NNFW_STATUS nnfw_register_custom_op_info(nnfw_session *session, const char *id, NNFW_STATUS nnfw_apply_tensorinfo(nnfw_session *, uint32_t, nnfw_tensorinfo) { - return NNFW_STATUS_DEPRECATED_API; + return nnfw_session::deprecated("nnfw_apply_tensorinfo: Deprecated"); } NNFW_STATUS nnfw_set_input_tensorinfo(nnfw_session *session, uint32_t index, @@ -365,23 +365,19 @@ NNFW_STATUS nnfw_set_backends_per_operation(nnfw_session *session, const char *b return session->set_backends_per_operation(backend_settings); } -NNFW_STATUS nnfw_prepare_pipeline(nnfw_session *session, const char *map_file_path) +NNFW_STATUS nnfw_prepare_pipeline(nnfw_session *, const char *) { - NNFW_RETURN_ERROR_IF_NULL(session); - return session->prepare_pipeline(map_file_path); + return nnfw_session::deprecated("nnfw_prepare_pipeline: Deprecated"); } -NNFW_STATUS nnfw_push_pipeline_input(nnfw_session *session, void *inputs, void *lengths) +NNFW_STATUS nnfw_push_pipeline_input(nnfw_session *, void *, void *) { - NNFW_RETURN_ERROR_IF_NULL(session); - return session->push_pipeline_input((std::vector *)inputs, - (std::vector *)lengths); + return nnfw_session::deprecated("nnfw_apply_tensorinfo: Deprecated"); } -NNFW_STATUS nnfw_pop_pipeline_output(nnfw_session *session, void *outputs) +NNFW_STATUS nnfw_pop_pipeline_output(nnfw_session *, void *) { - NNFW_RETURN_ERROR_IF_NULL(session); - return session->pop_pipeline_output((std::vector *)outputs); + return nnfw_session::deprecated("nnfw_apply_tensorinfo: Deprecated"); } NNFW_STATUS nnfw_set_workspace(nnfw_session *session, const char *dir) diff --git a/runtime/onert/api/nnfw/src/nnfw_api_internal.cc b/runtime/onert/api/nnfw/src/nnfw_api_internal.cc index 6238f811253..6d0fd52dc94 100644 --- a/runtime/onert/api/nnfw/src/nnfw_api_internal.cc +++ b/runtime/onert/api/nnfw/src/nnfw_api_internal.cc @@ -511,12 +511,6 @@ NNFW_STATUS nnfw_session::prepare() return NNFW_STATUS_NO_ERROR; } -NNFW_STATUS nnfw_session::prepare_pipeline(const char *) -{ - std::cerr << "Pipeline prepare_pipeline: deprecated feature " << std::endl; - return NNFW_STATUS_ERROR; -} - NNFW_STATUS nnfw_session::run() { if (!isStatePreparedOrFinishedRun()) @@ -870,18 +864,6 @@ NNFW_STATUS nnfw_session::output_tensorinfo(uint32_t index, nnfw_tensorinfo *ti) return NNFW_STATUS_NO_ERROR; } -NNFW_STATUS nnfw_session::push_pipeline_input(std::vector *, std::vector *) -{ - std::cerr << "Pipeline push_pipeline_input: deprecated feature " << std::endl; - return NNFW_STATUS_ERROR; -} - -NNFW_STATUS nnfw_session::pop_pipeline_output(std::vector *) -{ - std::cerr << "Pipeline pop_pipeline_output: deprecated feature " << std::endl; - return NNFW_STATUS_ERROR; -} - NNFW_STATUS nnfw_session::register_custom_operation(const std::string &id, nnfw_custom_eval eval_func) { @@ -982,6 +964,12 @@ NNFW_STATUS nnfw_session::set_workspace(const char *dir) return NNFW_STATUS_NO_ERROR; } +NNFW_STATUS nnfw_session::deprecated(const char *msg) +{ + std::cerr << msg << std::endl; + return NNFW_STATUS_DEPRECATED_API; +} + NNFW_STATUS nnfw_session::set_config(const char *key, const char *value) { if (!isStateModelLoaded()) diff --git a/runtime/onert/api/nnfw/src/nnfw_api_internal.h b/runtime/onert/api/nnfw/src/nnfw_api_internal.h index 5518ef9db89..e298d6a7795 100644 --- a/runtime/onert/api/nnfw/src/nnfw_api_internal.h +++ b/runtime/onert/api/nnfw/src/nnfw_api_internal.h @@ -123,7 +123,6 @@ struct nnfw_session ~nnfw_session(); NNFW_STATUS load_model_from_nnpackage(const char *package_file_path); NNFW_STATUS prepare(); - NNFW_STATUS prepare_pipeline(const char *map_file_path); NNFW_STATUS run(); NNFW_STATUS run_async(); @@ -148,6 +147,8 @@ struct nnfw_session NNFW_STATUS set_workspace(const char *dir); + static NNFW_STATUS deprecated(const char *msg); + // // Internal-only API // @@ -160,9 +161,6 @@ struct nnfw_session // // Experimental API // - NNFW_STATUS push_pipeline_input(std::vector *inputs, std::vector *lengths); - NNFW_STATUS pop_pipeline_output(std::vector *outputs); - NNFW_STATUS register_custom_operation(const std::string &id, nnfw_custom_eval eval_func); NNFW_STATUS input_tensorindex(const char *tensorname, uint32_t *index); NNFW_STATUS output_tensorindex(const char *tensorname, uint32_t *index); diff --git a/tests/nnfw_api/src/NNPackageTests/SingleSession.test.cc b/tests/nnfw_api/src/NNPackageTests/SingleSession.test.cc index 912dadf20bf..3fb2d37785e 100644 --- a/tests/nnfw_api/src/NNPackageTests/SingleSession.test.cc +++ b/tests/nnfw_api/src/NNPackageTests/SingleSession.test.cc @@ -129,3 +129,11 @@ TEST_F(ValidationTestSingleSession, neg_internal_set_config) ASSERT_EQ(nnfw_set_config(nullptr, "TRACING_MODE", "0"), NNFW_STATUS_UNEXPECTED_NULL); ASSERT_EQ(nnfw_set_config(nullptr, "GRAPH_DOT_DUMP", "0"), NNFW_STATUS_UNEXPECTED_NULL); } + +TEST_F(ValidationTestSessionCreated, neg_deprecated_api) +{ + EXPECT_EQ(nnfw_apply_tensorinfo(nullptr, 0, nnfw_tensorinfo{}), NNFW_STATUS_DEPRECATED_API); + EXPECT_EQ(nnfw_prepare_pipeline(nullptr, nullptr), NNFW_STATUS_DEPRECATED_API); + EXPECT_EQ(nnfw_push_pipeline_input(nullptr, nullptr, nullptr), NNFW_STATUS_DEPRECATED_API); + EXPECT_EQ(nnfw_pop_pipeline_output(nullptr, nullptr), NNFW_STATUS_DEPRECATED_API); +} From 5b2960813330c22308fc9493e01964f6e4c13462 Mon Sep 17 00:00:00 2001 From: Hyeongseok Oh Date: Thu, 13 Jun 2024 10:10:52 +0900 Subject: [PATCH 2/2] Fix typo Co-authored-by: Jang Jiseob --- runtime/onert/api/nnfw/src/nnfw_api.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/onert/api/nnfw/src/nnfw_api.cc b/runtime/onert/api/nnfw/src/nnfw_api.cc index 82d274bc9b2..4be0a2d6b1b 100644 --- a/runtime/onert/api/nnfw/src/nnfw_api.cc +++ b/runtime/onert/api/nnfw/src/nnfw_api.cc @@ -372,12 +372,12 @@ NNFW_STATUS nnfw_prepare_pipeline(nnfw_session *, const char *) NNFW_STATUS nnfw_push_pipeline_input(nnfw_session *, void *, void *) { - return nnfw_session::deprecated("nnfw_apply_tensorinfo: Deprecated"); + return nnfw_session::deprecated("nnfw_push_pipeline_input: Deprecated"); } NNFW_STATUS nnfw_pop_pipeline_output(nnfw_session *, void *) { - return nnfw_session::deprecated("nnfw_apply_tensorinfo: Deprecated"); + return nnfw_session::deprecated("nnfw_pop_pipeline_output: Deprecated"); } NNFW_STATUS nnfw_set_workspace(nnfw_session *session, const char *dir)