/** * \file dnn/src/arm_common/conv_bias/quint8/stride1_dotprod.h * MegEngine is Licensed under the Apache License, Version 2.0 (the "License") * * Copyright (c) 2014-2020 Megvii Inc. All rights reserved. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ #if __ARM_FEATURE_DOTPROD #pragma once #include "src/arm_common/conv_bias/opr_impl.h" namespace megdnn { namespace arm_common { namespace direct_dotprod_quint8_stride1 { using NCBKernSizeParam = fallback::ConvBiasImpl::NCBKernSizeParam; using NCBKernParam = fallback::ConvBiasImpl::NCBKernParam; using NCBKernIndex = fallback::ConvBiasImpl::NCBKernIndex; using conv_fun = std::function; bool can_conv_direct_stride1_quint8(const NCBKernSizeParam& param); WorkspaceBundle get_bundle(const NCBKernSizeParam& param, bool m_large_group); void copy_padding_kern(WorkspaceBundle bundle, const NCBKernParam& kern_param, const NCBKernIndex& ncb_index, const CpuNDRange& workspace_ids); template void do_conv_kern(WorkspaceBundle bundle, const NCBKernParam& kern_param, const NCBKernIndex& ncb_index, const CpuNDRange& workspace_ids); SmallVector get_kimpls(const NCBKernSizeParam& param, bool); } // namespace direct_dotprod_quint8_stride1 } // namespace arm_common } // namespace megdnn #endif // vim: syntax=cpp.doxygen