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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "megcore.h"
  2. #include <cuda_runtime_api.h>
  3. #include "./fixture.h"
  4. #include "test/common/utils.h"
  5. #include "test/cuda/utils.h"
  6. TEST_F(MegcoreCUDA, DEVICE) {
  7. for (int id = -1; id < std::min(nr_devices(), 2); ++id) {
  8. megcoreDeviceHandle_t handle;
  9. megcoreCreateDeviceHandle(&handle, megcorePlatformCUDA, id, 0);
  10. int deviceID;
  11. megcoreGetDeviceID(handle, &deviceID);
  12. ASSERT_EQ(id, deviceID);
  13. megcorePlatform_t platform;
  14. megcoreGetPlatform(handle, &platform);
  15. ASSERT_EQ(megcorePlatformCUDA, platform);
  16. unsigned int flags;
  17. megcoreGetDeviceFlags(handle, &flags);
  18. ASSERT_EQ(0u, flags);
  19. size_t memAlignmentInBytes;
  20. megcoreGetMemAlignment(handle, &memAlignmentInBytes);
  21. megcoreActivate(handle);
  22. void* ptr;
  23. megcoreMalloc(handle, &ptr, 256);
  24. megcoreFree(handle, ptr);
  25. megcoreDestroyDeviceHandle(handle);
  26. }
  27. }
  28. TEST_F(MegcoreCUDA, ERROR_MSG) {
  29. #if MEGDNN_ENABLE_EXCEPTIONS
  30. megcoreDeviceHandle_t handle;
  31. ASSERT_THROW(
  32. megcoreCreateDeviceHandle(&handle, megcorePlatformCUDA, nr_devices(), 0),
  33. megdnn::test::MegDNNError);
  34. cudaGetLastError();
  35. cuda_check(cudaGetLastError());
  36. #endif
  37. }
  38. // vim: syntax=cpp.doxygen