summaryrefslogtreecommitdiff
path: root/nn/runtime/test/TestOpenmpSettings.cpp
diff options
context:
space:
mode:
authorMika Raento <mikie@google.com>2018-06-04 16:43:25 +0100
committerMika Raento <mikie@google.com>2018-06-04 16:47:40 +0100
commitfed420cab2704afb2beb69577dbe75392954a57e (patch)
tree1968264443ad14bd6a54b5b9713ac3736a4c5896 /nn/runtime/test/TestOpenmpSettings.cpp
parentce54aa2438d52ccee56f4f78e7f815d92ca9a0ce (diff)
downloadml-fed420cab2704afb2beb69577dbe75392954a57e.tar.gz
Openmp blocktime 1->20ms to keep cores enabled
With 1ms blocktime the benchmark app shows 3x performance degradation on Pixel 2 in float benchmarks (against no blocktime setting). In testing, 10ms was enough to give results comparable to no setting. 20ms was chosen as to have a 2x margin of safety while not keeping the threads busywaiting unnecessarily long. Bug: 109645291 Test: NeuralNetworksTest_static/*Openmp* Test: Run benchmark app multiple times Change-Id: Id2a909f6aefdbe29dd746019c2c9541e31d8c754
Diffstat (limited to 'nn/runtime/test/TestOpenmpSettings.cpp')
-rw-r--r--nn/runtime/test/TestOpenmpSettings.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/nn/runtime/test/TestOpenmpSettings.cpp b/nn/runtime/test/TestOpenmpSettings.cpp
index a021f8db1..3c42bcd99 100644
--- a/nn/runtime/test/TestOpenmpSettings.cpp
+++ b/nn/runtime/test/TestOpenmpSettings.cpp
@@ -38,26 +38,28 @@ protected:
ASSERT_EQ(blocktimeRestored, kOpenmpDefaultBlockTime);
}
static const int kOpenmpDefaultBlockTime;
+ static const int kPreferredBlockTime;
};
const int OpenmpSettingsTest::kOpenmpDefaultBlockTime = 200;
+const int OpenmpSettingsTest::kPreferredBlockTime = 20;
using ::android::nn::ScopedOpenmpSettings;
-TEST_F(OpenmpSettingsTest, Test1) {
+TEST_F(OpenmpSettingsTest, TestkPreferredBlockTime) {
ScopedOpenmpSettings s;
const int blocktimeSet = kmp_get_blocktime();
- ASSERT_EQ(blocktimeSet, 1);
+ ASSERT_EQ(blocktimeSet, kPreferredBlockTime);
}
TEST_F(OpenmpSettingsTest, Test2) {
ScopedOpenmpSettings s1;
const int blocktimeSet1 = kmp_get_blocktime();
- ASSERT_EQ(blocktimeSet1, 1);
+ ASSERT_EQ(blocktimeSet1, kPreferredBlockTime);
ScopedOpenmpSettings s2;
const int blocktimeSet2 = kmp_get_blocktime();
- ASSERT_EQ(blocktimeSet2, 1);
+ ASSERT_EQ(blocktimeSet2, kPreferredBlockTime);
}
TEST_F(OpenmpSettingsTest, TestThreaded) {
@@ -76,12 +78,12 @@ TEST_F(OpenmpSettingsTest, TestThreaded) {
ScopedOpenmpSettings s;
const int blocktimeSet1 = kmp_get_blocktime();
- ASSERT_EQ(blocktimeSet1, 1);
+ ASSERT_EQ(blocktimeSet1, kPreferredBlockTime);
usleep(sleepFor);
const int blocktimeSet2 = kmp_get_blocktime();
- ASSERT_EQ(blocktimeSet2, 1);
+ ASSERT_EQ(blocktimeSet2, kPreferredBlockTime);
}));
}
std::for_each(threads.begin(), threads.end(), [](std::thread& t) {