(git:92574dc)
Loading...
Searching...
No Matches
grid_dgemm_context.c File Reference
#include <math.h>
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../common/grid_library.h"
#include "grid_dgemm_collocate.h"
#include "grid_dgemm_collocation_integration.h"
#include "grid_dgemm_context.h"
#include "grid_dgemm_private_header.h"
#include "grid_dgemm_task_list.h"
#include "grid_dgemm_tensor_local.h"
#include "grid_dgemm_utils.h"

Go to the source code of this file.

Functions

void return_dh (void *const ptr, const int level, double *const dh)
void return_dh_inv (void *const ptr, const int level, double *const dh_inv)
int return_num_devs (void *const ptr)
int return_device_id (void *const ptr, const int device)
int is_grid_orthorhombic (void *const ptr)
void update_queue_length (void *const ptr, const int queue_length)
void update_atoms_position (const int natoms, const double atoms_positions[natoms][3], grid_context *data)
void update_atoms_kinds (const int natoms, const int *atoms_kinds, grid_context *data)
void update_block_offsets (const int nblocks, const int *const block_offsets, grid_context *data)
void update_basis_set (const int nkinds, const grid_basis_set **const basis_sets, grid_context *data)
void update_task_lists (const int nlevels, const int ntasks, const int *const level_list, const int *const iatom_list, const int *const jatom_list, const int *const iset_list, const int *const jset_list, const int *const ipgf_list, const int *const jpgf_list, const int *const border_mask_list, const int *block_num_list, const double *const radius_list, const double rab_list[ntasks][3], grid_context *ctx)
void update_layouts (const int nlevels, const int npts_global[nlevels][3], const int npts_local[nlevels][3], const int shift_local[nlevels][3], const int border_width[nlevels][3], const double dh[nlevels][3][3], const double dh_inv[nlevels][3][3], grid_context *ctx)
void update_grid (const int nlevels, grid_context *ctx)
void * create_grid_context_dgemm (const bool orthorhombic, const int ntasks, const int nlevels, const int natoms, const int nkinds, const int nblocks, const int *block_offsets, const double atom_positions[natoms][3], const int *const atom_kinds, const grid_basis_set **const basis_sets, const int *const level_list, const int *const iatom_list, const int *jatom_list, const int *const iset_list, const int *const jset_list, const int *const ipgf_list, const int *const jpgf_list, const int *const border_mask_list, const int *block_num_list, const double *const radius_list, const double rab_list[ntasks][3], const int npts_global[nlevels][3], const int npts_local[nlevels][3], const int shift_local[nlevels][3], const int border_width[nlevels][3], const double dh[nlevels][3][3], const double dh_inv[nlevels][3][3])
void update_grid_context_dgemm (const bool orthorhombic, const int ntasks, const int nlevels, const int natoms, const int nkinds, const int nblocks, const int *block_offsets, const double atom_positions[natoms][3], const int *const atom_kinds, const grid_basis_set **const basis_sets, const int *const level_list, const int *const iatom_list, const int *jatom_list, const int *const iset_list, const int *const jset_list, const int *const ipgf_list, const int *const jpgf_list, const int *const border_mask_list, const int *block_num_list, const double *const radius_list, const double rab_list[ntasks][3], const int npts_global[nlevels][3], const int npts_local[nlevels][3], const int shift_local[nlevels][3], const int border_width[nlevels][3], const double dh[nlevels][3][3], const double dh_inv[nlevels][3][3], void *ptr)
void initialize_grid_context_on_gpu (void *ptr, const int number_of_devices, const int *device_id)
void destroy_grid_context_dgemm (void *ptr)
void apply_cutoff (void *ptr)
void set_grid_parameters (tensor *grid, const bool orthorhombic, const int grid_full_size[3], const int grid_local_size[3], const int shift_local[3], const int border_width[3], const double dh[3][3], const double dh_inv[3][3], offload_buffer *grid_)
void grid_dgemm_create_task_list (const bool orthorhombic, const int ntasks, const int nlevels, const int natoms, const int nkinds, const int nblocks, const int block_offsets[nblocks], const double atom_positions[natoms][3], const int atom_kinds[natoms], const grid_basis_set *basis_sets[nkinds], const int level_list[ntasks], const int iatom_list[ntasks], const int jatom_list[ntasks], const int iset_list[ntasks], const int jset_list[ntasks], const int ipgf_list[ntasks], const int jpgf_list[ntasks], const int border_mask_list[ntasks], const int block_num_list[ntasks], const double radius_list[ntasks], const double rab_list[ntasks][3], const int npts_global[nlevels][3], const int npts_local[nlevels][3], const int shift_local[nlevels][3], const int border_width[nlevels][3], const double dh[nlevels][3][3], const double dh_inv[nlevels][3][3], grid_dgemm_task_list **task_list)
 Allocates a task list for the dgemm backend. See grid_task_list.h for details.
void grid_dgemm_free_task_list (grid_dgemm_task_list *task_list)
 Deallocates given task list, basis_sets have to be freed separately.

Function Documentation

◆ return_dh()

void return_dh ( void *const ptr,
const int level,
double *const dh )

Definition at line 23 of file grid_dgemm_context.c.

◆ return_dh_inv()

void return_dh_inv ( void *const ptr,
const int level,
double *const dh_inv )

Definition at line 38 of file grid_dgemm_context.c.

◆ return_num_devs()

int return_num_devs ( void *const ptr)

Definition at line 53 of file grid_dgemm_context.c.

◆ return_device_id()

int return_device_id ( void *const ptr,
const int device )

Definition at line 60 of file grid_dgemm_context.c.

◆ is_grid_orthorhombic()

int is_grid_orthorhombic ( void *const ptr)

Definition at line 67 of file grid_dgemm_context.c.

◆ update_queue_length()

void update_queue_length ( void *const ptr,
const int queue_length )

Definition at line 73 of file grid_dgemm_context.c.

◆ update_atoms_position()

void update_atoms_position ( const int natoms,
const double atoms_positions[natoms][3],
grid_context * data )

Definition at line 79 of file grid_dgemm_context.c.

Here is the caller graph for this function:

◆ update_atoms_kinds()

void update_atoms_kinds ( const int natoms,
const int * atoms_kinds,
grid_context * data )

Definition at line 108 of file grid_dgemm_context.c.

Here is the caller graph for this function:

◆ update_block_offsets()

void update_block_offsets ( const int nblocks,
const int *const block_offsets,
grid_context * data )

Definition at line 133 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_basis_set()

void update_basis_set ( const int nkinds,
const grid_basis_set **const basis_sets,
grid_context * data )

Definition at line 155 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_task_lists()

void update_task_lists ( const int nlevels,
const int ntasks,
const int *const level_list,
const int *const iatom_list,
const int *const jatom_list,
const int *const iset_list,
const int *const jset_list,
const int *const ipgf_list,
const int *const jpgf_list,
const int *const border_mask_list,
const int * block_num_list,
const double *const radius_list,
const double rab_list[ntasks][3],
grid_context * ctx )

Definition at line 171 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_layouts()

void update_layouts ( const int nlevels,
const int npts_global[nlevels][3],
const int npts_local[nlevels][3],
const int shift_local[nlevels][3],
const int border_width[nlevels][3],
const double dh[nlevels][3][3],
const double dh_inv[nlevels][3][3],
grid_context * ctx )

Definition at line 293 of file grid_dgemm_context.c.

Here is the caller graph for this function:

◆ update_grid()

void update_grid ( const int nlevels,
grid_context * ctx )

Definition at line 323 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_grid_context_dgemm()

void * create_grid_context_dgemm ( const bool orthorhombic,
const int ntasks,
const int nlevels,
const int natoms,
const int nkinds,
const int nblocks,
const int * block_offsets,
const double atom_positions[natoms][3],
const int *const atom_kinds,
const grid_basis_set **const basis_sets,
const int *const level_list,
const int *const iatom_list,
const int * jatom_list,
const int *const iset_list,
const int *const jset_list,
const int *const ipgf_list,
const int *const jpgf_list,
const int *const border_mask_list,
const int * block_num_list,
const double *const radius_list,
const double rab_list[ntasks][3],
const int npts_global[nlevels][3],
const int npts_local[nlevels][3],
const int shift_local[nlevels][3],
const int border_width[nlevels][3],
const double dh[nlevels][3][3],
const double dh_inv[nlevels][3][3] )

Definition at line 343 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_grid_context_dgemm()

void update_grid_context_dgemm ( const bool orthorhombic,
const int ntasks,
const int nlevels,
const int natoms,
const int nkinds,
const int nblocks,
const int * block_offsets,
const double atom_positions[natoms][3],
const int *const atom_kinds,
const grid_basis_set **const basis_sets,
const int *const level_list,
const int *const iatom_list,
const int * jatom_list,
const int *const iset_list,
const int *const jset_list,
const int *const ipgf_list,
const int *const jpgf_list,
const int *const border_mask_list,
const int * block_num_list,
const double *const radius_list,
const double rab_list[ntasks][3],
const int npts_global[nlevels][3],
const int npts_local[nlevels][3],
const int shift_local[nlevels][3],
const int border_width[nlevels][3],
const double dh[nlevels][3][3],
const double dh_inv[nlevels][3][3],
void * ptr )

Definition at line 390 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_grid_context_on_gpu()

void initialize_grid_context_on_gpu ( void * ptr,
const int number_of_devices,
const int * device_id )

Definition at line 429 of file grid_dgemm_context.c.

◆ destroy_grid_context_dgemm()

void destroy_grid_context_dgemm ( void * ptr)

Definition at line 451 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply_cutoff()

void apply_cutoff ( void * ptr)

Definition at line 477 of file grid_dgemm_context.c.

Here is the caller graph for this function:

◆ set_grid_parameters()

void set_grid_parameters ( tensor * grid,
const bool orthorhombic,
const int grid_full_size[3],
const int grid_local_size[3],
const int shift_local[3],
const int border_width[3],
const double dh[3][3],
const double dh_inv[3][3],
offload_buffer * grid_ )

Definition at line 484 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_dgemm_create_task_list()

void grid_dgemm_create_task_list ( const bool orthorhombic,
const int ntasks,
const int nlevels,
const int natoms,
const int nkinds,
const int nblocks,
const int block_offsets[nblocks],
const double atom_positions[natoms][3],
const int atom_kinds[natoms],
const grid_basis_set * basis_sets[nkinds],
const int level_list[ntasks],
const int iatom_list[ntasks],
const int jatom_list[ntasks],
const int iset_list[ntasks],
const int jset_list[ntasks],
const int ipgf_list[ntasks],
const int jpgf_list[ntasks],
const int border_mask_list[ntasks],
const int block_num_list[ntasks],
const double radius_list[ntasks],
const double rab_list[ntasks][3],
const int npts_global[nlevels][3],
const int npts_local[nlevels][3],
const int shift_local[nlevels][3],
const int border_width[nlevels][3],
const double dh[nlevels][3][3],
const double dh_inv[nlevels][3][3],
grid_dgemm_task_list ** task_list )

Allocates a task list for the dgemm backend. See grid_task_list.h for details.

Definition at line 552 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_dgemm_free_task_list()

void grid_dgemm_free_task_list ( grid_dgemm_task_list * task_list)

Deallocates given task list, basis_sets have to be freed separately.

Definition at line 592 of file grid_dgemm_context.c.

Here is the call graph for this function:
Here is the caller graph for this function: