COMPMID-1965 Extend CLGEMMMatrixMultiplyReshapedKernel to support transposed LHS (t) and not-transpose RHS
Change-Id: I437a00d7213fefd6f4365071b46174d44df8b85c
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1677
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/tests/validation/fixtures/GEMMFixture.h b/tests/validation/fixtures/GEMMFixture.h
index a04a901..854cc4a 100644
--- a/tests/validation/fixtures/GEMMFixture.h
+++ b/tests/validation/fixtures/GEMMFixture.h
@@ -673,21 +673,21 @@
public:
template <typename...>
void setup(unsigned int m, unsigned int n, unsigned int k, unsigned int batch_size, unsigned int m0, unsigned int n0, unsigned int k0, unsigned int v0, unsigned int h0, bool interleave_lhs,
- bool interleave_rhs, DataType data_type, float alpha, float beta, bool broadcast_bias, const ActivationLayerInfo &act_info)
+ bool interleave_rhs, DataType data_type, float alpha, float beta, bool broadcast_bias, bool lhs_transpose, const ActivationLayerInfo &act_info)
{
GEMMLHSMatrixInfo lhs_info;
lhs_info.m0 = m0;
lhs_info.k0 = k0;
lhs_info.v0 = v0;
lhs_info.interleave = interleave_lhs;
- lhs_info.transpose = false;
+ lhs_info.transpose = lhs_transpose;
GEMMRHSMatrixInfo rhs_info;
rhs_info.n0 = n0;
rhs_info.k0 = k0;
rhs_info.h0 = h0;
rhs_info.interleave = interleave_rhs;
- rhs_info.transpose = true;
+ rhs_info.transpose = !lhs_transpose;
// Set the tensor shapes for LHS and RHS matrices
const TensorShape lhs_shape(k, m, batch_size);
@@ -821,21 +821,21 @@
template <typename...>
void setup(unsigned int m_w, unsigned int m_h, unsigned int n, unsigned int k, unsigned int batch_size, unsigned int m0, unsigned int n0, unsigned int k0, unsigned int v0, unsigned int h0,
bool interleave_lhs,
- bool interleave_rhs, DataType data_type, float alpha, float beta, const ActivationLayerInfo &act_info)
+ bool interleave_rhs, DataType data_type, float alpha, float beta, bool lhs_transpose, const ActivationLayerInfo &act_info)
{
GEMMLHSMatrixInfo lhs_info;
lhs_info.m0 = m0;
lhs_info.k0 = k0;
lhs_info.v0 = v0;
lhs_info.interleave = interleave_lhs;
- lhs_info.transpose = false;
+ lhs_info.transpose = lhs_transpose;
GEMMRHSMatrixInfo rhs_info;
rhs_info.n0 = n0;
rhs_info.k0 = k0;
rhs_info.h0 = h0;
rhs_info.interleave = interleave_rhs;
- rhs_info.transpose = true;
+ rhs_info.transpose = !lhs_transpose;
// In case of GEMM3D, m is the product between m_w and m_h
const unsigned int m = m_w * m_h;