| 425 | /* ===================== F32 algo ===================== */ |
| 426 | namespace { |
| 427 | void f32_kern(const MatrixMulImpl::KernParam& kern_param) { |
| 428 | MIDOUT_BEGIN(megdnn_fb_gi_f32_4x12, midout_iv("f32_kern"_hash)) { |
| 429 | auto M = kern_param.M, N = kern_param.N, K = kern_param.K; |
| 430 | auto trA = kern_param.trA, trB = kern_param.trB; |
| 431 | auto LDA = kern_param.LDA, LDB = kern_param.LDB, LDC = kern_param.LDC; |
| 432 | auto A_type = kern_param.A_type, B_type = kern_param.B_type, |
| 433 | C_type = kern_param.C_type; |
| 434 | const auto Aptr = kern_param.A<float>(), Bptr = kern_param.B<float>(); |
| 435 | auto Cptr = kern_param.C<float>(); |
| 436 | |
| 437 | matmul::fallback::gi_sgemm_4x12 strategy(M, N, K, A_type, B_type, C_type); |
| 438 | megdnn::matmul::GemmInterleaved<matmul::fallback::gi_sgemm_4x12>( |
| 439 | M, N, K, trA, trB, strategy) |
| 440 | .execute(Aptr, LDA, Bptr, LDB, Cptr, LDC, kern_param.workspace_ptr); |
| 441 | } |
| 442 | MIDOUT_END(); |
| 443 | } |
| 444 | |
| 445 | } // anonymous namespace |
| 446 |
nothing calls this directly
no test coverage detected