diff options
Diffstat (limited to 'src/cpu/kernels/CpuPool2dKernel.h')
-rw-r--r-- | src/cpu/kernels/CpuPool2dKernel.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/cpu/kernels/CpuPool2dKernel.h b/src/cpu/kernels/CpuPool2dKernel.h index aedeb7fbe9..7fd3247d6d 100644 --- a/src/cpu/kernels/CpuPool2dKernel.h +++ b/src/cpu/kernels/CpuPool2dKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2021 Arm Limited. + * Copyright (c) 2017-2022 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -35,8 +35,11 @@ namespace cpu namespace kernels { /** Interface for the pooling layer kernel */ -class CpuPool2dKernel : public ICpuKernel +class CpuPool2dKernel : public NewICpuKernel<CpuPool2dKernel> { +private: + using PoolingKernelPtr = std::add_pointer<void(const ITensor *, ITensor *, ITensor *, PoolingLayerInfo &, const Window &, const Window &)>::type; + public: CpuPool2dKernel() = default; ARM_COMPUTE_DISALLOW_COPY_ALLOW_MOVE(CpuPool2dKernel); @@ -62,8 +65,14 @@ public: void run_op(ITensorPack &tensors, const Window &window, const ThreadInfo &info) override; const char *name() const override; -private: - using PoolingKernelPtr = std::add_pointer<void(const ITensor *, ITensor *, ITensor *, PoolingLayerInfo &, const Window &, const Window &)>::type; + struct PoolingKernel + { + const char *name; + const PoolDataTypeISASelectorPtr is_selected; + PoolingKernelPtr ukernel; + }; + + static const std::vector<PoolingKernel> &get_available_kernels(); private: PoolingLayerInfo _pool_info{}; |