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.7 kB

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