Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Variables
nbnxm_sycl_kernel_utils.h File Reference
#include "gromacs/gpu_utils/sycl_kernel_utils.h"
#include "gromacs/nbnxm/pairlist.h"
#include "gromacs/nbnxm/pairlistparams.h"
+ Include dependency graph for nbnxm_sycl_kernel_utils.h:
+ This graph shows which files directly or indirectly include this file:

Description

Helper functions and constants for SYCL NBNXM kernels.

Macros

#define GMX_NBNXN_PRUNE_KERNEL_JPACKED_CONCURRENCY   4
 Default for the prune kernel's jPacked processing concurrency.
 
#define UNIFORM_LOAD_CLUSTER_PAIR_DATA(x)   (x)
 Explicit uniform load across the warp. More...
 

Variables

static constexpr int Nbnxm::c_syclPruneKernelJPackedConcurrency = 4
 Prune kernel's jPacked processing concurrency. More...
 

Macro Definition Documentation

#define UNIFORM_LOAD_CLUSTER_PAIR_DATA (   x)    (x)

Explicit uniform load across the warp.

Uses the readfirstlane intrinsic to ensure that uniform loads use scalar registers and subsequent operations on the results generate scalar instructions.

Note that some ROCm versions' compilers can figure out that the nbnxm exclusion indices and imasks are uniform and generate the right instructions, but others (like 4.5 and 5.0.2) do not.