diff options
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/CL/CLHelpers.h | 8 | ||||
-rw-r--r-- | arm_compute/core/CL/kernels/CLDepthConcatenateKernel.h | 4 | ||||
-rw-r--r-- | arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h | 18 |
3 files changed, 21 insertions, 9 deletions
diff --git a/arm_compute/core/CL/CLHelpers.h b/arm_compute/core/CL/CLHelpers.h index 01980d9793..eeb3e7699d 100644 --- a/arm_compute/core/CL/CLHelpers.h +++ b/arm_compute/core/CL/CLHelpers.h @@ -53,6 +53,14 @@ static constexpr const unsigned int max_cl_vector_width = 16; */ std::string get_cl_type_from_data_type(const DataType &dt); +/** Translates fixed point tensor data type to the underlying OpenCL type. + * + * @param[in] dt @ref DataType to be translated to OpenCL type. + * + * @return The string specifying the underlying OpenCL type to be used. + */ +std::string get_underlying_cl_type_from_data_type(const DataType &dt); + /** Translates a given gpu device target to string. * * @param[in] target Given gpu target. diff --git a/arm_compute/core/CL/kernels/CLDepthConcatenateKernel.h b/arm_compute/core/CL/kernels/CLDepthConcatenateKernel.h index eda4c66883..e85e0ec232 100644 --- a/arm_compute/core/CL/kernels/CLDepthConcatenateKernel.h +++ b/arm_compute/core/CL/kernels/CLDepthConcatenateKernel.h @@ -52,9 +52,9 @@ public: ~CLDepthConcatenateKernel() = default; /** Initialise the kernel's inputs and output * - * @param[in] input Input tensor. Data types supported: F32. + * @param[in] input Input tensor. Data types supported: QS8/QS16/F16/F32. * @param[in] depth_offset The offset on the Z axis. - * @param[in,out] output Output tensor. Data types supported: F32. + * @param[in,out] output Output tensor. Data types supported: Same as @p input. * * @note: The output tensor's low two dimensions can't be smaller than the input one's. * @note: The gaps between the two lowest dimensions of input and output need to be divisible by 2. diff --git a/arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h b/arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h index 7384cd1f02..b22d37bfe6 100644 --- a/arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h @@ -51,9 +51,9 @@ public: ~NEDepthConcatenateKernel() = default; /** Initialise the kernel's inputs and output * - * @param[in] input Input tensor. Data types supported: F32. + * @param[in] input Input tensor. Data types supported: QS8/QS16/F16/F32. * @param[in] depth_offset The offset on the Z axis. - * @param[in,out] output Output tensor. Data types supported: F32. + * @param[in,out] output Output tensor. Data types supported: Same as @p input. * * @note: The output tensor's low two dimensions can't be smaller than the input one's. * @note: The gaps between the two lowest dimensions of input and output need to be divisible by 2. @@ -66,11 +66,15 @@ public: BorderSize border_size() const override; private: - const ITensor *_input; - ITensor *_output; - int _top_bottom; - int _left_right; - unsigned int _depth_offset; + using DepthConcatFunction = void(const ITensor *in, ITensor *out, std::pair<int, int> start_xy, int depth_offset, const Window &window); + +private: + DepthConcatFunction *_func; + const ITensor *_input; + ITensor *_output; + int _top_bottom; + int _left_right; + unsigned int _depth_offset; }; } #endif /* __ARM_COMPUTE_NEDEPTHCONCATENATEKERNEL_H__ */ |