24.02.1
|
Go to the documentation of this file.
49 using ConfigurationFunctionExecutorPtr = std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> (
53 &ClGemmDefaultConfigNativeValhall::configure_G77_f32, &ClGemmDefaultConfigNativeValhall::configure_G77_f16,
54 &ClGemmDefaultConfigNativeValhall::configure_G77_u8);
58 return (this->*func)(m, n, k,
b);
61 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
62 ClGemmDefaultConfigNativeValhall::configure_G77_f32(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
71 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
73 else if (n >= 2048 && n < 8192)
75 return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, 1,
false,
false,
false,
false);
79 return configure_lhs_rhs_info(m, n, 1, 8, 4, 1, 1,
false,
false,
false,
false);
84 return configure_lhs_rhs_info(m, n, 5, 4, 2, 1, 1,
false,
false,
false,
false);
88 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
89 ClGemmDefaultConfigNativeValhall::configure_G77_f16(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
98 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
100 else if (n >= 2048 && n < 8192)
102 return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, 1,
false,
false,
false,
false);
106 return configure_lhs_rhs_info(m, n, 1, 8, 4, 1, 1,
false,
false,
false,
false);
111 return configure_lhs_rhs_info(m, n, 4, 8, 2, 1, 1,
false,
false,
false,
false);
115 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
116 ClGemmDefaultConfigNativeValhall::configure_G77_u8(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
127 return configure_lhs_rhs_info(m, n, 1, 2, 16, 1, 1,
false,
false,
false,
false);
129 else if (n >= 2048 && n < 16384)
131 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
135 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
142 return configure_lhs_rhs_info(m, n, 2, 2, 16, 1, 1,
false,
false,
false,
false);
146 return configure_lhs_rhs_info(m, n, 5, 2, 16, 1, 1,
false,
false,
false,
false);
156 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
160 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
165 return configure_lhs_rhs_info(m, n, 2, 8, 16, 1, 1,
false,
false,
false,
false);
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.
bool dot8_supported(const cl::Device &device)
Helper function to check whether the cl_arm_integer_dot_product_int8 extension is supported.
UniqueGemmCommon< Top, Tret > gemm(const GemmArgs &args, const OutputStage &os)
Valhall based OpenCL GEMMNative configuration.
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.
#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)
Basic container for the OpenCL GEMM configuration functions.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
GPUTarget
Available GPU Targets.
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.
Copyright (c) 2017-2024 Arm Limited.
DataType
Available data types.
ClGemmDefaultConfigNativeValhall(GPUTarget gpu)
Constructor.
T get_function(DataType data_type)
Method to return the GEMM configuration function based on data type.