aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CPP/SingleThreadScheduler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/CPP/SingleThreadScheduler.cpp')
-rw-r--r--src/runtime/CPP/SingleThreadScheduler.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/runtime/CPP/SingleThreadScheduler.cpp b/src/runtime/CPP/SingleThreadScheduler.cpp
index 660a79652c..c46a2731d8 100644
--- a/src/runtime/CPP/SingleThreadScheduler.cpp
+++ b/src/runtime/CPP/SingleThreadScheduler.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 ARM Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -37,23 +37,38 @@ void SingleThreadScheduler::set_num_threads(unsigned int num_threads)
void SingleThreadScheduler::schedule(ICPPKernel *kernel, const Hints &hints)
{
- const Window &max_window = kernel->window();
- const unsigned int num_iterations = max_window.num_iterations(hints.split_dimension());
- if(num_iterations < 1)
+ const Window &max_window = kernel->window();
+
+ if (hints.split_dimension() != IScheduler::split_dimensions_all)
{
- return;
+ const unsigned int num_iterations = max_window.num_iterations(hints.split_dimension());
+ if (num_iterations < 1)
+ {
+ return;
+ }
}
ThreadInfo info;
- info.cpu_info = &_cpu_info;
+ info.cpu_info = &cpu_info();
kernel->run(kernel->window(), info);
}
+void SingleThreadScheduler::schedule_op(ICPPKernel *kernel,
+ const Hints &hints,
+ const Window &window,
+ ITensorPack &tensors)
+{
+ ARM_COMPUTE_UNUSED(hints);
+ ThreadInfo info;
+ info.cpu_info = &cpu_info();
+ kernel->run_op(tensors, window, info);
+}
+
void SingleThreadScheduler::run_workloads(std::vector<Workload> &workloads)
{
ThreadInfo info;
- info.cpu_info = &_cpu_info;
- for(auto &wl : workloads)
+ info.cpu_info = &cpu_info();
+ for (auto &wl : workloads)
{
wl(info);
}