Gromacs  2023.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
sycl_kernel_utils.h File Reference
#include "gmxsycl.h"
+ Include dependency graph for sycl_kernel_utils.h:

Description

SYCL kernel helper functions.

Author
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com

Macros

#define SYCL_ASSERT(condition)
 

Functions

constexpr bool compilingForHost ()
 
template<int expectedSubGroupSize>
constexpr bool compilingForSubGroupSize ()
 
template<int expectedSubGroupSize>
constexpr bool skipKernelCompilation ()
 
template<typename T , sycl_2020::memory_scope MemoryScope, sycl::access::address_space AddressSpace>
static void atomicAddDefault (T &val, const T delta)
 
template<typename T , sycl_2020::memory_scope MemoryScope = sycl_2020::memory_scope::device, sycl::access::address_space AddressSpace = sycl::access::address_space::global_space>
static void atomicFetchAdd (T &val, const T delta)
 Convenience wrapper to do atomic addition to a global buffer.
 
template<typename T >
static void atomicFetchAddLocal (T &val, const T delta)
 
template<typename T , sycl_2020::memory_scope MemoryScope = sycl_2020::memory_scope::device>
static T atomicLoad (T &val)
 Convenience wrapper to do atomic loads from a global buffer.
 
template<int Dim>
static void subGroupBarrier (const sycl::nd_item< Dim > itemIdx)
 Issue an intra sub-group barrier. More...
 

Variables

static constexpr unsigned int c_cudaFullWarpMask = 0xffffffff
 Full warp active thread mask used in CUDA warp-level primitives.
 

Function Documentation

template<int Dim>
static void subGroupBarrier ( const sycl::nd_item< Dim >  itemIdx)
inlinestatic

Issue an intra sub-group barrier.

Equivalent with CUDA's syncwarp(c_cudaFullWarpMask).