cuda_compat.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #ifdef USE_ROCM
  3. #include <hip/hip_runtime.h>
  4. #endif
  5. #ifndef USE_ROCM
  6. #define WARP_SIZE 32
  7. #else
  8. #define WARP_SIZE warpSize
  9. #endif
  10. #ifndef USE_ROCM
  11. #define APHRODITE_LDG(arg) __ldg(arg)
  12. #else
  13. #define APHRODITE_LDG(arg) *(arg)
  14. #endif
  15. #ifndef USE_ROCM
  16. #define APHRODITE_SHFL_XOR_SYNC(var, lane_mask) \
  17. __shfl_xor_sync(uint32_t(-1), var, lane_mask)
  18. #define APHRODITE_SHFL_XOR_SYNC_WIDTH(var, lane_mask, width) \
  19. __shfl_xor_sync(uint32_t(-1), var, lane_mask, width)
  20. #else
  21. #define APHRODITE_SHFL_XOR_SYNC(var, lane_mask) __shfl_xor(var, lane_mask)
  22. #define APHRODITE_SHFL_XOR_SYNC_WIDTH(var, lane_mask, width) \
  23. __shfl_xor(var, lane_mask, width)
  24. #endif
  25. #ifndef USE_ROCM
  26. #define APHRODITE_SHFL_SYNC(var, src_lane) \
  27. __shfl_sync(uint32_t(-1), var, src_lane)
  28. #else
  29. #define APHRODITE_SHFL_SYNC(var, src_lane) __shfl(var, src_lane)
  30. #endif
  31. #ifndef USE_ROCM
  32. #define APHRODITE_SHFL_DOWN_SYNC(var, lane_delta) \
  33. __shfl_down_sync(uint32_t(-1), var, lane_delta)
  34. #else
  35. #define APHRODITE_SHFL_DOWN_SYNC(var, lane_delta) __shfl_down(var, lane_delta)
  36. #endif
  37. #ifndef USE_ROCM
  38. #define APHRODITE_DevFuncAttribute_SET_MaxDynamicSharedMemorySize(FUNC, VAL) \
  39. cudaFuncSetAttribute(FUNC, cudaFuncAttributeMaxDynamicSharedMemorySize, VAL)
  40. #else
  41. #define APHRODITE_DevFuncAttribute_SET_MaxDynamicSharedMemorySize(FUNC, VAL) \
  42. hipFuncSetAttribute(FUNC, hipFuncAttributeMaxDynamicSharedMemorySize, VAL)
  43. #endif