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.

main.cpp 1.5 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * \file test/src/main.cpp
  3. *
  4. * This file is part of MegBrain, a deep learning framework developed by Megvii.
  5. *
  6. * \copyright Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
  7. *
  8. */
  9. #include "./rng_seed.h"
  10. #include "megbrain/comp_node.h"
  11. #include "megbrain/test/helper.h"
  12. #include <gtest/gtest.h>
  13. #include <gmock/gmock.h>
  14. #include <cstdlib>
  15. extern "C" int gtest_main(int argc, char** argv) {
  16. if (getenv("MGB_TEST_USECPU")) {
  17. mgb::CompNode::Locator::set_unspec_device_type(
  18. mgb::CompNode::DeviceType::CPU);
  19. }
  20. if (getenv("MGB_TEST_NO_LOG")) {
  21. mgb::set_log_level(mgb::LogLevel::ERROR);
  22. }
  23. #ifdef __linux__
  24. if (getenv("MGB_TEST_WAIT_GDB")) {
  25. printf("wait gdb attach: pid: %d ", getpid());
  26. getchar();
  27. }
  28. #endif
  29. auto&& listeners = ::testing::UnitTest::GetInstance()->listeners();
  30. MGB_TRY {
  31. srand(time(nullptr));
  32. ::testing::InitGoogleMock(&argc, argv);
  33. listeners.Append(&mgb::RNGSeedManager::inst());
  34. auto rst = RUN_ALL_TESTS();
  35. mgb::CompNode::finalize();
  36. listeners.Release(&mgb::RNGSeedManager::inst());
  37. return rst;
  38. }
  39. MGB_CATCH(std::exception & exc,
  40. { mgb_log_warn("uncaught exception: %s", exc.what()); });
  41. listeners.Release(&mgb::RNGSeedManager::inst());
  42. return 0;
  43. }
  44. #if !MGB_NO_MAIN
  45. int main(int argc, char** argv) {
  46. return gtest_main(argc, argv);
  47. }
  48. #endif
  49. // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}

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