48 using ConfigurationFunctionExecutorPtr = std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> (
ClGemmDefaultConfigNativeValhall::*)(
unsigned int m,
unsigned int n,
unsigned int k,
52 &ClGemmDefaultConfigNativeValhall::configure_G77_f16,
53 &ClGemmDefaultConfigNativeValhall::configure_G77_u8);
57 return (this->*func)(m, n, k,
b);
60 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> ClGemmDefaultConfigNativeValhall::configure_G77_f32(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
69 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
71 else if(n >= 2048 && n < 8192)
73 return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, 1,
false,
false,
false,
false);
77 return configure_lhs_rhs_info(m, n, 1, 8, 4, 1, 1,
false,
false,
false,
false);
82 return configure_lhs_rhs_info(m, n, 5, 4, 2, 1, 1,
false,
false,
false,
false);
86 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> ClGemmDefaultConfigNativeValhall::configure_G77_f16(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
95 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
97 else if(n >= 2048 && n < 8192)
99 return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, 1,
false,
false,
false,
false);
103 return configure_lhs_rhs_info(m, n, 1, 8, 4, 1, 1,
false,
false,
false,
false);
108 return configure_lhs_rhs_info(m, n, 4, 8, 2, 1, 1,
false,
false,
false,
false);
112 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> ClGemmDefaultConfigNativeValhall::configure_G77_u8(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
123 return configure_lhs_rhs_info(m, n, 1, 2, 16, 1, 1,
false,
false,
false,
false);
125 else if(n >= 2048 && n < 16384)
127 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
131 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
138 return configure_lhs_rhs_info(m, n, 2, 2, 16, 1, 1,
false,
false,
false,
false);
142 return configure_lhs_rhs_info(m, n, 5, 2, 16, 1, 1,
false,
false,
false,
false);
152 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
156 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
161 return configure_lhs_rhs_info(m, n, 2, 8, 16, 1, 1,
false,
false,
false,
false);
Basic container for the OpenCL GEMM configuration functions.
bool dot8_supported(const cl::Device &device)
Helper function to check whether the cl_arm_integer_dot_product_int8 extension is supported...
Basic interface for the GEMM kernel configuration.
static CLKernelLibrary & get()
Access the KernelLibrary singleton.
Manages all the OpenCL kernels compilation and caching, provides accessors for the OpenCL Context...
Copyright (c) 2017-2021 Arm Limited.
ClGemmDefaultConfigNativeValhall(GPUTarget gpu)
Constructor.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)
std::pair< GEMMLHSMatrixInfo, GEMMRHSMatrixInfo > configure_lhs_rhs_info(unsigned int m, unsigned int n, unsigned int m0, unsigned int n0, unsigned int k0, unsigned int v0, unsigned int h0, bool lhs_interleave, bool rhs_interleave, bool lhs_transpose, bool rhs_transpose, bool export_to_cl_image)
Configure GEMMLHSMatrixInfo and GEMMRHSMatrixInfo.
T get_function(DataType data_type)
Method to return the GEMM configuration function based on data type.
GPUTarget
Available GPU Targets.
UniqueGemmCommon< Top, Tret > gemm(const GemmArgs &args, const OutputStage &={})
std::pair< GEMMLHSMatrixInfo, GEMMRHSMatrixInfo > configure(unsigned int m, unsigned int n, unsigned int k, unsigned int b, DataType data_type) override
Given M, N, K and B, this method returns the GEMMLHSMatrixInfo and GEMMRHSMatrixInfo to be used...
DataType
Available data types.