24 #ifndef ARM_COMPUTE_NEDEPTHWISECONVOLUTIONLAYERNATIVEKERNEL_H 25 #define ARM_COMPUTE_NEDEPTHWISECONVOLUTIONLAYERNATIVEKERNEL_H 31 #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 33 #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 44 const char *
name()
const override 46 return "NEDepthwiseConvolutionLayerNativeKernel";
100 template <
typename T>
101 using FloatEnalber =
typename std::enable_if<arm_compute::utils::traits::is_floating_point<T>::value,
int>
::type;
103 template <
typename T,
typename TW, FloatEnalber<T> = 0>
104 void run_depthwise(
const Window &window,
bool has_biases);
106 template <
typename T>
107 using Quantized8bitEnalber =
typename std::enable_if < std::is_same<T, uint8_t>::value || std::is_same<T, int8_t>::value,
int >
::type;
109 template <
typename T,
typename TW, Quantized8bitEnalber<T> = 0>
110 void run_depthwise(
const Window &window,
bool has_biases);
118 DepthwiseFunctionPtr _func;
124 unsigned int _depth_multiplier;
126 std::vector<int> _output_multiplier;
127 std::vector<int> _output_shift;
const Window & window() const
The maximum window the kernel can be executed on.
Common interface for all kernels implemented in C++.
const char * name() const override
Name of the kernel.
Interface for the kernel to run a depthwise convolution native on a tensor.
Store the tensor's metadata.
decltype(strategy::transforms) typedef type
void run(const Window &window, const ThreadInfo &info) override
Execute the kernel on the passed window.
Interface for Neon tensor.
Copyright (c) 2017-2021 Arm Limited.
NEDepthwiseConvolutionLayerNativeKernel & operator=(const NEDepthwiseConvolutionLayerNativeKernel &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
Padding and stride information class.
NEDepthwiseConvolutionLayerNativeKernel()
Default constructor.
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
~NEDepthwiseConvolutionLayerNativeKernel()=default
Default destructor.
Information about executing thread and CPU.
Class for specifying the size of an image or rectangle.
void configure(const ITensor *input, const ITensor *weights, const ITensor *biases, ITensor *output, const PadStrideInfo &conv_info, unsigned int depth_multiplier=1, const Size2D &dilation=Size2D(1U, 1U))
Initialize the function's source, destination and parameters.
Describe a multidimensional execution window.
static Status validate(const ITensorInfo *input, const ITensorInfo *weights, const ITensorInfo *biases, const ITensorInfo *output, const PadStrideInfo &conv_info, unsigned int depth_multiplier=1, const Size2D &dilation=Size2D(1U, 1U))
Static function to check if given info will lead to a valid configuration of NEDepthwiseConvolutionLa...