MCPcopy Create free account
hub / github.com/MegEngine/MegCC / AllA64Kernel

Method AllA64Kernel

compiler/lib/KernelGen/Arm/Arm64/KernelPack.cpp:15–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13namespace {
14struct 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>>>

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected