diff options
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/CpuContext.cpp | 6 | ||||
-rw-r--r-- | src/cpu/CpuContext.h | 1 | ||||
-rw-r--r-- | src/cpu/CpuQueue.cpp | 48 | ||||
-rw-r--r-- | src/cpu/CpuQueue.h | 56 |
4 files changed, 111 insertions, 0 deletions
diff --git a/src/cpu/CpuContext.cpp b/src/cpu/CpuContext.cpp index d62c1b6310..b9a6999f84 100644 --- a/src/cpu/CpuContext.cpp +++ b/src/cpu/CpuContext.cpp @@ -24,6 +24,7 @@ #include "src/cpu/CpuContext.h" #include "arm_compute/core/CPP/CPPTypes.h" +#include "src/cpu/CpuQueue.h" #include "src/cpu/CpuTensor.h" #include "src/runtime/CPUUtils.h" @@ -196,5 +197,10 @@ ITensorV2 *CpuContext::create_tensor(const AclTensorDescriptor &desc, bool alloc } return tensor; } + +IQueue *CpuContext::create_queue(const AclQueueOptions *options) +{ + return new CpuQueue(this, options); +} } // namespace cpu } // namespace arm_compute diff --git a/src/cpu/CpuContext.h b/src/cpu/CpuContext.h index d2062e4bdd..e909767a7b 100644 --- a/src/cpu/CpuContext.h +++ b/src/cpu/CpuContext.h @@ -69,6 +69,7 @@ public: // Inherrited methods overridden ITensorV2 *create_tensor(const AclTensorDescriptor &desc, bool allocate) override; + IQueue *create_queue(const AclQueueOptions *options) override; private: AllocatorWrapper _allocator; diff --git a/src/cpu/CpuQueue.cpp b/src/cpu/CpuQueue.cpp new file mode 100644 index 0000000000..0f0097b3f4 --- /dev/null +++ b/src/cpu/CpuQueue.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "src/cpu/CpuQueue.h" + +#include "arm_compute/runtime/Scheduler.h" + +namespace arm_compute +{ +namespace cpu +{ +CpuQueue::CpuQueue(IContext *ctx, const AclQueueOptions *options) + : IQueue(ctx) +{ + ARM_COMPUTE_UNUSED(options); +} + +arm_compute::IScheduler &CpuQueue::scheduler() +{ + return arm_compute::Scheduler::get(); +} + +StatusCode CpuQueue::finish() +{ + return StatusCode::Success; +} +} // namespace cpu +} // namespace arm_compute diff --git a/src/cpu/CpuQueue.h b/src/cpu/CpuQueue.h new file mode 100644 index 0000000000..871a36c85b --- /dev/null +++ b/src/cpu/CpuQueue.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef SRC_CPU_CPUQUEUE_H +#define SRC_CPU_CPUQUEUE_H + +#include "src/common/IQueue.h" + +#include "arm_compute/runtime/IScheduler.h" + +namespace arm_compute +{ +namespace cpu +{ +/** CPU queue implementation class */ +class CpuQueue final : public IQueue +{ +public: + /** Construct a new CpuQueue object + * + * @param[in] ctx Context to be used + * @param[in] options Command queue options + */ + CpuQueue(IContext *ctx, const AclQueueOptions *options); + /** Return legacy scheduler + * + * @return arm_compute::IScheduler& + */ + arm_compute::IScheduler &scheduler(); + + // Inherited functions overridden + StatusCode finish() override; +}; +} // namespace cpu +} // namespace arm_compute +#endif /* SRC_CPU_CPUQUEUE_H */ |