diff options
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/CL/ICLKernel.h | 12 | ||||
-rw-r--r-- | arm_compute/core/Validate.h | 15 |
2 files changed, 27 insertions, 0 deletions
diff --git a/arm_compute/core/CL/ICLKernel.h b/arm_compute/core/CL/ICLKernel.h index 72c963d11b..c5e95aad88 100644 --- a/arm_compute/core/CL/ICLKernel.h +++ b/arm_compute/core/CL/ICLKernel.h @@ -65,6 +65,13 @@ public: * @param[in] window Window the kernel will be executed on. */ void add_3D_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. + * + * @param[in,out] idx Index at which to start adding the tensor's arguments. Will be incremented by the number of kernel arguments set. + * @param[in] tensor Tensor to set as an argument of the object's kernel. + * @param[in] window Window the kernel will be executed on. + */ + void add_4D_tensor_argument(unsigned int &idx, const ICLTensor *tensor, const Window &window); /** Returns the number of arguments enqueued per 1D tensor object. * * @return The number of arguments enqueues per 1D tensor object. @@ -80,6 +87,11 @@ public: * @return The number of arguments enqueues per 3D tensor object. */ unsigned int num_arguments_per_3D_tensor() const; + /** Returns the number of arguments enqueued per 4D tensor object. + * + * @return The number of arguments enqueues per 4D tensor object. + */ + unsigned int num_arguments_per_4D_tensor() const; /** Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. * * @note The queue is *not* flushed by this method, and therefore the kernel will not have been executed by the time this method returns. diff --git a/arm_compute/core/Validate.h b/arm_compute/core/Validate.h index dd71f2c714..34da339f03 100644 --- a/arm_compute/core/Validate.h +++ b/arm_compute/core/Validate.h @@ -147,6 +147,21 @@ void error_on_invalid_subwindow(const char *function, const char *file, const in const Window &full, const Window &sub); #define ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(f, s) ::arm_compute::error_on_invalid_subwindow(__func__, __FILE__, __LINE__, f, s) +/** Throw an error if the window can't be collapsed at the given dimension. + * + * The window cannot be collapsed if the given dimension not equal to the full window's dimension or not start from 0. + * + * @param[in] function Function in which the error occurred. + * @param[in] file Name of the file where the error occurred. + * @param[in] line Line on which the error occurred. + * @param[in] full Full size window + * @param[in] window Window to be collapsed. + * @param[in] dim Dimension need to be checked. + */ +void error_on_window_not_collapsable_at_dimension(const char *function, const char *file, const int line, + const Window &full, const Window &window, const int dim); +#define ARM_COMPUTE_ERROR_ON_WINDOW_NOT_COLLAPSABLE_AT_DIMENSION(f, w, d) ::arm_compute::error_on_window_not_collapsable_at_dimension(__func__, __FILE__, __LINE__, f, w, d) + /** Throw an error if the passed coordinates have too many dimensions. * * The coordinates have too many dimensions if any of the dimensions greater or equal to max_dim is different from 0. |