aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/assembly/gemm_common.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/NEON/kernels/assembly/gemm_common.hpp')
-rw-r--r--src/core/NEON/kernels/assembly/gemm_common.hpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/core/NEON/kernels/assembly/gemm_common.hpp b/src/core/NEON/kernels/assembly/gemm_common.hpp
index e9e56842c7..e1fb7a45a8 100644
--- a/src/core/NEON/kernels/assembly/gemm_common.hpp
+++ b/src/core/NEON/kernels/assembly/gemm_common.hpp
@@ -23,6 +23,7 @@
*/
#pragma once
+#include "convolution_parameters.hpp"
#include "ndrange.hpp"
#include <cstddef>
@@ -77,7 +78,7 @@ public:
return false;
}
- /** Main execute member function
+ /** Main execute member fucntion
* @param [in] work_range specifies the range of work we want to be computed, total range defined by get_window_size()
* @param [in] thread_locator where are we inside of the thread space
* @naram [in] threadid a unique threadid
@@ -123,6 +124,19 @@ public:
{
}
+ /*** Indirect interface (optional) ***/
+ /* Set the indirect table. This comprises a number of values per kernel point, and a densely packed array of pointers,
+ * multis * batches * kernel_points */
+ virtual void set_indirect_parameters_generic(size_t, const void *const *const *)
+ {
+ }
+
+ /*** Convolution interface (optional) ***/
+ /* Set the convolution parameters. */
+ virtual void set_convolution_parameters(ConvolutionParameters)
+ {
+ }
+
// Destructor
virtual ~IGemmCommon()
{
@@ -200,6 +214,16 @@ public:
{
pretranspose_B_array(out, static_cast<const To *>(in), row_stride, multi_stride);
}
+
+ /*** Indirect interface ***/
+ virtual void set_indirect_parameters(size_t, const To *const *const *)
+ {
+ }
+
+ void set_indirect_parameters_generic(size_t sz, const void *const *const *ptr) override
+ {
+ set_indirect_parameters(sz, reinterpret_cast<const To *const *const *>(ptr));
+ }
};
} // namespace arm_gemm