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.

computing.cpp 1.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "megcore.h"
  2. #include <gtest/gtest.h>
  3. #include "test/common/utils.h"
  4. TEST(MegcoreCPU, COMPUTING) {
  5. megcoreDeviceHandle_t devHandle;
  6. megcoreCreateDeviceHandle(&devHandle, megcorePlatformCPU, -1, 0);
  7. megcoreComputingHandle_t compHandle;
  8. megcoreCreateComputingHandle(&compHandle, devHandle, 0);
  9. megcoreDeviceHandle_t devHandle2;
  10. megcoreGetDeviceHandle(compHandle, &devHandle2);
  11. ASSERT_EQ(devHandle, devHandle2);
  12. unsigned int flags;
  13. megcoreGetComputingFlags(compHandle, &flags);
  14. ASSERT_EQ(0u, flags);
  15. unsigned char *src, *dst;
  16. static const size_t N = 5;
  17. megcoreMalloc(devHandle, (void**)&src, N);
  18. megcoreMalloc(devHandle, (void**)&dst, N);
  19. megcoreMemset(compHandle, src, 0x0F, N);
  20. megcoreMemset(compHandle, dst, 0xF0, N);
  21. megcoreSynchronize(compHandle);
  22. for (size_t i = 0; i < N; ++i) {
  23. ASSERT_EQ(0x0F, src[i]);
  24. ASSERT_EQ(0xF0, dst[i]);
  25. }
  26. megcoreMemcpy(compHandle, dst, src, N, megcoreMemcpyDeviceToDevice);
  27. megcoreSynchronize(compHandle);
  28. for (size_t i = 0; i < N; ++i) {
  29. ASSERT_EQ(dst[i], src[i]);
  30. }
  31. megcoreFree(devHandle, src);
  32. megcoreFree(devHandle, dst);
  33. megcoreDestroyComputingHandle(compHandle);
  34. megcoreDestroyDeviceHandle(devHandle);
  35. }
  36. // vim: syntax=cpp.doxygen