MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / auto_select_gemm_kernel

Function auto_select_gemm_kernel

src/gpu/cl/operators/ClGemm.cpp:69–91  ·  view source on GitHub ↗

Automatically select between mlgo (prioritized) and default heuristics for gemm kernel type

Source from the content-addressed store, hash-verified

67}
68//Automatically select between mlgo (prioritized) and default heuristics for gemm kernel type
69inline CLGEMMKernelType
70auto_select_gemm_kernel(auto_heuristics::CommonQuery query, bool reshape_b_only_on_first_run, bool constant_weights)
71{
72 if (!constant_weights)
73 {
74 return CLGEMMKernelType::NATIVE;
75 }
76
77 auto gemm_kernel = auto_heuristics::select_mlgo_gemm_kernel(query, reshape_b_only_on_first_run);
78 if (bool(gemm_kernel))
79 {
80 if (validate_gemm_kernel(gemm_kernel.gemm_type))
81 {
82 ARM_COMPUTE_LOG_INFO_MSG_WITH_FORMAT_CORE("Use gemm kernel from mlgo heuristics: %s.",
83 to_string(gemm_kernel.gemm_type).c_str());
84 return gemm_kernel.gemm_type;
85 }
86 }
87 gemm_kernel = auto_heuristics::select_default_gemm_kernel(query, reshape_b_only_on_first_run);
88 ARM_COMPUTE_LOG_INFO_MSG_WITH_FORMAT_CORE("Use gemm kernel from default heuristics: %s.",
89 to_string(gemm_kernel.gemm_type).c_str());
90 return gemm_kernel.gemm_type;
91}
92// Validate lhs_info and rhs_info for reshaped only rhs kernel
93inline bool validate_lhs_rhs_info_reshaped_only_rhs(const GEMMLHSMatrixInfo &lhs_info,
94 const GEMMRHSMatrixInfo &rhs_info,

Callers 2

configureMethod · 0.70
validateMethod · 0.70

Calls 4

select_mlgo_gemm_kernelFunction · 0.85
validate_gemm_kernelFunction · 0.70
to_stringFunction · 0.50

Tested by

no test coverage detected