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.

device.cpp 1.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * \file dnn/test/rocm/megcore/device.cpp
  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. #include "hcc_detail/hcc_defs_prologue.h"
  12. #include "megcore.h"
  13. #include "test/common/utils.h"
  14. #include "./fixture.h"
  15. #include "test/rocm/utils.h"
  16. #include "hip_header.h"
  17. TEST_F(MegcoreROCM, DEVICE)
  18. {
  19. for (int id = -1; id < std::min(nr_devices(), 2); ++id) {
  20. megcoreDeviceHandle_t handle;
  21. megcoreCreateDeviceHandle(&handle, megcorePlatformROCM,
  22. id, 0);
  23. int deviceID;
  24. megcoreGetDeviceID(handle, &deviceID);
  25. ASSERT_EQ(id, deviceID);
  26. megcorePlatform_t platform;
  27. megcoreGetPlatform(handle, &platform);
  28. ASSERT_EQ(megcorePlatformROCM, platform);
  29. unsigned int flags;
  30. megcoreGetDeviceFlags(handle, &flags);
  31. ASSERT_EQ(0u, flags);
  32. size_t memAlignmentInBytes;
  33. megcoreGetMemAlignment(handle, &memAlignmentInBytes);
  34. megcoreActivate(handle);
  35. void *ptr;
  36. megcoreMalloc(handle, &ptr, 256);
  37. megcoreFree(handle, ptr);
  38. megcoreDestroyDeviceHandle(handle);
  39. }
  40. }
  41. TEST_F(MegcoreROCM, ERROR_MSG) {
  42. #if MEGDNN_ENABLE_EXCEPTIONS
  43. megcoreDeviceHandle_t handle;
  44. ASSERT_THROW(
  45. megcoreCreateDeviceHandle(
  46. &handle, megcorePlatformROCM, nr_devices(), 0),
  47. megdnn::test::MegDNNError);
  48. hipGetLastError();
  49. hip_check(hipGetLastError());
  50. #endif
  51. }
  52. // vim: syntax=cpp.doxygen

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