#include <alpaka/alpaka.hpp>
#include "FWCore/Utilities/interface/bit_cast.h"
Go to the source code of this file.
|
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>> |
ALPAKA_FN_HOST_ACC static ALPAKA_FN_INLINE float | atomicMaxF (const TAcc &acc, float *address, float val) |
|
◆ atomicMaxF()
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
ALPAKA_FN_HOST_ACC static ALPAKA_FN_INLINE float atomicMaxF |
( |
const TAcc & |
acc, |
|
|
float * |
address, |
|
|
float |
val |
|
) |
| |
|
static |
Definition at line 11 of file atomicMaxF.h.
References cms::cudacompat::atomicCAS(), edm::bit_cast(), runTheMatrix::ret, and heppy_batch::val.
Referenced by ALPAKA_ACCELERATOR_NAMESPACE::hcalFastCluster_exotic(), ALPAKA_ACCELERATOR_NAMESPACE::hcalFastCluster_multiSeedIterative(), and ALPAKA_ACCELERATOR_NAMESPACE::hcalFastCluster_multiSeedParallel().
12 #if defined(__CUDA_ARCH__) or defined(__HIP_DEVICE_COMPILE__) 14 int ret = __float_as_int(*address);
15 while (
val > __int_as_float(
ret)) {
20 return __int_as_float(
ret);
24 while (
val > edm::bit_cast<float>(
ret)) {
26 if ((
ret = alpaka::atomicCas(acc, (
int*)address, old, edm::bit_cast<int>(
val))) == old)
30 #endif // __CUDA_ARCH__ or __HIP_DEVICE_COMPILE__ T1 atomicCAS(T1 *address, T1 compare, T2 val)
To bit_cast(const From &src) noexcept
ret
prodAgent to be discontinued