You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

stride1_dotprod.h 1.8 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * \file dnn/src/arm_common/conv_bias/quint8/stride1_dotprod.h
  3. * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  4. *
  5. * Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
  6. *
  7. * Unless required by applicable law or agreed to in writing,
  8. * software distributed under the License is distributed on an
  9. * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. */
  11. #if __ARM_FEATURE_DOTPROD
  12. #pragma once
  13. #include "src/arm_common/conv_bias/opr_impl.h"
  14. namespace megdnn {
  15. namespace arm_common {
  16. namespace direct_dotprod_quint8_stride1 {
  17. using NCBKernSizeParam = fallback::ConvBiasImpl::NCBKernSizeParam;
  18. using NCBKernParam = fallback::ConvBiasImpl::NCBKernParam;
  19. using NCBKernIndex = fallback::ConvBiasImpl::NCBKernIndex;
  20. using conv_fun = std::function<void(
  21. const WorkspaceBundle& bundle, const NCBKernParam& kern_param,
  22. const NCBKernIndex& ncb_index, const CpuNDRange& workspace_ids)>;
  23. bool can_conv_direct_stride1_quint8(const NCBKernSizeParam& param);
  24. WorkspaceBundle get_bundle(const NCBKernSizeParam& param, bool m_large_group);
  25. void copy_padding_kern(const WorkspaceBundle& bundle,
  26. const NCBKernParam& kern_param,
  27. const NCBKernIndex& ncb_index,
  28. const CpuNDRange& workspace_ids);
  29. template <size_t filter, BiasMode bias_mode, typename Op>
  30. void do_conv_kern(const WorkspaceBundle& bundle, const NCBKernParam& kern_param,
  31. const NCBKernIndex& ncb_index,
  32. const CpuNDRange& workspace_ids);
  33. SmallVector<ConvBiasImpl::NCBKern> get_kimpls(const NCBKernSizeParam& param,
  34. bool);
  35. } // namespace direct_dotprod_quint8_stride1
  36. } // namespace arm_common
  37. } // namespace megdnn
  38. #endif
  39. // vim: syntax=cpp.doxygen

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台