24.02.1
|
Common interface for all the OpenCL kernels. More...
#include <ICLKernel.h>
Public Member Functions | |
ICLKernel () | |
Constructor. More... | |
cl::Kernel & | kernel () |
Returns a reference to the OpenCL kernel of this object. More... | |
CLKernelType | type () const |
Returns the CL kernel type. More... | |
template<typename T > | |
void | add_1D_array_argument (unsigned int &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
Add the passed 1D array's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_1D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_1D_tensor_argument_if (bool cond, unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true. More... | |
void | add_2D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_2D_tensor_argument_if (bool cond, unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true. More... | |
void | add_3D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 3D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_4D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 4D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_5D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 5D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_3d_tensor_nhw_argument (unsigned int &idx, const ICLTensor *tensor) |
Add the passed NHW 3D tensor's parameters to the object's kernel's arguments by passing strides, dimensions and the offset to the first valid element in bytes. More... | |
void | add_4d_tensor_nhwc_argument (unsigned int &idx, const ICLTensor *tensor) |
Add the passed NHWC 4D tensor's parameters to the object's kernel's arguments by passing strides, dimensions and the offset to the first valid element in bytes. More... | |
virtual void | run (const Window &window, cl::CommandQueue &queue) |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. More... | |
virtual void | run_op (ITensorPack &tensors, const Window &window, cl::CommandQueue &queue) |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. More... | |
template<typename T > | |
void | add_argument (unsigned int &idx, T value) |
Add the passed parameters to the object's kernel's arguments starting from the index idx. More... | |
void | set_lws_hint (const cl::NDRange &lws_hint) |
Set the Local-Workgroup-Size hint. More... | |
cl::NDRange | lws_hint () const |
Return the Local-Workgroup-Size hint. More... | |
void | set_wbsm_hint (const cl_int &wbsm_hint) |
Set the workgroup batch size modifier hint. More... | |
cl_int | wbsm_hint () const |
Return the workgroup batch size modifier hint. More... | |
const std::string & | config_id () const |
Get the configuration ID. More... | |
void | set_target (GPUTarget target) |
Set the targeted GPU architecture. More... | |
void | set_target (cl::Device &device) |
Set the targeted GPU architecture according to the CL device. More... | |
GPUTarget | get_target () const |
Get the targeted GPU architecture. More... | |
size_t | get_max_workgroup_size () |
Get the maximum workgroup size for the device the CLKernelLibrary uses. More... | |
cl::NDRange | get_cached_gws () const |
Get the cached gws used to enqueue this kernel. More... | |
void | cache_gws (const cl::NDRange &gws) |
Cache the latest gws used to enqueue this kernel. More... | |
template<unsigned int dimension_size> | |
void | add_tensor_argument (unsigned &idx, const ICLTensor *tensor, const Window &window) |
template<typename T , unsigned int dimension_size> | |
void | add_array_argument (unsigned &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
Add the passed array's parameters to the object's kernel's arguments starting from the index idx. More... | |
Public Member Functions inherited from IKernel | |
IKernel () | |
Constructor. More... | |
virtual | ~IKernel ()=default |
Destructor. More... | |
virtual bool | is_parallelisable () const |
Indicates whether or not the kernel is parallelisable. More... | |
virtual BorderSize | border_size () const |
The size of the border for that kernel. More... | |
const Window & | window () const |
The maximum window the kernel can be executed on. More... | |
bool | is_window_configured () const |
Function to check if the embedded window of this kernel has been configured. More... | |
Static Public Member Functions | |
constexpr static unsigned int | num_arguments_per_3d_tensor_nhw () |
Returns the number of arguments enqueued per NHW 3D Tensor object. More... | |
constexpr static unsigned int | num_arguments_per_4d_tensor_nhwc () |
Returns the number of arguments enqueued per NHWC 4D Tensor object. More... | |
constexpr static unsigned int | num_arguments_per_1D_array () |
Returns the number of arguments enqueued per 1D array object. More... | |
constexpr static unsigned int | num_arguments_per_1D_tensor () |
Returns the number of arguments enqueued per 1D tensor object. More... | |
constexpr static unsigned int | num_arguments_per_2D_tensor () |
Returns the number of arguments enqueued per 2D tensor object. More... | |
constexpr static unsigned int | num_arguments_per_3D_tensor () |
Returns the number of arguments enqueued per 3D tensor object. More... | |
constexpr static unsigned int | num_arguments_per_4D_tensor () |
Returns the number of arguments enqueued per 4D tensor object. More... | |
static cl::NDRange | gws_from_window (const Window &window, bool use_dummy_work_items) |
Get the global work size given an execution window. More... | |
Common interface for all the OpenCL kernels.
Definition at line 67 of file ICLKernel.h.
|
inline |
|
inline |
Add the passed 1D array's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the array's arguments. Will be incremented by the number of kernel arguments set. |
[in] | array | Array to set as an argument of the object's kernel. |
[in] | strides | Strides object containing stride of each dimension in bytes. |
[in] | num_dimensions | Number of dimensions of the array . |
[in] | window | Window the kernel will be executed on. |
Definition at line 172 of file ICLKernel.h.
References IKernel::window().
|
inline |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 186 of file ICLKernel.h.
References tensor, and IKernel::window().
Referenced by ICLKernel::add_1D_tensor_argument_if(), CLComputeAllAnchorsKernel::run(), CLSelectKernel::run(), CLQLSTMLayerNormalizationKernel::run(), CLRangeKernel::run(), CLFFTDigitReverseKernel::run(), CLNormalizePlanarYUVLayerKernel::run(), CLReverseKernel::run(), CLReductionOperationKernel::run(), CLBoundingBoxTransformKernel::run(), CLDeconvolutionReshapeOutputKernel::run(), CLDepthwiseConvolutionLayerNativeKernel::run(), CLBatchNormalizationLayerKernel::run(), CLBatchToSpaceLayerKernel::run(), CLFuseBatchNormalizationKernel::run(), ClTransposedConvolutionKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFixedPointKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFloatKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleKernel::run_op(), ClIndirectConv2dKernel::run_op(), ClDirectConv3dKernel::run_op(), and ClDirectConv2dKernel::run_op().
|
inline |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true.
[in] | cond | Condition to check |
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 197 of file ICLKernel.h.
References ICLKernel::add_1D_tensor_argument(), tensor, and IKernel::window().
Referenced by CLSpaceToBatchLayerKernel::run(), ClGemmLowpOffsetContributionKernel::run_op(), and ClGemmLowpOffsetContributionOutputStageKernel::run_op().
|
inline |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 210 of file ICLKernel.h.
References tensor, and IKernel::window().
Referenced by ICLKernel::add_2D_tensor_argument_if(), ICLSimple2DKernel::run(), CLBitwiseKernel::run(), CLQLSTMLayerNormalizationKernel::run(), CLROIPoolingLayerKernel::run(), CLMeanStdDevNormalizationKernel::run(), CLArgMinMaxLayerKernel::run(), CLL2NormalizeLayerKernel::run(), CLPriorBoxLayerKernel::run(), CLBoundingBoxTransformKernel::run(), CLROIAlignLayerKernel::run(), ClScaleKernel::run_op(), ClConvertFullyConnectedWeightsKernel::run_op(), ClGemmLowpMatrixMultiplyNativeKernel::run_op(), ClGemmMatrixMultiplyNativeKernel::run_op(), ClGemmLowpMatrixAReductionKernel::run_op(), ClIm2ColKernel::run_op(), ClGemmMatrixMultiplyReshapedOnlyRhsKernel::run_op(), ClGemmMatrixMultiplyReshapedKernel::run_op(), and ClGemmLowpMatrixBReductionKernel::run_op().
|
inline |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true.
[in] | cond | Condition to check |
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 221 of file ICLKernel.h.
References ICLKernel::add_2D_tensor_argument(), tensor, and IKernel::window().
Referenced by CLMeanStdDevNormalizationKernel::run(), CLSpaceToBatchLayerKernel::run(), ClGemmLowpOffsetContributionKernel::run_op(), ClGemmLowpOffsetContributionOutputStageKernel::run_op(), ClGemmMatrixMultiplyReshapedOnlyRhsKernel::run_op(), and ClGemmMatrixMultiplyReshapedKernel::run_op().
|
inline |
Add the passed 3D tensor's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 234 of file ICLKernel.h.
References tensor, and IKernel::window().
Referenced by ICLSimple3DKernel::run(), CLDepthToSpaceLayerKernel::run(), CLSpaceToDepthLayerKernel::run(), CLInstanceNormalizationLayerKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), CLFFTScaleKernel::run(), CLSelectKernel::run(), CLNormalizationLayerKernel::run(), CLReorgLayerKernel::run(), CLMaxUnpoolingLayerKernel::run(), CLROIPoolingLayerKernel::run(), CLComparisonKernel::run(), CLFFTDigitReverseKernel::run(), CLNormalizePlanarYUVLayerKernel::run(), CLReductionOperationKernel::run(), CLFFTRadixStageKernel::run(), CLArgMinMaxLayerKernel::run(), CLL2NormalizeLayerKernel::run(), CLPadLayerKernel::run(), CLFillBorderKernel::run(), CLROIAlignLayerKernel::run(), CLDeconvolutionReshapeOutputKernel::run(), CLBatchNormalizationLayerKernel::run(), CLComputeMeanVariance::run(), CLBatchToSpaceLayerKernel::run(), CLFuseBatchNormalizationKernel::run(), CLSpaceToBatchLayerKernel::run(), ClElementwiseKernel::run_op(), ClDequantizeKernel::run_op(), ClFloorKernel::run_op(), ClReshapeKernel::run_op(), ClTransposeKernel::run_op(), ClCopyKernel::run_op(), ClElementWiseUnaryKernel::run_op(), ClFillKernel::run_op(), ClQuantizeKernel::run_op(), ClDepthConcatenateKernel::run_op(), ClBatchConcatenateKernel::run_op(), ClActivationKernel::run_op(), ClWinogradInputTransformKernel::run_op(), ClCastKernel::run_op(), ClCropKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFixedPointKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFloatKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleKernel::run_op(), ClCol2ImKernel::run_op(), ClGemmLowpOffsetContributionKernel::run_op(), ClGemmLowpMatrixAReductionKernel::run_op(), ClDirectConv2dKernel::run_op(), ClGemmLowpOffsetContributionOutputStageKernel::run_op(), ClMulKernel::run_op(), CLFillBorderKernel::run_op(), ClIm2ColKernel::run_op(), ClGemmLowpMatrixBReductionKernel::run_op(), and ClComplexMulKernel::run_op().
void add_3d_tensor_nhw_argument | ( | unsigned int & | idx, |
const ICLTensor * | tensor | ||
) |
Add the passed NHW 3D tensor's parameters to the object's kernel's arguments by passing strides, dimensions and the offset to the first valid element in bytes.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
Definition at line 120 of file ICLKernel.cpp.
References ARM_COMPUTE_ERROR_ON, arm_compute::test::validation::info, and tensor.
Referenced by ClMatMulLowpNativeMMULKernel::run_op(), ClGemmReshapeLhsMatrixKernel::run_op(), ClMatMulNativeKernel::run_op(), ClMatMulLowpNativeKernel::run_op(), ClGemmReshapeRhsMatrixKernel::run_op(), ClGemmMatrixMultiplyReshapedOnlyRhsMMULKernel::run_op(), and ClMatMulNativeMMULKernel::run_op().
|
inline |
Add the passed 4D tensor's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 244 of file ICLKernel.h.
References tensor, and IKernel::window().
Referenced by CLChannelShuffleLayerKernel::run(), CLDepthToSpaceLayerKernel::run(), CLSpaceToDepthLayerKernel::run(), CLInstanceNormalizationLayerKernel::run(), CLTileKernel::run(), CLGatherKernel::run(), CLReverseKernel::run(), CLArgMinMaxLayerKernel::run(), CLStackLayerKernel::run(), CLComputeMeanVariance::run(), CLBatchToSpaceLayerKernel::run(), CLSpaceToBatchLayerKernel::run(), ClWidthConcatenate2TensorsKernel::run_op(), ClHeightConcatenateKernel::run_op(), ClWidthConcatenateKernel::run_op(), ClPermuteKernel::run_op(), ClWidthConcatenate4TensorsKernel::run_op(), ClWinogradInputTransformKernel::run_op(), ClCol2ImKernel::run_op(), CLStridedSliceKernel::run_op(), and ClDirectConv3dKernel::run_op().
void add_4d_tensor_nhwc_argument | ( | unsigned int & | idx, |
const ICLTensor * | tensor | ||
) |
Add the passed NHWC 4D tensor's parameters to the object's kernel's arguments by passing strides, dimensions and the offset to the first valid element in bytes.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
Definition at line 145 of file ICLKernel.cpp.
References ARM_COMPUTE_ERROR_ON, arm_compute::test::validation::info, and tensor.
Referenced by CLDepthwiseConvolutionLayerNativeKernel::run(), ClScaleKernel::run_op(), ClTransposedConvolutionKernel::run_op(), ClIndirectConv2dAddressPrecalculationKernel::run_op(), ClIndirectConv2dKernel::run_op(), and ClDirectConv2dKernel::run_op().
|
inline |
Add the passed 5D tensor's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. |
[in] | tensor | Tensor to set as an argument of the object's kernel. |
[in] | window | Window the kernel will be executed on. |
Definition at line 254 of file ICLKernel.h.
References tensor, and IKernel::window().
|
inline |
Add the passed parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the arguments. Will be incremented by the number of kernel arguments set. |
[in] | value | Value to set as an argument of the object's kernel. |
Definition at line 362 of file ICLKernel.h.
Referenced by CLDepthToSpaceLayerKernel::run(), CLSpaceToDepthLayerKernel::run(), CLBatchToSpaceLayerKernel::run(), CLSpaceToBatchLayerKernel::run(), and ClCropKernel::run_op().
void add_array_argument | ( | unsigned & | idx, |
const ICLArray< T > * | array, | ||
const Strides & | strides, | ||
unsigned int | num_dimensions, | ||
const Window & | window | ||
) |
Add the passed array's parameters to the object's kernel's arguments starting from the index idx.
[in,out] | idx | Index at which to start adding the array's arguments. Will be incremented by the number of kernel arguments set. |
[in] | array | Array to set as an argument of the object's kernel. |
[in] | strides | Strides object containing stride of each dimension in bytes. |
[in] | num_dimensions | Number of dimensions of the array . |
[in] | window | Window the kernel will be executed on. |
Definition at line 539 of file ICLKernel.h.
References ARM_COMPUTE_ERROR_ON, ARM_COMPUTE_ERROR_ON_MSG_VAR, ARM_COMPUTE_UNUSED, ICLArray< T >::cl_buffer(), and IKernel::window().
Definition at line 88 of file ICLKernel.cpp.
References ARM_COMPUTE_ERROR_ON, ARM_COMPUTE_ERROR_ON_MSG_VAR, ARM_COMPUTE_UNUSED, arm_compute::test::validation::info, Window::is_broadcasted(), tensor, and IKernel::window().
void cache_gws | ( | const cl::NDRange & | gws | ) |
Cache the latest gws used to enqueue this kernel.
[in] | gws | Latest global work size of the kernel |
Definition at line 219 of file ICLKernel.cpp.
Referenced by arm_compute::enqueue().
|
inline |
Get the configuration ID.
Definition at line 419 of file ICLKernel.h.
cl::NDRange get_cached_gws | ( | ) | const |
Get the cached gws used to enqueue this kernel.
Definition at line 214 of file ICLKernel.cpp.
size_t get_max_workgroup_size | ( | ) |
Get the maximum workgroup size for the device the CLKernelLibrary uses.
Definition at line 185 of file ICLKernel.cpp.
References CLKernelLibrary::get(), and CLKernelLibrary::max_local_workgroup_size().
Referenced by arm_compute::enqueue().
|
inline |
Get the targeted GPU architecture.
Definition at line 443 of file ICLKernel.h.
Referenced by ClIndirectConv2dKernel::configure(), ClDirectConv2dKernel::configure(), and CLDepthwiseConvolutionLayerNativeKernel::configure().
|
static |
Get the global work size given an execution window.
[in] | window | Execution window |
[in] | use_dummy_work_items | If the kernel uses dummy work items |
Definition at line 194 of file ICLKernel.cpp.
References Window::Dimension::end(), arm_compute::get_next_power_two(), Window::Dimension::start(), Window::Dimension::step(), IKernel::window(), Window::x(), Window::y(), and Window::z().
|
inline |
Returns a reference to the OpenCL kernel of this object.
Definition at line 151 of file ICLKernel.h.
Referenced by arm_compute::enqueue().
|
inline |
Return the Local-Workgroup-Size hint.
Definition at line 383 of file ICLKernel.h.
References CLTuningParams::get_lws().
Referenced by ICLSimple2DKernel::run(), ICLSimple3DKernel::run(), CLBitwiseKernel::run(), CLChannelShuffleLayerKernel::run(), CLSpaceToDepthLayerKernel::run(), CLDepthToSpaceLayerKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), CLInstanceNormalizationLayerKernel::run(), CLFFTScaleKernel::run(), CLSelectKernel::run(), CLComputeAllAnchorsKernel::run(), CLNormalizationLayerKernel::run(), CLQLSTMLayerNormalizationKernel::run(), CLRangeKernel::run(), CLReorgLayerKernel::run(), CLTileKernel::run(), CLROIPoolingLayerKernel::run(), CLMaxUnpoolingLayerKernel::run(), CLMeanStdDevNormalizationKernel::run(), CLGatherKernel::run(), CLComparisonKernel::run(), CLFFTDigitReverseKernel::run(), CLReverseKernel::run(), CLNormalizePlanarYUVLayerKernel::run(), CLFFTRadixStageKernel::run(), CLArgMinMaxLayerKernel::run(), CLL2NormalizeLayerKernel::run(), CLPadLayerKernel::run(), CLBoundingBoxTransformKernel::run(), CLFillBorderKernel::run(), CLPriorBoxLayerKernel::run(), CLStackLayerKernel::run(), CLROIAlignLayerKernel::run(), CLDeconvolutionReshapeOutputKernel::run(), CLDepthwiseConvolutionLayerNativeKernel::run(), CLBatchNormalizationLayerKernel::run(), CLComputeMeanVariance::run(), CLBatchToSpaceLayerKernel::run(), CLFuseBatchNormalizationKernel::run(), CLSpaceToBatchLayerKernel::run(), ClElementwiseKernel::run_op(), ClReshapeKernel::run_op(), ClTransposeKernel::run_op(), ClDequantizeKernel::run_op(), ClFloorKernel::run_op(), ClWidthConcatenate2TensorsKernel::run_op(), ClCopyKernel::run_op(), ClFillKernel::run_op(), ClElementWiseUnaryKernel::run_op(), ClScaleKernel::run_op(), ClQuantizeKernel::run_op(), ClHeightConcatenateKernel::run_op(), ClWidthConcatenateKernel::run_op(), ClBatchConcatenateKernel::run_op(), ClDepthConcatenateKernel::run_op(), ClTransposedConvolutionKernel::run_op(), ClActivationKernel::run_op(), ClPermuteKernel::run_op(), ClSoftmaxKernel::run_op(), ClWidthConcatenate4TensorsKernel::run_op(), ClConvertFullyConnectedWeightsKernel::run_op(), ClWinogradInputTransformKernel::run_op(), ClGemmReshapeLhsMatrixKernel::run_op(), ClMatMulNativeKernel::run_op(), ClCastKernel::run_op(), ClMatMulLowpNativeKernel::run_op(), ClCropKernel::run_op(), ClGemmLowpMatrixMultiplyNativeKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFixedPointKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFloatKernel::run_op(), ClGemmReshapeRhsMatrixKernel::run_op(), ClCol2ImKernel::run_op(), ClGemmMatrixMultiplyNativeKernel::run_op(), ClIndirectConv2dKernel::run_op(), CLStridedSliceKernel::run_op(), ClGemmLowpOffsetContributionKernel::run_op(), ClDirectConv3dKernel::run_op(), ClGemmLowpMatrixAReductionKernel::run_op(), ClDirectConv2dKernel::run_op(), ClGemmLowpOffsetContributionOutputStageKernel::run_op(), ClMulKernel::run_op(), CLFillBorderKernel::run_op(), ClIm2ColKernel::run_op(), ClGemmMatrixMultiplyReshapedOnlyRhsKernel::run_op(), ClGemmMatrixMultiplyReshapedKernel::run_op(), ClGemmLowpMatrixBReductionKernel::run_op(), ClComplexMulKernel::run_op(), and ICLKernel::set_lws_hint().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per 1D array object.
Definition at line 297 of file ICLKernel.h.
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per 1D tensor object.
Definition at line 305 of file ICLKernel.h.
Referenced by CLReverseKernel::configure(), CLBatchNormalizationLayerKernel::configure(), and CLSelectKernel::run().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per 2D tensor object.
Definition at line 313 of file ICLKernel.h.
Referenced by CLL2NormalizeLayerKernel::configure(), CLPriorBoxLayerKernel::configure(), ClGemmLowpMatrixMultiplyNativeKernel::run_op(), ClGemmMatrixMultiplyNativeKernel::run_op(), and ClIm2ColKernel::run_op().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per 3D tensor object.
Definition at line 321 of file ICLKernel.h.
Referenced by ClReshapeKernel::configure(), CLFFTScaleKernel::configure(), CLFFTRadixStageKernel::configure(), CLL2NormalizeLayerKernel::configure(), ClMulKernel::configure(), CLFillBorderKernel::configure(), CLBatchNormalizationLayerKernel::configure(), CLNormalizePlanarYUVLayerKernel::run(), CLBatchNormalizationLayerKernel::run(), ClDequantizeKernel::run_op(), ClBatchConcatenateKernel::run_op(), ClDepthConcatenateKernel::run_op(), ClWinogradInputTransformKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFixedPointKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleKernel::run_op(), ClGemmLowpQuantizeDownInt32ScaleByFloatKernel::run_op(), ClDirectConv2dKernel::run_op(), and ClIm2ColKernel::run_op().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per NHW 3D Tensor object.
Definition at line 270 of file ICLKernel.h.
Referenced by ClGemmReshapeLhsMatrixKernel::configure(), and ClGemmReshapeRhsMatrixKernel::configure().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per 4D tensor object.
Definition at line 329 of file ICLKernel.h.
Referenced by CLReverseKernel::configure(), and CLStackLayerKernel::configure().
|
inlinestaticconstexpr |
Returns the number of arguments enqueued per NHWC 4D Tensor object.
Definition at line 287 of file ICLKernel.h.
Referenced by ClScaleKernel::configure().
|
inlinevirtual |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue.
[in] | window | Region on which to execute the kernel. (Must be a valid region of the window returned by window()). |
[in,out] | queue | Command queue on which to enqueue the kernel. |
Reimplemented in CLSpaceToBatchLayerKernel, CLFuseBatchNormalizationKernel, CLBatchToSpaceLayerKernel, CLComputeMeanVariance, CLBatchNormalizationLayerKernel, CLDepthwiseConvolutionLayerNativeKernel, CLDeconvolutionReshapeOutputKernel, CLStackLayerKernel, CLBoundingBoxTransformKernel, CLFillBorderKernel, CLPriorBoxLayerKernel, CLPadLayerKernel, CLL2NormalizeLayerKernel, CLArgMinMaxLayerKernel, CLFFTRadixStageKernel, CLReductionOperationKernel, CLNormalizePlanarYUVLayerKernel, CLReverseKernel, CLFFTDigitReverseKernel, CLComparisonKernel, CLGatherKernel, CLMaxUnpoolingLayerKernel, CLMeanStdDevNormalizationKernel, CLROIPoolingLayerKernel, CLQLSTMLayerNormalizationKernel, CLRangeKernel, CLReorgLayerKernel, CLTileKernel, CLNormalizationLayerKernel, CLFFTScaleKernel, CLComputeAllAnchorsKernel, CLSelectKernel, CLDeconvolutionLayerUpsampleKernel, CLInstanceNormalizationLayerKernel, CLChannelShuffleLayerKernel, CLDepthToSpaceLayerKernel, CLSpaceToDepthLayerKernel, CLBitwiseKernel, ICLSimple3DKernel, ICLSimple2DKernel, and CLROIAlignLayerKernel.
Definition at line 340 of file ICLKernel.h.
References ARM_COMPUTE_UNUSED, and IKernel::window().
|
inlinevirtual |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue.
[in] | tensors | A vector containing the tensors to operato on. |
[in] | window | Region on which to execute the kernel. (Must be a valid region of the window returned by window()). |
[in,out] | queue | Command queue on which to enqueue the kernel. |
Reimplemented in ClComplexMulKernel, ClGemmLowpMatrixBReductionKernel, ClGemmMatrixMultiplyReshapedKernel, ClGemmMatrixMultiplyReshapedOnlyRhsKernel, ClIm2ColKernel, ClGemmLowpMatrixMultiplyReshapedOnlyRhsKernel, CLFillBorderKernel, ClGemmLowpOffsetContributionOutputStageKernel, ClMulKernel, ClGemmLowpMatrixMultiplyReshapedOnlyRhsMMULKernel, ClDirectConv2dKernel, ClGemmLowpMatrixAReductionKernel, ClMatMulNativeMMULKernel, ClWeightsReshapeKernel, ClDirectConv3dKernel, CLStridedSliceKernel, ClGemmLowpOffsetContributionKernel, ClGemmMatrixMultiplyReshapedOnlyRhsMMULKernel, ClGemmLowpMatrixMultiplyReshapedKernel, ClGemmMatrixMultiplyNativeKernel, ClIndirectConv2dKernel, ClCol2ImKernel, ClWinogradOutputTransformKernel, ClGemmLowpQuantizeDownInt32ScaleByFloatKernel, ClGemmLowpQuantizeDownInt32ScaleKernel, ClGemmReshapeRhsMatrixKernel, ClIndirectConv2dAddressPrecalculationKernel, ClGemmLowpMatrixMultiplyNativeKernel, ClGemmLowpQuantizeDownInt32ScaleByFixedPointKernel, ClCropKernel, ClMatMulLowpNativeKernel, ClGemmReshapeLhsMatrixKernel, ClMatMulNativeKernel, ClWinogradFilterTransformKernel, ClWinogradInputTransformKernel, ClMatMulLowpNativeMMULKernel, ClSoftmaxKernel, ClPool2dKernel, ClPermuteKernel, ClTransposedConvolutionKernel, ClPool3dKernel, ClQuantizeKernel, ClScaleKernel, ClCopyKernel, ClElementWiseUnaryKernel, ClFillKernel, ClKernelRuntime, ClDequantizeKernel, ClFloorKernel, ClReshapeKernel, and ClTransposeKernel.
Definition at line 352 of file ICLKernel.h.
References ARM_COMPUTE_UNUSED, and IKernel::window().
|
inline |
Set the Local-Workgroup-Size hint.
[in] | lws_hint | Local-Workgroup-Size to use |
Definition at line 373 of file ICLKernel.h.
References ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL, ICLKernel::lws_hint(), and CLTuningParams::set_lws().
void set_target | ( | cl::Device & | device | ) |
Set the targeted GPU architecture according to the CL device.
[in] | device | A CL device |
Definition at line 180 of file ICLKernel.cpp.
References arm_compute::get_target_from_device().
|
inline |
Set the targeted GPU architecture.
[in] | target | The targeted GPU architecture |
Definition at line 428 of file ICLKernel.h.
|
inline |
Set the workgroup batch size modifier hint.
[in] | wbsm_hint | workgroup batch size modifier value |
Definition at line 394 of file ICLKernel.h.
References ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL, CLTuningParams::set_wbsm(), and ICLKernel::wbsm_hint().
|
inline |
|
inline |
Return the workgroup batch size modifier hint.
Definition at line 404 of file ICLKernel.h.
References CLTuningParams::get_wbsm().
Referenced by arm_compute::enqueue(), and ICLKernel::set_wbsm_hint().