diff options
Diffstat (limited to 'arm_compute/runtime/CL')
-rw-r--r-- | arm_compute/runtime/CL/CLScheduler.h | 13 | ||||
-rw-r--r-- | arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h | 25 | ||||
-rw-r--r-- | arm_compute/runtime/CL/tuners/BifrostTuner.h | 44 | ||||
-rw-r--r-- | arm_compute/runtime/CL/tuners/MidgardTuner.h | 44 | ||||
-rw-r--r-- | arm_compute/runtime/CL/tuners/Tuners.h | 56 |
5 files changed, 18 insertions, 164 deletions
diff --git a/arm_compute/runtime/CL/CLScheduler.h b/arm_compute/runtime/CL/CLScheduler.h index d3a91da751..41a074089e 100644 --- a/arm_compute/runtime/CL/CLScheduler.h +++ b/arm_compute/runtime/CL/CLScheduler.h @@ -165,13 +165,12 @@ private: /** Flag to ensure symbols initialisation is happening before Scheduler creation */ static std::once_flag _initialize_symbols; - cl::Context _context; - cl::CommandQueue _queue; - GPUTarget _target; - bool _is_initialised; - ICLTuner *_cl_tuner; - std::unique_ptr<ICLTuner> _cl_default_static_tuner; - CLGEMMHeuristicsHandle *_gemm_heuristics; + cl::Context _context; + cl::CommandQueue _queue; + GPUTarget _target; + bool _is_initialised; + ICLTuner *_cl_tuner; + CLGEMMHeuristicsHandle *_gemm_heuristics; }; } // namespace arm_compute #endif /* ARM_COMPUTE_CLSCHEDULER_H */ diff --git a/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h index 0afc9d3f38..6e9e2161b9 100644 --- a/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h +++ b/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -33,8 +33,6 @@ namespace arm_compute { class CLCompileContext; -class CLDirectConvolutionLayerKernel; -class CLFillBorderKernel; class ICLTensor; class ITensorInfo; @@ -43,14 +41,18 @@ class ITensorInfo; class CLDirectConvolutionLayer : public IFunction { public: - /** Default constructor */ + /** Constructor */ CLDirectConvolutionLayer(); - /** Prevent instances of this class from being copied */ + /** Destructor */ + ~CLDirectConvolutionLayer(); + /** Prevent instances of this class from being copied (As this class contains pointers) */ CLDirectConvolutionLayer(const CLDirectConvolutionLayer &) = delete; - /** Prevent instances of this class from being copied */ + /** Default move constructor */ + CLDirectConvolutionLayer(CLDirectConvolutionLayer &&); + /** Prevent instances of this class from being copied (As this class contains pointers) */ CLDirectConvolutionLayer &operator=(const CLDirectConvolutionLayer &) = delete; - /** Default destructor */ - ~CLDirectConvolutionLayer(); + /** Default move assignment operator */ + CLDirectConvolutionLayer &operator=(CLDirectConvolutionLayer &&); /** Set the input and output tensors. * * @param[in] input Source tensor. 3 lower dimensions represent a single input [width, height, IFM], @@ -103,11 +105,8 @@ public: void run() override; private: - std::unique_ptr<CLDirectConvolutionLayerKernel> _direct_conv_kernel; - std::unique_ptr<CLFillBorderKernel> _input_border_handler; - CLActivationLayer _activationlayer_function; - - bool _is_activationlayer_enabled; + struct Impl; + std::unique_ptr<Impl> _impl; }; } #endif /* ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H */ diff --git a/arm_compute/runtime/CL/tuners/BifrostTuner.h b/arm_compute/runtime/CL/tuners/BifrostTuner.h deleted file mode 100644 index 237693fb88..0000000000 --- a/arm_compute/runtime/CL/tuners/BifrostTuner.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2018-2020 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 ARM_COMPUTE_TUNERS_BIFROST_TUNER_H -#define ARM_COMPUTE_TUNERS_BIFROST_TUNER_H - -#include "arm_compute/runtime/CL/ICLTuner.h" - -namespace arm_compute -{ -namespace tuners -{ -/** Bifrost based OpenCL tuner implementation */ -class BifrostTuner final : public ICLTuner -{ -public: - // Inherited overriden methods - void tune_kernel_static(ICLKernel &kernel) override; - void tune_kernel_dynamic(ICLKernel &kernel) override; - void tune_kernel_dynamic(ICLKernel &kernel, ITensorPack &tensors) override; -}; -} // namespace tuners -} // namespace arm_compute -#endif /*ARM_COMPUTE_TUNERS_BIFROST_TUNER_H */ diff --git a/arm_compute/runtime/CL/tuners/MidgardTuner.h b/arm_compute/runtime/CL/tuners/MidgardTuner.h deleted file mode 100644 index 86d46044c2..0000000000 --- a/arm_compute/runtime/CL/tuners/MidgardTuner.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2018-2020 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 ARM_COMPUTE_TUNERS_MIDGARD_TUNER_H -#define ARM_COMPUTE_TUNERS_MIDGARD_TUNER_H - -#include "arm_compute/runtime/CL/ICLTuner.h" - -namespace arm_compute -{ -namespace tuners -{ -/** Midgard based OpenCL tuner implementation */ -class MidgardTuner final : public ICLTuner -{ -public: - // Inherited overriden methods - void tune_kernel_static(ICLKernel &kernel) override; - void tune_kernel_dynamic(ICLKernel &kernel) override; - void tune_kernel_dynamic(ICLKernel &kernel, ITensorPack &tensors) override; -}; -} // namespace tuners -} // namespace arm_compute -#endif /*ARM_COMPUTE_TUNERS_MIDGARD_TUNER_H */ diff --git a/arm_compute/runtime/CL/tuners/Tuners.h b/arm_compute/runtime/CL/tuners/Tuners.h deleted file mode 100644 index 3ba9e0071d..0000000000 --- a/arm_compute/runtime/CL/tuners/Tuners.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2018-2020 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 ARM_COMPUTE_TUNERS_H -#define ARM_COMPUTE_TUNERS_H - -#include "arm_compute/runtime/CL/tuners/BifrostTuner.h" -#include "arm_compute/runtime/CL/tuners/MidgardTuner.h" - -#include <memory> - -namespace arm_compute -{ -namespace tuners -{ -/** Tuner factory class */ -class TunerFactory final -{ -public: - static std::unique_ptr<ICLTuner> create_tuner(GPUTarget target) - { - GPUTarget arch = get_arch_from_target(target); - switch(arch) - { - case GPUTarget::BIFROST: - return std::make_unique<BifrostTuner>(); - case GPUTarget::MIDGARD: - return std::make_unique<MidgardTuner>(); - default: - return nullptr; - } - } -}; -} // namespace tuners -} // namespace arm_compute -#endif /*ARM_COMPUTE_TUNERS_H */ |