1#ifndef KERNEL_COMPAT_H_
2#define KERNEL_COMPAT_H_
18#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ < 600 && !defined(__CUDA_ON_DCU)
19static __inline__ __device__
double atomicAdd(
double* address,
double val)
21 unsigned long long int* address_as_ull = (
unsigned long long int*)address;
22 unsigned long long int old = *address_as_ull, assumed;
26 old = atomicCAS(address_as_ull, assumed, __double_as_longlong(val + __longlong_as_double(assumed)));
28 }
while (assumed != old);
29 return __longlong_as_double(old);