| 313 | namespace { |
| 314 | template <typename stype, typename dtype> |
| 315 | void gevm_like_kern(const MatrixMulImpl::KernParam& kern_param) { |
| 316 | MIDOUT_BEGIN(megdnn_arm_exec_fp32, midout_iv("gevm_like_kern"_hash)) { |
| 317 | auto M = kern_param.M, N = kern_param.N, K = kern_param.K; |
| 318 | auto LDB = kern_param.LDB; |
| 319 | const auto Aptr = kern_param.A<stype>(), Bptr = kern_param.B<stype>(); |
| 320 | auto Cptr = kern_param.C<dtype>(); |
| 321 | megdnn::arm_common::gemv_like(Bptr, Aptr, Cptr, N, M, K, LDB, 1, 1); |
| 322 | } |
| 323 | MIDOUT_END(); |
| 324 | } |
| 325 | } // anonymous namespace |
| 326 | |
| 327 | bool MatrixMulImpl::AlgoGevm::usable(const KernSizeParam& kern_size_param) const { |
nothing calls this directly
no test coverage detected