49 using ConfigurationFunctionExecutorPtr = std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> (
53 &ClGemmDefaultConfigNativeBifrost::configure_G71_f32,
54 &ClGemmDefaultConfigNativeBifrost::configure_G71_f32,
55 &ClGemmDefaultConfigNativeBifrost::configure_G71_u8);
58 &ClGemmDefaultConfigNativeBifrost::configure_G76_f32,
59 &ClGemmDefaultConfigNativeBifrost::configure_G76_f32,
60 &ClGemmDefaultConfigNativeBifrost::configure_G76_u8);
63 &ClGemmDefaultConfigNativeBifrost::configure_default_f32,
64 &ClGemmDefaultConfigNativeBifrost::configure_default_f32,
65 &ClGemmDefaultConfigNativeBifrost::configure_default_u8);
67 ConfigurationFunctionExecutorPtr func =
nullptr;
83 return (this->*func)(m, n, k,
b);
86 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
87 ClGemmDefaultConfigNativeBifrost::configure_G71_f32(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
96 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
98 else if (n >= 2048 && n < 8192)
100 return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, 1,
false,
false,
false,
false);
104 return configure_lhs_rhs_info(m, n, 1, 8, 4, 1, 1,
false,
false,
false,
false);
109 return configure_lhs_rhs_info(m, n, 4, 4, 4, 1, 1,
false,
false,
false,
false);
113 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
114 ClGemmDefaultConfigNativeBifrost::configure_G71_u8(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
125 return configure_lhs_rhs_info(m, n, 1, 2, 16, 1, 1,
false,
false,
false,
false);
127 else if (n >= 2048 && n < 16384)
129 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
133 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
140 return configure_lhs_rhs_info(m, n, 2, 2, 16, 1, 1,
false,
false,
false,
false);
144 return configure_lhs_rhs_info(m, n, 5, 2, 16, 1, 1,
false,
false,
false,
false);
154 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
158 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
163 return configure_lhs_rhs_info(m, n, 2, 8, 16, 1, 1,
false,
false,
false,
false);
168 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
169 ClGemmDefaultConfigNativeBifrost::configure_G76_f32(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
178 return configure_lhs_rhs_info(m, n, 1, 4, 2, 1, 1,
false,
false,
false,
false);
184 return configure_lhs_rhs_info(m, n, 1, 2, 2, 1, 1,
false,
false,
false,
false);
186 else if (k >= 2048 && k < 16384)
188 return configure_lhs_rhs_info(m, n, 1, 2, 4, 1, 1,
false,
false,
false,
false);
192 return configure_lhs_rhs_info(m, n, 1, 2, 8, 1, 1,
false,
false,
false,
false);
198 return configure_lhs_rhs_info(m, n, 2, 8, 2, 1, 1,
false,
false,
false,
false);
202 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
203 ClGemmDefaultConfigNativeBifrost::configure_G76_u8(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
212 return configure_lhs_rhs_info(m, n, 1, 2, 16, 1, 1,
false,
false,
false,
false);
214 else if (n >= 2048 && n < 16384)
216 return configure_lhs_rhs_info(m, n, 1, 4, 16, 1, 1,
false,
false,
false,
false);
220 return configure_lhs_rhs_info(m, n, 1, 8, 16, 1, 1,
false,
false,
false,
false);
227 return configure_lhs_rhs_info(m, n, 2, 2, 16, 1, 1,
false,
false,
false,
false);
231 return configure_lhs_rhs_info(m, n, 5, 2, 16, 1, 1,
false,
false,
false,
false);
236 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
237 ClGemmDefaultConfigNativeBifrost::configure_default_f32(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
242 return configure_lhs_rhs_info(m, n, 5, 4, 4, 1, 1,
false,
false,
false,
false);
245 std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo>
246 ClGemmDefaultConfigNativeBifrost::configure_default_u8(
unsigned int m,
unsigned int n,
unsigned int k,
unsigned int b)
251 return configure_lhs_rhs_info(m, n, 5, 2, 16, 1, 1,
false,
false,
false,
false);