(git:34ef472)
grid_hip_internal_header.h File Reference
#include <algorithm>
#include <assert.h>
#include <hip/hip_runtime.h>
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../common/grid_basis_set.h"
#include "../common/grid_constants.h"
#include "grid_hip_context.h"

Go to the source code of this file.

Data Structures

struct  rocm_backend::orbital
 Orbital angular momentum. More...
 
struct  rocm_backend::ldiffs_value
 Differences in angular momentum. More...
 
struct  rocm_backend::smem_task< T >
 data needed for calculating the coefficients, forces, and stress More...
 
struct  rocm_backend::smem_task_reduced< T, T3 >
 data needed for collocate and integrate kernels More...
 
class  rocm_backend::smem_parameters
 

Namespaces

 rocm_backend
 

Macros

#define GRID_DEVICE   __device__
 

Functions

__device__ __inline__ double rocm_backend::fac (const int i)
 Factorial function, e.g. fac(5) = 5! = 120. More...
 
__host__ __device__ __inline__ int rocm_backend::ncoset (const int l)
 Number of Cartesian orbitals up to given angular momentum quantum. More...
 
__host__ __device__ __inline__ int rocm_backend::coset (int lx, int ly, int lz)
 Maps three angular momentum components to a single zero based index. More...
 
__device__ __inline__ orbital rocm_backend::up (const int i, const orbital &a)
 Increase i'th component of given orbital angular momentum. More...
 
__inline__ __device__ orbital rocm_backend::down (const int i, const orbital &a)
 Decrease i'th component of given orbital angular momentum. More...
 
__inline__ __device__ int rocm_backend::idx (const orbital a)
 Return coset index of given orbital angular momentum. More...
 
__device__ __inline__ double rocm_backend::power (const double x, const int expo)
 
template<typename T = double>
__device__ __inline__ void rocm_backend::prep_term (const orbital a, const orbital b, const T value, const int n, T *cab)
 Adds given value to matrix element cab[idx(b)][idx(a)]. More...
 
static void rocm_backend::init_constant_memory ()
 Initializes the device's constant memory. More...
 
__inline__ __device__ double3 rocm_backend::compute_coordinates (const double *__restrict__ dh_, const double x, const double y, const double z)
 
__inline__ __device__ float3 rocm_backend::compute_coordinates (const float *__restrict__ dh_, const float x, const float y, const float z)
 
template<typename T >
__inline__ __device__ void rocm_backend::compute_alpha (const smem_task< T > &task, T *__restrict__ alpha)
 Computes the polynomial expansion coefficients: (x-a)**lxa (x-b)**lxb -> sum_{ls} alpha(ls,lxa,lxb,1)*(x-p)**ls. More...
 
__host__ __inline__ __device__ void rocm_backend::convert_to_lattice_coordinates (const double *dh_inv_, const double3 *__restrict__ const rp, double3 *__restrict__ rp_c)
 
__host__ __inline__ __device__ void rocm_backend::convert_from_lattice_coordinates_to_cartesian (const double *__restrict__ dh_, const double3 *__restrict__ const rp, double3 *__restrict__ rp_c)
 
__host__ __inline__ __device__ void rocm_backend::convert_to_lattice_coordinates (const float *dh_inv_, const float3 *__restrict__ const rp, float3 *__restrict__ rp_c)
 
__host__ __inline__ __device__ void rocm_backend::convert_from_lattice_coordinates_to_cartesian (const float *__restrict__ dh_, const float3 *__restrict__ const rp, float3 *__restrict__ rp_c)
 
template<typename T , typename T3 , bool orthorhombic_>
__inline__ T rocm_backend::compute_cube_properties (const T radius, const T *const __restrict__ dh_, const T *const __restrict__ dh_inv_, const T3 *__restrict__ rp, T3 *__restrict__ roffset, int3 *__restrict__ cubecenter, int3 *__restrict__ lb_cube, int3 *__restrict__ cube_size)
 
__inline__ __device__ void rocm_backend::compute_window_size (const int *const grid_size, const int border_mask, const int *border_width, int3 *const window_size, int3 *const window_shift)
 
template<typename T >
__device__ static __inline__ void rocm_backend::cab_to_cxyz (const smem_task< T > &task, const T *__restrict__ alpha, const T *__restrict__ cab, T *__restrict__ cxyz)
 Transforms coefficients C_ab into C_xyz. More...
 
template<typename T >
__device__ static __inline__ void rocm_backend::cxyz_to_cab (const smem_task< T > &task, const T *__restrict__ alpha, const T *__restrict__ cxyz, T *__restrict__ cab)
 Transforms coefficients C_xyz into C_ab. More...
 
template<typename T , typename T3 >
__device__ __inline__ void rocm_backend::fill_smem_task_reduced (const kernel_params &dev, const int task_id, smem_task_reduced< T, T3 > &task)
 Copies a task from global to shared memory. More...
 
template<typename T >
__device__ __inline__ void rocm_backend::fill_smem_task_coef (const kernel_params &dev, const int task_id, smem_task< T > &task)
 Copies a task from global to shared memory and does precomputations. More...
 

Variables

__constant__ orbital rocm_backend::coset_inv [1330]
 
__constant__ int rocm_backend::binomial_coef [19][19]
 

Macro Definition Documentation

◆ GRID_DEVICE

#define GRID_DEVICE   __device__

Definition at line 26 of file grid_hip_internal_header.h.