Gromacs  2026.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs | Functions | Variables
gputraits_hip.h File Reference
#include <hip/hip_runtime.h>
#include "gromacs/utility/vectypes.h"
+ Include dependency graph for gputraits_hip.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the HIP type traits.

Author
Paul Bauer paul..nosp@m.baue.nosp@m.r.q@g.nosp@m.mail.nosp@m..com

Classes

struct  DeviceFloat4
 Convenience alias for 4-wide float in shared device kernels. More...
 
struct  DeviceInt3
 Convenience alias for int3 in shared device kernels. More...
 
struct  DeviceInt4
 Convenience alias for int4 in shared device kernels. More...
 

Macros

#define GMX_HOST_ATTRIBUTE   __host__
 
#define GMX_DEVICE_ATTRIBUTE   __device__
 
#define GMX_HOSTDEVICE_ATTRIBUTE   GMX_HOST_ATTRIBUTE GMX_DEVICE_ATTRIBUTE
 
#define GMX_DEVICE_ASSERT(condition)   assert(condition)
 

Typedefs

using DeviceTexture = hipTextureObject_t
 Device texture for fast read-only data fetching.
 
using CommandEvent = void
 Single GPU call timing event - meaningless in HIP.
 
using Float2 = float2
 Convenience alias for 2-wide float.
 
using Float3 = gmx::RVec
 Convenience alias for 3-wide float.
 
using DeviceFloat3 = float3
 Convenience alias for 3-wide float in shared device kernels.
 
using Float4 = float4
 Convenience alias for 4-wide float.
 
using Int4 = int4
 Convenience alias for 4-wide int.
 
template<typename T >
using DeviceGlobalPtr = T *
 Convenience alias for global device memory.
 
template<typename T >
using DeviceLocalPtr = T *
 Convenience alias for local device memory.
 
template<typename T >
using DevicePrivatePtr = T *
 Convenience alias for private device memory.
 

Functions

static __device__
__forceinline__ DeviceInt4 
loadInt4 (const int *__restrict__ input, const int index)
 

Variables

static constexpr bool c_canEmbedBuffers = true
 Sets whether device code can use arrays that are embedded in structs.