fullWorkAmount *= dims_out[i];
}
+ isDynBatchEnabled = config.dynBatchSupport;
+
size_t minimalConcurrency = parallel_get_max_threads();
size_t minimalJitWorkAmount = 256;
size_t currentJitWorkAmount = dims_out[dims_out.size() - 1];
int collapsedDims = 0;
if (canUseOptimizedImpl) {
bool hasDifferentDims = false;
- while (currentJitWorkAmount < minimalJitWorkAmount) {
+ while (currentJitWorkAmount < minimalJitWorkAmount && currentJitWorkAmount < fullWorkAmount &&
+ // we shouldn't collapse batch dimension in case dynamic batch is enabled
+ (!isDynBatchEnabled || (config.outConfs[0].desc.getBlockingDesc().getBlockDims().size() - collapsedDims > 2))) {
if (dims_out.size() - collapsedDims - 2 < 0)
break;
}
}
- isDynBatchEnabled = config.dynBatchSupport;
batchDimIdx = tensorRank - config.outConfs[0].desc.getBlockingDesc().getBlockDims().size() + collapsedDims;
schedulerWorkAmount = fullWorkAmount / dims_out[dims_out.size() - 1];
::testing::Values(additional_config));
INSTANTIATE_TEST_CASE_P(smoke_CompareWithRefs, EltwiseLayerTest, multiply_params, EltwiseLayerTest::getTestCaseName);
+
+
+std::vector<std::vector<std::vector<size_t>>> inShapesSingleThread = {
+ {{1, 2, 3, 4}},
+ {{2, 2, 2, 2}},
+ {{2, 1, 2, 1, 2, 2}}
+};
+
+std::vector<ngraph::helpers::EltwiseTypes> eltwiseOpTypesSingleThread = {
+ ngraph::helpers::EltwiseTypes::ADD,
+ ngraph::helpers::EltwiseTypes::POWER,
+};
+
+std::map<std::string, std::string> additional_config_single_thread = {
+ {"CPU_THREADS_NUM", "1"}
+};
+
+const auto single_thread_params = ::testing::Combine(
+ ::testing::ValuesIn(inShapesSingleThread),
+ ::testing::ValuesIn(eltwiseOpTypesSingleThread),
+ ::testing::ValuesIn(secondaryInputTypes),
+ ::testing::ValuesIn(opTypes),
+ ::testing::ValuesIn(netPrecisions),
+ ::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
+ ::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
+ ::testing::Values(InferenceEngine::Layout::ANY),
+ ::testing::Values(CommonTestUtils::DEVICE_CPU),
+ ::testing::Values(additional_config_single_thread));
+
+INSTANTIATE_TEST_CASE_P(smoke_SingleThread, EltwiseLayerTest, single_thread_params, EltwiseLayerTest::getTestCaseName);
+
+
} // namespace
\ No newline at end of file