[Test] add test for TRIV 2.3 profiler
authorYelin Jeong <yelini.jeong@samsung.com>
Wed, 21 Dec 2022 04:25:42 +0000 (13:25 +0900)
committer추지호/NPU Lab(SR)/삼성전자 <jiho.chu@samsung.com>
Thu, 22 Dec 2022 04:39:54 +0000 (13:39 +0900)
This patch adds test for triv2.3 profiler

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
tests/testdata/meson.build
tests/testdata/triv2.3.rec [deleted file]
tests/testdata/triv2.3_13.rec [new file with mode: 0644]
tests/unittests/ne_core_profiler_emul_test.cc

index b883863a8b5ccbfb71b947e62858dbb27f821bc9..476326511590b8e8e506de32fb35bc24b8fa53b3 100644 (file)
@@ -1,3 +1,3 @@
-install_data(sources : 'triv2.3.rec', install_dir : join_paths(ne_bindir, 'testdata'))
+install_data(sources : 'triv2.3_13.rec', install_dir : join_paths(ne_bindir, 'testdata'))
 install_data(sources : 'triv2.4_dlp_284_485.rec', install_dir : join_paths(ne_bindir, 'testdata'))
 install_data(sources : 'triv2.4_nodlp_284.rec', install_dir : join_paths(ne_bindir, 'testdata'))
diff --git a/tests/testdata/triv2.3.rec b/tests/testdata/triv2.3.rec
deleted file mode 100644 (file)
index 29e974c..0000000
Binary files a/tests/testdata/triv2.3.rec and /dev/null differ
diff --git a/tests/testdata/triv2.3_13.rec b/tests/testdata/triv2.3_13.rec
new file mode 100644 (file)
index 0000000..29e974c
Binary files /dev/null and b/tests/testdata/triv2.3_13.rec differ
index 165d11b8a0d1f819b4c9c2bcfa39be7bf4dfacee..cce56c509c24874eae167656513e7e80068b5873 100644 (file)
@@ -17,6 +17,7 @@
 
 #define REC_PATH NE_BINDIR "/testdata/triv2.4_nodlp_284.rec"
 #define DLP_REC_PATH NE_BINDIR "/testdata/triv2.4_dlp_284_485.rec"
+#define REC_PATH_23 NE_BINDIR "/testdata/triv2.3_13.rec"
 
 /**
  * @brief check mergeProfile
@@ -28,25 +29,20 @@ TEST (ne_core_profiler_test, merge_profile) {
   ASSERT_GT (num_devices, 0);
 
   auto api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
-  ModelProfiler *profiler = new ModelProfiler (api.get ());
   ASSERT_NE (api.get (), nullptr);
 
+  std::unique_ptr<ModelProfiler> profiler (new ModelProfiler (api.get ()));
+
   npu_profile profile = {0};
 
-  if (!std::ifstream (REC_PATH)) {
-    printf ("no rec file %s found\n", REC_PATH);
-    return;
-  }
+  ASSERT_TRUE (std::ifstream (REC_PATH)) << "no rec file " << REC_PATH << " found";
 
   ret = profiler->getProfile (1, opt_visa, &profile, REC_PATH);
   ASSERT_EQ (ret, 0);
 
   npu_profile profile_dlp = {0};
 
-  if (!std::ifstream (DLP_REC_PATH)) {
-    printf ("no rec file %s found\n", DLP_REC_PATH);
-    return;
-  }
+  ASSERT_TRUE (std::ifstream (DLP_REC_PATH)) << "no rec file " << DLP_REC_PATH << " found";
 
   ret = profiler->getProfile (1, opt_visa, &profile_dlp, DLP_REC_PATH);
   ASSERT_EQ (ret, 0);
@@ -58,7 +54,7 @@ TEST (ne_core_profiler_test, merge_profile) {
 }
 
 /**
- * @brief check mergeProfile
+ * @brief check PROFILE_LEVEL_VISA_DLP
  */
 TEST (ne_core_profiler_test, profile_level_visa_dlp) {
   const npu_profile_opt opt_dlp = {.level = PROFILE_LEVEL_VISA_DLP};
@@ -68,24 +64,45 @@ TEST (ne_core_profiler_test, profile_level_visa_dlp) {
   ASSERT_GT (num_devices, 0);
 
   auto api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
-  ModelProfiler *profiler = new ModelProfiler (api.get ());
   ASSERT_NE (api.get (), nullptr);
 
+  std::unique_ptr<ModelProfiler> profiler (new ModelProfiler (api.get ()));
+
   npu_profile profile_dlp = {0};
   npu_profile profile_visa = {0};
 
-  if (!std::ifstream (DLP_REC_PATH)) {
-    printf ("no rec file %s found\n", DLP_REC_PATH);
-    return;
-  }
+  ASSERT_TRUE (std::ifstream (DLP_REC_PATH)) << "no rec file " << DLP_REC_PATH << " found";
 
   ret = profiler->getProfile (1, opt_dlp, &profile_dlp, DLP_REC_PATH);
   ASSERT_EQ (ret, 0);
   ASSERT_EQ (profile_dlp.num_layers, 485);
 
   ret = profiler->getProfile (1, opt_visa, &profile_visa, DLP_REC_PATH);
-  ASSERT_EQ (ret, 0);
-  ASSERT_EQ (profile_visa.num_layers, 284);
+  EXPECT_EQ (ret, 0);
+  EXPECT_EQ (profile_visa.num_layers, 284);
+}
+
+/**
+ * @brief check triv 2.3 profile
+ */
+TEST (ne_core_profiler_test, profile_TRIV23) {
+  const npu_profile_opt opt_visa = {.level = PROFILE_LEVEL_VISA};
+
+  int ret, num_devices = DriverAPI::getNumDevices (NPUCOND_TRIV2_CONN_SOCIP);
+  ASSERT_GT (num_devices, 0);
+
+  auto api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
+  ASSERT_NE (api.get (), nullptr);
+
+  std::unique_ptr<ModelProfiler> profiler (new ModelProfiler (api.get ()));
+
+  npu_profile profile_visa = {0};
+
+  ASSERT_TRUE (std::ifstream (REC_PATH_23)) << "no rec file " << REC_PATH_23 << " found";
+
+  ret = profiler->getProfile (1, opt_visa, &profile_visa, REC_PATH_23);
+  EXPECT_EQ (ret, 0);
+  EXPECT_EQ (profile_visa.num_layers, 13);
 }
 
 /**