28#if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED)
33 template<
typename TApi>
38 template<
typename TPlatform,
typename TSfinae>
42 namespace uniform_cuda_hip::detail
44 template<
typename TApi,
bool TBlocking>
45 class QueueUniformCudaHipRt;
48 template<
typename TApi>
51 template<
typename TApi>
54 template<
typename TApi>
58 template<
typename TApi>
75 return m_iDevice == rhs.m_iDevice;
80 return !((*this) == rhs);
90 return m_DevGenericImpl->getAllExistingQueues();
97 m_DevGenericImpl->registerQueue(spQueue);
108 typename TApi::DeviceProp_t devProp;
110 devProperties.
name = std::string(devProp.name);
112 std::size_t freeInternal(0u);
113 std::size_t totalInternal(0u);
119 TApi::deviceGetAttribute(&warpSize, TApi::deviceAttributeWarpSize, devHandle));
120 devProperties.
warpSizes = std::vector<std::size_t>{
static_cast<std::size_t
>(warpSize)};
133 , m_DevGenericImpl(
std::make_shared<
alpaka::detail::DevGenericImpl<IDeviceQueue>>())
139 std::shared_ptr<alpaka::detail::DevGenericImpl<IDeviceQueue>> m_DevGenericImpl;
146 template<
typename TApi>
147 struct GetName<DevUniformCudaHipRt<TApi>>
151 return dev.m_DevGenericImpl->deviceProperties(dev)->name;
156 template<
typename TApi>
157 struct GetMemBytes<DevUniformCudaHipRt<TApi>>
161 return dev.m_DevGenericImpl->deviceProperties(dev)->totalGlobalMem;
166 template<
typename TApi>
167 struct GetFreeMemBytes<DevUniformCudaHipRt<TApi>>
172 std::size_t freeInternal(0u);
173 std::size_t totalInternal(0u);
181 template<
typename TApi>
182 struct GetWarpSizes<DevUniformCudaHipRt<TApi>>
186 return dev.m_DevGenericImpl->deviceProperties(dev)->warpSizes;
191 template<
typename TApi>
192 struct GetPreferredWarpSize<DevUniformCudaHipRt<TApi>>
196 return dev.m_DevGenericImpl->deviceProperties(dev)->preferredWarpSize;
200# ifdef ALPAKA_ACC_GPU_CUDA_ENABLED
203 struct GetPreferredWarpSize<DevUniformCudaHipRt<ApiCudaRt>>
215 template<
typename TApi>
216 struct Reset<DevUniformCudaHipRt<TApi>>
229 template<
typename TApi>
232 [[nodiscard]]
static auto getNativeHandle(DevUniformCudaHipRt<TApi>
const& dev)
234 return dev.getNativeHandle();
239 template<
typename TApi>
240 struct PlatformType<DevUniformCudaHipRt<TApi>>
242 using type = PlatformUniformCudaHipRt<TApi>;
249 template<
typename TApi>
250 struct CurrentThreadWaitFor<DevUniformCudaHipRt<TApi>>
252 ALPAKA_FN_HOST static auto currentThreadWaitFor(DevUniformCudaHipRt<TApi>
const& dev) ->
void
262 template<
typename TApi>
263 struct QueueType<DevUniformCudaHipRt<TApi>, Blocking>
265 using type = QueueUniformCudaHipRtBlocking<TApi>;
268 template<
typename TApi>
269 struct QueueType<DevUniformCudaHipRt<TApi>, NonBlocking>
271 using type = QueueUniformCudaHipRtNonBlocking<TApi>;
#define ALPAKA_DEBUG_FULL_LOG_SCOPE
The alpaka accelerator library.
ALPAKA_FN_HOST constexpr auto getPreferredWarpSize(TDev const &dev) -> std::size_t
ALPAKA_FN_HOST auto getName(TDev const &dev) -> std::string
ALPAKA_FN_HOST auto getWarpSizes(TDev const &dev) -> std::vector< std::size_t >
ALPAKA_FN_HOST auto reset(TDev const &dev) -> void
Resets the device. What this method does is dependent on the accelerator.
ALPAKA_FN_HOST auto getFreeMemBytes(TDev const &dev) -> std::size_t
ALPAKA_FN_HOST auto getMemBytes(TDev const &dev) -> std::size_t
decltype(getNativeHandle(std::declval< TImpl >())) NativeHandle
Alias to the type of the native handle.
std::vector< std::size_t > warpSizes
std::size_t totalGlobalMem
std::size_t preferredWarpSize
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
The device free memory size get trait.
The device memory size get trait.
The device name get trait.
The device preferred warp size get trait.
The device warp size get trait.
static auto getNativeHandle(TImpl const &)