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.

megdnn_helper.cpp 1.3 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * \file test/src/megdnn_helper.cpp
  3. *
  4. * This file is part of MegBrain, a deep learning framework developed by Megvii.
  5. *
  6. * \copyright Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
  7. *
  8. */
  9. #include "megbrain/test/megdnn_helper.h"
  10. #include "megbrain/common.h"
  11. #define MEGCORE_CHECK(expr) \
  12. do { \
  13. auto _code = expr; \
  14. mgb_assert(_code == megcoreSuccess); \
  15. } while (0)
  16. namespace {
  17. struct MegDNNHandleBundle {
  18. std::unique_ptr<megdnn::Handle> handle;
  19. megcoreDeviceHandle_t dev_hdl;
  20. megcoreComputingHandle_t comp_hdl;
  21. MegDNNHandleBundle() {
  22. MEGCORE_CHECK(megcoreCreateDeviceHandle(&dev_hdl, megcorePlatformCPU));
  23. MEGCORE_CHECK(megcoreCreateComputingHandle(&comp_hdl, dev_hdl));
  24. handle = megdnn::Handle::make(comp_hdl, 2);
  25. }
  26. ~MegDNNHandleBundle() {
  27. MEGCORE_CHECK(megcoreDestroyComputingHandle(comp_hdl));
  28. MEGCORE_CHECK(megcoreDestroyDeviceHandle(dev_hdl));
  29. }
  30. };
  31. } // anonymous namespace
  32. megdnn::Handle* mgb::megdnn_naive_handle() {
  33. static MegDNNHandleBundle handle;
  34. return handle.handle.get();
  35. }
  36. // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}