3 #ifndef __DGTOG_CALC_CNT_H__ 4 #define __DGTOG_CALC_CNT_H__ 6 #include "../tensor/algstrct.h" 7 #include "../mapping/distribution.h" 16 int const * rep_phase,
20 int const * loc_edge_len);
27 int const * rep_phase,
31 int const * loc_edge_len);
37 int const * rep_phase,
38 int const * rep_phase_lda,
40 int const * phys_phase,
43 int const * loc_edge_len);
47 distribution
const & old_dist,
48 distribution
const & new_dist,
54 int *
const * pe_offset,
55 int *
const * bucket_offset,
56 int64_t
const * old_counts,
63 distribution
const & new_dist,
66 int const * rep_phase,
67 int const * phys_edge_len,
68 int const * virt_edge_len,
74 int64_t ** data_offset,
78 int64_t *
const * data_offset,
79 int *
const * ivmax_pre,
83 char * __restrict__ data,
84 char ** __restrict__ buckets,
void redist_bucket(int *const *bucket_offset, int64_t *const *data_offset, int *const *ivmax_pre, int rep_phase0, int virt_dim0, bool data_to_buckets, char *__restrict__ data, char **__restrict__ buckets, int64_t *counts, algstrct const *sr, int64_t data_off, int bucket_off, int prev_idx)
void calc_drv_cnts(int order, int const *sym, int64_t *counts, int const *rep_phase, int const *rep_phase_lda, int const *sphase, int const *phys_phase, int *gidx_off, int const *edge_len, int const *loc_edge_len)
void calc_drv_displs(int const *sym, int const *edge_len, distribution const &old_dist, distribution const &new_dist, int64_t *counts, int idx_lyr)
int64_t * calc_sy_pfx(int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len)
computes the cardinality of the sets of elements of a tensor of order idim+1 for different values of ...
int64_t calc_cnt(int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len)
computes the cardinality of the set of elements of a tensor of order idim+1 that are owned by process...
void precompute_offsets(distribution const &old_dist, distribution const &new_dist, int const *sym, int const *len, int const *rep_phase, int const *phys_edge_len, int const *virt_edge_len, int const *virt_dim, int const *virt_lda, int64_t virt_nelem, int **pe_offset, int **bucket_offset, int64_t **data_offset, int **ivmax_pre)
void calc_cnt_from_rep_cnt(int const *rep_phase, int *const *pe_offset, int *const *bucket_offset, int64_t const *old_counts, int64_t *counts, int bucket_off, int pe_off, int dir)