| 13 | namespace { |
| 14 | struct AllA64Kernel { |
| 15 | AllA64Kernel() { |
| 16 | inner_map[KernelPack::KernType::ConvKernel] = { |
| 17 | std::make_shared<Arm64::Conv1x1FloatMk4>(), |
| 18 | std::make_shared<Arm64::WinogradFloatF23Nchw44>(), |
| 19 | std::make_shared<Arm64::ConvIm2colFloat>(), |
| 20 | std::make_shared<Arm64::Conv1x1DotMk4>(), |
| 21 | std::make_shared<Arm64::ConvIm2colDot>(), |
| 22 | std::make_shared<Arm64::ConvDotNCHWNCHW44Stride2>(), |
| 23 | std::make_shared<Arm64::ConvDotNCHWNCHW44Stride1>()}; |
| 24 | inner_i8mm_map[KernelPack::KernType::ConvKernel] = { |
| 25 | std::make_shared<Arm64::ConvBiasIm2colI8mmNCHW44>(), |
| 26 | }; |
| 27 | |
| 28 | inner_map[KernelPack::KernType::MatrixMulKernel] = { |
| 29 | std::make_shared<Arm64::Fp16MatMulM8N8K8>(), |
| 30 | std::make_shared<Arm64::Fp32MatMulM8N12>(), |
| 31 | std::make_shared<Arm64::Fp32MatMulM8N12K4>(), |
| 32 | std::make_shared<Arm64::Fp32MatMulM4N16K4>(), |
| 33 | std::make_shared<Arm64::Int8DotMatMulM8N12K4>()}; |
| 34 | inner_i8mm_map[KernelPack::KernType::MatrixMulKernel] = { |
| 35 | std::make_shared<Arm64::Int8I8mmMatMulM8N12K8MK4>()}; |
| 36 | |
| 37 | inner_map[KernelPack::KernType::InternelKernel] = { |
| 38 | std::make_shared<Arm64::MatmulM4N16MK4Kernel>(), |
| 39 | std::make_shared<Arm64::MatmulM8N12Kernel>(), |
| 40 | std::make_shared<Arm64::MatmulM8N12MK4Kernel>(), |
| 41 | std::make_shared<Arm64::MatmulInt8DotM8N12MK4Kernel>()}; |
| 42 | |
| 43 | inner_map[KernelPack::KernType::ElemwiseKernel] = { |
| 44 | std::make_shared<Arm64::ElemwiseKernel>()}; |
| 45 | |
| 46 | inner_map[KernelPack::KernType::BatchMatmulKernel] = { |
| 47 | std::make_shared<Arm64::Fp32BatchedMatmul>()}; |
| 48 | } |
| 49 | std::unordered_map<KernelPack::KernType, std::vector<std::shared_ptr<KernelFunc>>> |
| 50 | inner_map; |
| 51 | std::unordered_map<KernelPack::KernType, std::vector<std::shared_ptr<KernelFunc>>> |
nothing calls this directly
no outgoing calls
no test coverage detected