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.

common.h 1.3 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * \file dnn/include/megdnn/common.h
  3. * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  4. *
  5. * Copyright (c) 2014-2021 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. #pragma once
  12. #include "megbrain_build_config.h"
  13. #if MGB_ENABLE_GETENV
  14. #define MGB_GETENV ::std::getenv
  15. #else
  16. #define MGB_GETENV(_name) static_cast<char*>(nullptr)
  17. #endif
  18. #ifdef WIN32
  19. #define unsetenv(_name) _putenv_s(_name, "");
  20. #define setenv(name, value, overwrite) _putenv_s(name, value)
  21. #endif
  22. namespace megdnn {
  23. /*!
  24. * \brief whether there is an algorithm from algo_pack() that is available for
  25. * current size
  26. */
  27. template <class Opr, typename... Args>
  28. bool has_available_algo(Opr* opr, Args&&... args) {
  29. const typename Opr::AlgoBase::SizeArgs size_args(opr, std::forward<Args>(args)...);
  30. for (auto i : Opr::algo_pack().all_algos) {
  31. if (i->is_available(size_args)) {
  32. return true;
  33. }
  34. }
  35. return false;
  36. }
  37. } // namespace megdnn
  38. // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}

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