diff options
Diffstat (limited to 'src/runtime/CPP/SingleThreadScheduler.cpp')
-rw-r--r-- | src/runtime/CPP/SingleThreadScheduler.cpp | 31 |
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); } |