![]() |
(git:e68414f)
|
#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. | |
| void return_dh | ( | void *const | ptr, |
| const int | level, | ||
| double *const | dh | ||
| ) |
Definition at line 23 of file grid_dgemm_context.c.
| void return_dh_inv | ( | void *const | ptr, |
| const int | level, | ||
| double *const | dh_inv | ||
| ) |
Definition at line 38 of file grid_dgemm_context.c.
| int return_num_devs | ( | void *const | ptr | ) |
Definition at line 53 of file grid_dgemm_context.c.
| int return_device_id | ( | void *const | ptr, |
| const int | device | ||
| ) |
Definition at line 60 of file grid_dgemm_context.c.
| int is_grid_orthorhombic | ( | void *const | ptr | ) |
Definition at line 67 of file grid_dgemm_context.c.
| void update_queue_length | ( | void *const | ptr, |
| const int | queue_length | ||
| ) |
Definition at line 73 of file grid_dgemm_context.c.
| 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 | ||
| ) |
Definition at line 133 of file grid_dgemm_context.c.
| 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.
| 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.
| 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 | ||
| ) |
Definition at line 339 of file grid_dgemm_context.c.
| 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 359 of file grid_dgemm_context.c.
| 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 406 of file grid_dgemm_context.c.
| void initialize_grid_context_on_gpu | ( | void * | ptr, |
| const int | number_of_devices, | ||
| const int * | device_id | ||
| ) |
Definition at line 445 of file grid_dgemm_context.c.
| void destroy_grid_context_dgemm | ( | void * | ptr | ) |
Definition at line 467 of file grid_dgemm_context.c.
| 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_ | ||
| ) |
Definition at line 500 of file grid_dgemm_context.c.
| 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 568 of file grid_dgemm_context.c.
| 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 608 of file grid_dgemm_context.c.