Skip to main content

Rocky Solver SDK 2024 R2

api_backend

Last update: 17.07.2025
1#pragma once
2
3#ifdef __CUDA_ARCH__
4#include <rocky20/cuda/cuda_backend.hpp>
5#else
6#include <rocky20/device/omp_backend.hpp>
7#endif
8
9namespace backend
10{
11
12template <typename T>
13__host__ __device__ void atomic_add(T *address, T val)
14{
15#ifdef __CUDA_ARCH__
16 CudaBackend::AtomicAdd(address, val);
17#else
18 OMPBackend::AtomicAdd(address, val);
19#endif
20}
21
22template <typename T>
23__host__ __device__ void atomic_add(T *address, T val, T &current_value)
24{
25#ifdef __CUDA_ARCH__
26 CudaBackend::AtomicAdd(address, val, current_value);
27#else
28 OMPBackend::AtomicAdd(address, val, current_value);
29#endif
30}
31
32template <typename T>
33__host__ __device__ void atomic_max(T* address, T val)
34{
35#ifdef __CUDA_ARCH__
36 CudaBackend::AtomicMax(address, val);
37#else
38 OMPBackend::AtomicMax(address, val);
39#endif
40}
41
42}

Connect with Ansys