From 89ebfdd7ba78d5c7acc2585f92f30d394a23d146 Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Thu, 1 Apr 2021 17:05:58 +0900 Subject: [PATCH] [Compiler/skeleton] Set up compiler source files This patch setup compiler source files **Self evaluation:** 1. Build test: [X]Passed [ ]Failed [ ]Skipped 2. Run test: [X]Passed [ ]Failed [ ]Skipped Signed-off-by: Jihoon Lee --- jni/Android.mk | 2 ++ nntrainer/compiler/compiler.cpp | 19 +++++++++++++++++++ nntrainer/compiler/compiler.h | 21 +++++++++++++++++++++ nntrainer/compiler/meson.build | 14 ++++++++++++++ nntrainer/meson.build | 1 + test/meson.build | 18 ++++++++++++------ test/unittest/compiler/meson.build | 14 ++++++++++++++ test/unittest/compiler/unittest_compiler.cpp | 17 +++++++++++++++++ test/unittest/meson.build | 1 + 9 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 nntrainer/compiler/compiler.cpp create mode 100644 nntrainer/compiler/compiler.h create mode 100644 nntrainer/compiler/meson.build create mode 100644 test/unittest/compiler/meson.build create mode 100644 test/unittest/compiler/unittest_compiler.cpp diff --git a/jni/Android.mk b/jni/Android.mk index 5e84b71..7a71e59 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -126,6 +126,7 @@ NNTRAINER_SRCS := $(NNTRAINER_ROOT)/nntrainer/models/neuralnet.cpp \ $(NNTRAINER_ROOT)/nntrainer/utils/util_func.cpp \ $(NNTRAINER_ROOT)/nntrainer/utils/parse_util.cpp \ $(NNTRAINER_ROOT)/nntrainer/utils/profiler.cpp \ + $(NNTRAINER_ROOT)/nntrainer/compiler/compiler.cpp \ $(NNTRAINER_ROOT)/nntrainer/app_context.cpp # Add tflite backbone building @@ -141,6 +142,7 @@ NNTRAINER_INCLUDES := $(NNTRAINER_ROOT)/nntrainer \ $(NNTRAINER_ROOT)/nntrainer/optimizers \ $(NNTRAINER_ROOT)/nntrainer/utils \ $(NNTRAINER_ROOT)/nntrainer/graph \ + $(NNTRAINER_ROOT)/nntrainer/compiler \ $(NNTRAINER_ROOT)/api \ $(NNTRAINER_ROOT)/api/ccapi/include \ $(NNTRAINER_ROOT)/api/capi/include/platform diff --git a/nntrainer/compiler/compiler.cpp b/nntrainer/compiler/compiler.cpp new file mode 100644 index 0000000..ac6c90b --- /dev/null +++ b/nntrainer/compiler/compiler.cpp @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: Apache-2.0 +/** + * Copyright (C) 2021 Jihoon Lee + * + * @file compiler.cpp + * @date 01 April 2021 + * @brief NNTrainer compiler that reads and generates excutable graph + * @see https://github.com/nnstreamer/nntrainer + * @author Jihoon Lee + * @bug No known bugs except for NYI items + */ + +#include + +namespace nntrainer { + +void hello_world() { std::cout << "hello_world\n"; } + +} // namespace nntrainer diff --git a/nntrainer/compiler/compiler.h b/nntrainer/compiler/compiler.h new file mode 100644 index 0000000..c4eb04f --- /dev/null +++ b/nntrainer/compiler/compiler.h @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: Apache-2.0 +/** + * Copyright (C) 2021 Jihoon Lee + * + * @file compiler.h + * @date 01 April 2021 + * @brief NNTrainer compiler that reads and generates excutable graph + * @see https://github.com/nnstreamer/nntrainer + * @author Jihoon Lee + * @bug No known bugs except for NYI items + */ + +namespace nntrainer { + +/** + * @brief a simple scaffoliding function + * + */ +void hello_world(); + +} // namespace nntrainer diff --git a/nntrainer/compiler/meson.build b/nntrainer/compiler/meson.build new file mode 100644 index 0000000..cd2ae62 --- /dev/null +++ b/nntrainer/compiler/meson.build @@ -0,0 +1,14 @@ +compiler_sources = [ + 'compiler.cpp' +] + +compiler_headers = [] + +foreach s : compiler_sources + nntrainer_sources += meson.current_source_dir() / s +endforeach + +foreach h : compiler_headers + nntrainer_headers += meson.current_source_dir() / h +endforeach + diff --git a/nntrainer/meson.build b/nntrainer/meson.build index 5888b88..621dd0b 100644 --- a/nntrainer/meson.build +++ b/nntrainer/meson.build @@ -21,6 +21,7 @@ if build_platform == 'tizen' endif nntrainer_elements = [ + 'compiler', 'dataset', 'layers', 'models', diff --git a/test/meson.build b/test/meson.build index ee4d634..225365a 100644 --- a/test/meson.build +++ b/test/meson.build @@ -3,14 +3,11 @@ run_command('mkdir', '-p', nntrainer_test_resdir) nntrainer_test_inc = include_directories('./include') -nntrainer_test_deps = [ - nntrainer_dep -] nntrainer_testutil_lib = static_library( 'nntrainer_test_util', 'nntrainer_test_util.cpp', - dependencies: [nntrainer_test_deps], + dependencies: [nntrainer_dep], include_directories: nntrainer_test_inc ) @@ -19,8 +16,17 @@ nntrainer_testutil_dep = declare_dependency( include_directories: nntrainer_test_inc ) -nntrainer_test_deps += nntrainer_testutil_dep -nntrainer_test_deps += gtest_dep +nntrainer_test_deps = [ + nntrainer_dep, + nntrainer_testutil_dep, + gtest_dep +] + +nntrainer_test_main_deps = [ + nntrainer_dep, + nntrainer_testutil_dep, + gtest_main_dep +] if get_option('enable-capi') subdir('tizen_capi') diff --git a/test/unittest/compiler/meson.build b/test/unittest/compiler/meson.build new file mode 100644 index 0000000..b49596a --- /dev/null +++ b/test/unittest/compiler/meson.build @@ -0,0 +1,14 @@ +test_target = [ + 'unittest_compiler' +] + +foreach target: test_target + exe = executable( + target, + target + '.cpp', + dependencies: nntrainer_test_main_deps, + install: get_option('enable-test'), + install_dir: application_install_dir + ) + test(target, exe, args: ['--gtest_output=xml:@0@/@1@.xml'.format(meson.build_root(), target)] ) +endforeach diff --git a/test/unittest/compiler/unittest_compiler.cpp b/test/unittest/compiler/unittest_compiler.cpp new file mode 100644 index 0000000..ff65454 --- /dev/null +++ b/test/unittest/compiler/unittest_compiler.cpp @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: Apache-2.0 +/** + * Copyright (C) 2021 Jihoon Lee + * + * @file unittest_compiler.cpp + * @date 01 April 2021 + * @brief compiler test + * @see https://github.com/nnstreamer/nntrainer + * @author Jihoon Lee + * @bug No known bugs except for NYI items + */ + +#include + +#include + +TEST(scaffoldingTest, sampleTest) { EXPECT_NO_THROW(nntrainer::hello_world()); } diff --git a/test/unittest/meson.build b/test/unittest/meson.build index 27cf524..a8d1244 100644 --- a/test/unittest/meson.build +++ b/test/unittest/meson.build @@ -52,3 +52,4 @@ foreach target: test_target test(target, exe, args: ['--gtest_output=xml:@0@/@1@.xml'.format(meson.build_root(), target)] ) endforeach +subdir('compiler') -- 2.7.4