Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
|
Data Structures | |
class | accumulatable |
abstract class that knows how to add More... | |
class | algstrct |
algstrct (algebraic structure) defines the elementwise operations computed in each tensor contraction, virtual classes defined in derived typed classes or algstrctcpy More... | |
class | Bifun_Term |
class | bivar_function |
untyped internal class for triply-typed bivariate function More... | |
struct | BoolPair |
class | CommData |
struct | CompPair |
struct | CompPtrPair |
class | ConstPairIterator |
class | Contract_Term |
An experession representing a contraction of a set of tensors contained in operands. More... | |
class | contraction |
class for execution distributed contraction of tensors More... | |
class | COO_Matrix |
serialized matrix in coordinate format, meaning three arrays of dimension nnz are stored, one of values, and two of row and column indices More... | |
class | CSR_Matrix |
abstraction for a serialized sparse matrix stored in column-sparse-row (CSR) layout More... | |
class | ctr |
class | ctr_2d_general |
class | ctr_replicate |
class | ctr_virt |
class | CubicModel |
Cubic performance models, which given measurements, provides new model guess. More... | |
class | distribution |
class | endomorphism |
untyped internal class for singly-typed single variable function (Endomorphism) More... | |
class | grid_wrapper |
struct | int1 |
struct | int2 |
struct | IntPair |
struct | iparam |
class | LinModel |
Linear performance models, which given measurements, provides new model guess. More... | |
class | mapping |
struct | mem_loc |
struct | mem_transfer |
class | Model |
class | offload_arr |
offloaded array/buffer More... | |
class | offload_tsr |
offloaded and serialized tensor data More... | |
class | PairIterator |
class | scaling |
class for execution distributed scaling of a tensor More... | |
class | scl |
class | scl_virt |
class | seq_tsr_ctr |
class | seq_tsr_scl |
class | seq_tsr_spctr |
class | seq_tsr_spsum |
class | seq_tsr_sum |
struct | ShortPair |
class | spctr |
class | spctr_2d_general |
class | spctr_pin_keys |
class | spctr_replicate |
class | spctr_virt |
class | strp_ctr |
class | strp_scl |
class | strp_sum |
class | strp_tsr |
class | Sum_Term |
class | summation |
class for execution distributed summation of tensors More... | |
class | tensor |
internal distributed tensor class More... | |
struct | tensor_name_less |
comparison function for sets of tensor pointers This ensures the set iteration order is consistent across nodes More... | |
class | Term |
a term is an abstract object representing some expression of tensors More... | |
struct | time_param |
class | topology |
class | tspsum |
class | tspsum_map |
class | tspsum_permute |
class | tspsum_pin_keys |
class | tspsum_replicate |
performs replication along a dimension, generates 2.5D algs More... | |
class | tspsum_virt |
class | tsum |
class | tsum_replicate |
performs replication along a dimension, generates 2.5D algs More... | |
class | tsum_virt |
class | Unifun_Term |
class | univar_function |
untyped internal class for doubly-typed univariate function More... | |
Typedefs | |
typedef bool | TYPE1 |
typedef int | TYPE2 |
typedef int64_t | TYPE3 |
typedef float | TYPE4 |
typedef double | TYPE5 |
typedef std::complex< float > | TYPE6 |
typedef std::complex< double > | TYPE7 |
typedef int16_t | TYPE8 |
typedef int8_t | TYPE9 |
Enumerations | |
enum | { SUCCESS, ERROR, NEGATIVE } |
enum | map_type { NOT_MAPPED, PHYSICAL_MAP, VIRTUAL_MAP } |
enum | TOPOLOGY { TOPOLOGY_GENERIC, TOPOLOGY_BGP, TOPOLOGY_BGQ, TOPOLOGY_8D, NO_TOPOLOGY } |
Functions | |
void | update_all_models (MPI_Comm comm) |
void | factorize (int n, int *nfactor, int **factor) |
computes the size of a tensor in packed symmetric layout More... | |
template<typename ptype > | |
void | get_perm (int perm_order, ptype A, ptype B, ptype C, ptype &tA, ptype &tB, ptype &tC) |
void | calc_fold_lnmk (tensor const *A, tensor const *B, tensor const *C, int const *idx_A, int const *idx_B, int const *idx_C, int const *ordering_A, int const *ordering_B, iparam *inner_prm) |
calculate the dimensions of the matrix the contraction gets reduced to (A, B, and C may be permuted) More... | |
void | get_len_ordering (tensor const *A, tensor const *B, tensor const *C, int const *idx_A, int const *idx_B, int const *idx_C, int **new_ordering_A, int **new_ordering_B, int **new_ordering_C) |
find ordering of indices of tensor to reduce to DGEMM (A, B, and C may be permuted More... | |
int | ctr_2d_gen_build (int is_used, CommData global_comm, int i, int *virt_dim, int &cg_edge_len, int &total_iter, tensor *A, int i_A, CommData *&cg_cdt_A, int64_t &cg_ctr_lda_A, int64_t &cg_ctr_sub_lda_A, bool &cg_move_A, int *blk_len_A, int64_t &blk_sz_A, int const *virt_blk_len_A, int &load_phase_A, tensor *B, int i_B, CommData *&cg_cdt_B, int64_t &cg_ctr_lda_B, int64_t &cg_ctr_sub_lda_B, bool &cg_move_B, int *blk_len_B, int64_t &blk_sz_B, int const *virt_blk_len_B, int &load_phase_B, tensor *C, int i_C, CommData *&cg_cdt_C, int64_t &cg_ctr_lda_C, int64_t &cg_ctr_sub_lda_C, bool &cg_move_C, int *blk_len_C, int64_t &blk_sz_C, int const *virt_blk_len_C, int &load_phase_C) |
sets up a ctr_2d_general (2D SUMMA) level where A is not communicated function will be called with A/B/C permuted depending on desired alg More... | |
void | inv_idx (int order_A, int const *idx_A, int order_B, int const *idx_B, int order_C, int const *idx_C, int *order_tot, int **idx_arr) |
invert index map More... | |
template<int idim> | |
void | spA_dnB_dnC_ctrloop (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, int order_A, int const *edge_len_A, int64_t const *lda_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template<> | |
void | spA_dnB_dnC_ctrloop< 0 > (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, int order_A, int const *edge_len_A, int64_t const *lda_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template<> | |
void | spA_dnB_dnC_ctrloop< MAX_ORD > (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, int order_A, int const *edge_len_A, int64_t const *lda_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
void | spA_dnB_dnC_seq_ctr (char const *alpha, char const *A, int64_t size_A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, bivar_function const *func) |
char * | bcast_step (int edge_len, char *A, bool is_sparse_A, bool move_A, algstrct const *sr_A, int64_t b_A, int64_t s_A, char *buf_A, CommData *cdt_A, int64_t ctr_sub_lda_A, int64_t ctr_lda_A, int nblk_A, int64_t const *size_blk_A, int &new_nblk_A, int64_t *&new_size_blk_A, int64_t *offsets_A, int ib) |
char * | reduce_step_pre (int edge_len, char *C, bool is_sparse_C, bool move_C, algstrct const *sr_C, int64_t b_C, int64_t s_C, char *buf_C, CommData *cdt_C, int64_t ctr_sub_lda_C, int64_t ctr_lda_C, int nblk_C, int64_t const *size_blk_C, int &new_nblk_C, int64_t *&new_size_blk_C, int64_t *offsets_C, int ib, char const *&rec_beta) |
void | reduce_step_post (int edge_len, char *C, bool is_sparse_C, bool move_C, algstrct const *sr_C, int64_t b_C, int64_t s_C, char *buf_C, CommData *cdt_C, int64_t ctr_sub_lda_C, int64_t ctr_lda_C, int nblk_C, int64_t *size_blk_C, int &new_nblk_C, int64_t *&new_size_blk_C, int64_t *offsets_C, int ib, char const *&rec_beta, char const *beta, char *&up_C, char *&new_C, int n_new_C_grps, int &i_new_C_grp, char **new_C_grps) |
int | spctr_2d_gen_build (int is_used, CommData global_comm, int i, int *virt_dim, int &cg_edge_len, int &total_iter, tensor *A, int i_A, CommData *&cg_cdt_A, int64_t &cg_spctr_lda_A, int64_t &cg_spctr_sub_lda_A, bool &cg_move_A, int *blk_len_A, int64_t &blk_sz_A, int const *virt_blk_len_A, int &load_phase_A, tensor *B, int i_B, CommData *&cg_cdt_B, int64_t &cg_spctr_lda_B, int64_t &cg_spctr_sub_lda_B, bool &cg_move_B, int *blk_len_B, int64_t &blk_sz_B, int const *virt_blk_len_B, int &load_phase_B, tensor *C, int i_C, CommData *&cg_cdt_C, int64_t &cg_spctr_lda_C, int64_t &cg_spctr_sub_lda_C, bool &cg_move_C, int *blk_len_C, int64_t &blk_sz_C, int const *virt_blk_len_C, int &load_phase_C) |
template<int idim> | |
void | sym_seq_ctr_loop (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template<> | |
void | sym_seq_ctr_loop< 0 > (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template void | sym_seq_ctr_loop< MAX_ORD > (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, uint64_t *const *offsets_C, bivar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
void | compute_syoff (int r, int len, algstrct const *sr, int const *edge_len, int const *sym, uint64_t *offsets) |
void | compute_syoffs (algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, int tot_order, int const *rev_idx_map, uint64_t **&offsets_A, uint64_t **&offsets_B, uint64_t **&offsets_C) |
int | sym_seq_ctr_ref (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C) |
performs symmetric contraction with reference (unblocked) kernel More... | |
int | sym_seq_ctr_cust (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, bivar_function const *func) |
performs symmetric contraction with custom elementwise function More... | |
int | sym_seq_ctr_inr (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, iparam const *prm, bivar_function const *func) |
performs symmetric contraction with blocked gemm More... | |
void | init_rng (int rank) |
initialized random number generator More... | |
double | get_rand48 () |
returns new random number in [0,1) More... | |
template<typename type > | |
int | conv_idx (int order, type const *cidx, int **iidx) |
template<typename type > | |
int | conv_idx (int order_A, type const *cidx_A, int **iidx_A, int order_B, type const *cidx_B, int **iidx_B) |
template<typename type > | |
int | conv_idx (int order_A, type const *cidx_A, int **iidx_A, int order_B, type const *cidx_B, int **iidx_B, int order_C, type const *cidx_C, int **iidx_C) |
template int | conv_idx< int > (int, int const *, int **) |
template int | conv_idx< char > (int, char const *, int **) |
template int | conv_idx< int > (int, int const *, int **, int, int const *, int **) |
template int | conv_idx< char > (int, char const *, int **, int, char const *, int **) |
template int | conv_idx< int > (int, int const *, int **, int, int const *, int **, int, int const *, int **) |
template int | conv_idx< char > (int, char const *, int **, int, char const *, int **, int, char const *, int **) |
void | flops_add (int64_t n) |
int64_t | get_flops () |
void | handler () |
void | cvrt_idx (int order, int const *lens, int64_t idx, int *idx_arr) |
void | cvrt_idx (int order, int const *lens, int64_t idx, int **idx_arr) |
void | cvrt_idx (int order, int const *lens, int const *idx_arr, int64_t *idx) |
bool | get_mpi_dt (int64_t count, int64_t datum_size, MPI_Datatype &dt) |
gives a datatype for arbitrary datum_size, errors if exceeding 32-bits More... | |
int64_t | sy_packed_size (int order, const int *len, const int *sym) |
computes the size of a tensor in SY (NOT HOLLOW) packed symmetric layout More... | |
int64_t | packed_size (int order, const int *len, const int *sym) |
computes the size of a tensor in packed symmetric (SY, SH, or AS) layout More... | |
int | alloc_ptr (int64_t const len_, void **const ptr) |
alloc abstraction More... | |
int | mst_alloc_ptr (int64_t const len, void **const ptr) |
mst_alloc abstraction More... | |
void * | alloc (int64_t const len) |
alloc abstraction More... | |
void * | mst_alloc (int64_t const len) |
mst_alloc allocates buffer on the specialized memory stack More... | |
int | cdealloc (void *ptr) |
free abstraction More... | |
template<typename dtype > | |
const char * | get_fmt () |
return format string for templated type More... | |
template<> | |
const char * | get_fmt< float > () |
template<> | |
const char * | get_fmt< double > () |
template<> | |
const char * | get_fmt< int > () |
template<> | |
const char * | get_fmt< int64_t > () |
template<typename dtype > | |
void | parse_sparse_tensor_data (char **lvals, int order, dtype const *pmulid, int *lens, int64_t nvals, CTF::Pair< dtype > *pairs, bool with_vals) |
parse string containing sparse tensor into data More... | |
template<typename dtype > | |
char * | serialize_sparse_tensor_data (int order, int *lens, int64_t nvals, CTF::Pair< dtype > *pairs, bool with_vals, int64_t &str_len) |
serialize sparse tensor data to create string More... | |
template<typename dtype > | |
int64_t | read_data_mpiio (CTF::World const *dw, char const *fpath, char ***datastr) |
read sparse tensor data from file using MPI-I/O, creating string with one entry per line (different entries on each process) More... | |
template<typename dtype > | |
void | write_data_mpiio (CTF::World const *dw, char const *fpath, char *datastr, int64_t str_len) |
write sparse tensor data to file using MPI-I/O, from string with one entry per line (different entries on each process) More... | |
template<typename dtype > | |
dtype | default_add (dtype a, dtype b) |
template<typename dtype , void(*)(int, dtype const *, dtype *) fxpy> | |
void | default_mxpy (void *X, void *Y, int *n, MPI_Datatype *d) |
template<typename dtype > | |
void | default_fxpy (int n, dtype const *X, dtype *Y) |
template<typename dtype > | |
MPI_Op | get_default_maddop () |
template<> | |
MPI_Op | get_default_maddop< char > () |
template<> | |
MPI_Op | get_default_maddop< bool > () |
template<> | |
MPI_Op | get_default_maddop< int > () |
template<> | |
MPI_Op | get_default_maddop< int64_t > () |
template<> | |
MPI_Op | get_default_maddop< unsigned int > () |
template<> | |
MPI_Op | get_default_maddop< uint64_t > () |
template<> | |
MPI_Op | get_default_maddop< float > () |
template<> | |
MPI_Op | get_default_maddop< double > () |
template<> | |
MPI_Op | get_default_maddop< long double > () |
template<> | |
MPI_Op | get_default_maddop< std::complex< float > > () |
template<> | |
MPI_Op | get_default_maddop< std::complex< double > > () |
template<typename dtype > | |
MPI_Op | get_maddop (void(*fxpy)(int, dtype const *, dtype *)) |
CTF_int::algstrct const * | get_float_ring () |
CTF_int::algstrct const * | get_double_ring () |
CTF_int::algstrct const * | get_int_ring () |
CTF_int::algstrct const * | get_int64_t_ring () |
template<typename dtype > | |
void | gemm_batch (char taA, char taB, int l, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C) |
template<typename dtype > | |
void | gemm (char tA, char tB, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C) |
template<> | |
void | default_axpy< float > (int n, float alpha, float const *X, int incX, float *Y, int incY) |
template<> | |
void | default_axpy< double > (int n, double alpha, double const *X, int incX, double *Y, int incY) |
template<> | |
void | default_axpy< std::complex< float > > (int n, std::complex< float > alpha, std::complex< float > const *X, int incX, std::complex< float > *Y, int incY) |
template<> | |
void | default_axpy< std::complex< double > > (int n, std::complex< double > alpha, std::complex< double > const *X, int incX, std::complex< double > *Y, int incY) |
template<> | |
void | default_scal< float > (int n, float alpha, float *X, int incX) |
template<> | |
void | default_scal< double > (int n, double alpha, double *X, int incX) |
template<> | |
void | default_scal< std::complex< float > > (int n, std::complex< float > alpha, std::complex< float > *X, int incX) |
template<> | |
void | default_scal< std::complex< double > > (int n, std::complex< double > alpha, std::complex< double > *X, int incX) |
template<> | |
void | default_coomm< float > (int m, int n, int k, float alpha, float const *A, int const *rows_A, int const *cols_A, int nnz_A, float const *B, float beta, float *C) |
template<> | |
void | default_coomm< double > (int m, int n, int k, double alpha, double const *A, int const *rows_A, int const *cols_A, int nnz_A, double const *B, double beta, double *C) |
template<> | |
void | default_coomm< std::complex< float > > (int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, int const *rows_A, int const *cols_A, int nnz_A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C) |
template<> | |
void | default_coomm< std::complex< double > > (int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, int const *rows_A, int const *cols_A, int nnz_A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C) |
template<typename dtype > | |
void | muladd_csrmm (int m, int n, int k, dtype alpha, dtype const *A, int const *JA, int const *IA, int nnz_A, dtype const *B, dtype beta, dtype *C) |
template<typename dtype > | |
void | muladd_csrmultd (int m, int n, int k, dtype const *A, int const *JA, int const *IA, int nnz_A, dtype const *B, int const *JB, int const *IB, int nnz_B, dtype *C) |
template<typename dtype > | |
dtype | default_mul (dtype a, dtype b) |
template<typename dtype > | |
void | default_axpy (int n, dtype alpha, dtype const *X, int incX, dtype *Y, int incY) |
template<typename dtype > | |
void | default_scal (int n, dtype alpha, dtype *X, int incX) |
template<typename dtype > | |
void | default_gemm (char tA, char tB, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C) |
template<typename dtype > | |
dtype ** | get_grp_ptrs (int64_t grp_sz, int64_t ngrp, dtype const *data) |
template<> | |
void | default_gemm< float > (char tA, char tB, int m, int n, int k, float alpha, float const *A, float const *B, float beta, float *C) |
template<> | |
void | default_gemm< double > (char tA, char tB, int m, int n, int k, double alpha, double const *A, double const *B, double beta, double *C) |
template<> | |
void | default_gemm< std::complex< float > > (char tA, char tB, int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C) |
template<> | |
void | default_gemm< std::complex< double > > (char tA, char tB, int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C) |
template<typename dtype > | |
void | default_gemm_batch (char taA, char taB, int l, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C) |
template<> | |
void | default_gemm_batch< float > (char taA, char taB, int l, int m, int n, int k, float alpha, float const *A, float const *B, float beta, float *C) |
template<> | |
void | default_gemm_batch< double > (char taA, char taB, int l, int m, int n, int k, double alpha, double const *A, double const *B, double beta, double *C) |
template<> | |
void | default_gemm_batch< std::complex< float > > (char taA, char taB, int l, int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C) |
template<> | |
void | default_gemm_batch< std::complex< double > > (char taA, char taB, int l, int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C) |
template<typename dtype > | |
void | default_coomm (int m, int n, int k, dtype alpha, dtype const *A, int const *rows_A, int const *cols_A, int nnz_A, dtype const *B, dtype beta, dtype *C) |
bool | try_mkl_coo_to_csr (int64_t nz, int nrow, char *csr_vs, int *csr_ja, int *csr_ia, char const *coo_vs, int const *coo_rs, int const *coo_cs, int el_size) |
bool | try_mkl_csr_to_coo (int64_t nz, int nrow, char const *csr_vs, int const *csr_ja, int const *csr_ia, char *coo_vs, int *coo_rs, int *coo_cs, int el_size) |
template<typename dtype > | |
void | seq_coo_to_csr (int64_t nz, int nrow, dtype *csr_vs, int *csr_ja, int *csr_ia, dtype const *coo_vs, int const *coo_rs, int const *coo_cs) |
template<typename dtype > | |
void | seq_csr_to_coo (int64_t nz, int nrow, dtype const *csr_vs, int const *csr_ja, int const *csr_ia, dtype *coo_vs, int *coo_rs, int *coo_cs) |
template<typename dtype > | |
void | def_coo_to_csr (int64_t nz, int nrow, dtype *csr_vs, int *csr_ja, int *csr_ia, dtype const *coo_vs, int const *coo_rs, int const *coo_cs) |
template<typename dtype > | |
void | def_csr_to_coo (int64_t nz, int nrow, dtype const *csr_vs, int const *csr_ja, int const *csr_ia, dtype *coo_vs, int *coo_rs, int *coo_cs) |
template<typename dtype > | |
dtype | default_addinv (dtype a) |
template<typename dtype , bool is_ord> | |
std::enable_if< is_ord, dtype >::type | default_abs (dtype a) |
template<typename dtype , bool is_ord> | |
std::enable_if<!is_ord, dtype >::type | default_abs (dtype a) |
template<typename dtype , dtype(*)(dtype) abs> | |
void | char_abs (char const *a, char *b) |
template<typename dtype , bool is_ord> | |
std::enable_if< is_ord, dtype >::type | default_min (dtype a, dtype b) |
template<typename dtype , bool is_ord> | |
std::enable_if<!is_ord, dtype >::type | default_min (dtype a, dtype b) |
template<typename dtype , bool is_ord> | |
std::enable_if< is_ord, dtype >::type | default_max_lim () |
template<typename dtype , bool is_ord> | |
std::enable_if<!is_ord, dtype >::type | default_max_lim () |
template<typename dtype , bool is_ord> | |
std::enable_if< is_ord, dtype >::type | default_min_lim () |
template<typename dtype , bool is_ord> | |
std::enable_if<!is_ord, dtype >::type | default_min_lim () |
template<typename dtype , bool is_ord> | |
std::enable_if< is_ord, dtype >::type | default_max (dtype a, dtype b) |
template<typename dtype , bool is_ord> | |
std::enable_if<!is_ord, dtype >::type | default_max (dtype a, dtype b) |
template<typename dtype > | |
MPI_Datatype | get_default_mdtype (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< bool > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< std::complex< double > > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< std::complex< long double > > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< char > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< int > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< int64_t > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< unsigned int > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< uint64_t > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< float > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< double > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< long double > (bool &is_custom) |
template<> | |
MPI_Datatype | get_default_mdtype< std::complex< float > > (bool &is_custom) |
template<typename dtype > | |
constexpr bool | get_default_is_ord () |
Idx_Tensor * | get_full_intm (Idx_Tensor &A, Idx_Tensor &B, std::vector< char > out_inds, bool create_dummy=false) |
std::vector< char > | det_uniq_inds (std::vector< Term * > const operands, std::vector< char > const out_inds) |
std::vector< Term * > | contract_down_terms (algstrct *sr, char *tscale, std::vector< Term * > operands, std::vector< char > out_inds, int terms_to_leave, bool est_time=false, double *cost=NULL) |
void | operator-= (double &d, CTF_int::Term const &tsr) |
void | operator+= (double &d, CTF_int::Term const &tsr) |
void | operator-= (int64_t &d, CTF_int::Term const &tsr) |
void | operator+= (int64_t &d, CTF_int::Term const &tsr) |
CTF_int::Contract_Term | operator* (double const &d, CTF_int::Term const &tsr) |
CTF_int::Contract_Term | operator* (int64_t const &i, CTF_int::Term const &tsr) |
void | calc_dim (int order, int64_t size, int const *edge_len, mapping const *edge_map, int64_t *vrt_sz, int *vrt_edge_len, int *blk_edge_len) |
calculate the block-sizes of a tensor More... | |
int | get_distribution_size (int order) |
int | comp_dim_map (mapping const *map_A, mapping const *map_B) |
compares two mappings More... | |
void | copy_mapping (int order, mapping const *mapping_A, mapping *mapping_B) |
copies mapping A to B More... | |
int | copy_mapping (int order_A, int order_B, int const *idx_A, mapping const *mapping_A, int const *idx_B, mapping *mapping_B, int make_virt=1) |
copies mapping A to B More... | |
int | map_tensor (int num_phys_dims, int tsr_order, int const *tsr_edge_len, int const *tsr_sym_table, int *restricted, CommData *phys_comm, int const *comm_idx, int fill, mapping *tsr_edge_map) |
map a tensor More... | |
int | check_self_mapping (tensor const *tsr, int const *idx_map) |
checks mapping in preparation for tensors scale, summ or contract More... | |
int | map_self_indices (tensor const *tsr, int const *idx_map) |
create virtual mapping for idx_maps that have repeating indices More... | |
int | map_symtsr (int tsr_order, int const *tsr_sym_table, mapping *tsr_edge_map) |
adjust a mapping to maintan symmetry More... | |
int | stretch_virt (int order, int stretch_factor, mapping *maps) |
stretch virtualization by a factor More... | |
topology * | get_phys_topo (CommData glb_comm, TOPOLOGY mach) |
get dimension and torus lengths of specified topology More... | |
std::vector< topology * > | get_all_topos (CommData cdt, int n_uf, int const *uniq_fact, int const *mults, int n_prepend, int const *prelens) |
computes all unique factorizations into non-primes each yielding a topology, prepending additional factors as specified More... | |
std::vector< topology * > | get_generic_topovec (CommData cdt) |
computes all topology configurations given undelying physical topology information More... | |
std::vector< topology * > | peel_perm_torus (topology *phys_topology, CommData cdt) |
folds specified topology and all of its permutations into all configurations of lesser dimensionality More... | |
std::vector< topology * > | peel_torus (topology const *topo, CommData glb_comm) |
folds specified topology into all configurations of lesser dimensionality More... | |
int | find_topology (topology const *topo, std::vector< topology * > &topovec) |
searches for an equivalent topology in avector of topologies More... | |
int | get_best_topo (int64_t nvirt, int topo, CommData global_comm, int64_t bcomm_vol=0, int64_t bmemuse=0) |
get the best topologoes (least nvirt) over all procs More... | |
void | extract_free_comms (topology const *topo, int order_A, mapping const *edge_map_A, int order_B, mapping const *edge_map_B, int &num_sub_phys_dims, CommData **psub_phys_comm, int **pcomm_idx) |
extracts the set of physical dimensions still available for mapping More... | |
int | can_morph (topology const *topo_keep, topology const *topo_change) |
determines if two topologies are compatible with each other More... | |
void | morph_topo (topology const *new_topo, topology const *old_topo, int order, mapping *edge_map) |
morphs a tensor topology into another More... | |
void | pad_cyclic_pup_virt_buff (int const *sym, distribution const &old_dist, distribution const &new_dist, int const *len, int const *old_phys_dim, int const *old_phys_edge_len, int const *old_virt_edge_len, int64_t old_virt_nelem, int const *old_offsets, int *const *old_permutation, int total_np, int const *new_phys_dim, int const *new_phys_edge_len, int const *new_virt_edge_len, int64_t new_virt_nelem, char *old_data, char **new_data, int forward, int *const *bucket_offset, char const *alpha, char const *beta, algstrct const *sr) |
void | cyclic_reshuffle (int const *sym, distribution const &old_dist, int const *old_offsets, int *const *old_permutation, distribution const &new_dist, int const *new_offsets, int *const *new_permutation, char **tsr_data, char **tsr_cyclic_data, algstrct const *sr, CommData ord_glb_comm, bool reuse_buffers, char const *alpha, char const *beta) |
Goes from any set of phases to any new set of phases. More... | |
template<int idim> | |
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) |
template<> | |
void | redist_bucket< 0 > (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 | redist_bucket_r0 (int *const *bucket_offset, int64_t *const *data_offset, int *const *ivmax_pre, int rep_phase0, int rep_idx0, 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) |
int | get_glb (int i, int s, int t) |
int | get_loc (int g, int s, int t) |
template<int idim> | |
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 processor index gidx_off in a distribution with dimensions sphase More... | |
template<> | |
int64_t | calc_cnt< 0 > (int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len) |
template<int idim> | |
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 the idim'th tensor dimension More... | |
template<> | |
int64_t * | calc_sy_pfx< 1 > (int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len) |
template<int idim> | |
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) |
template<> | |
void | calc_drv_cnts< 0 > (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) |
template<int idim> | |
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) |
template<> | |
void | calc_cnt_from_rep_cnt< 0 > (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) |
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) |
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) |
double | dgtog_est_time (int64_t tot_sz, int np) |
estimates execution time, given this processor sends a receives tot_sz across np procs More... | |
void | dgtog_reshuffle (int const *sym, int const *edge_len, distribution const &old_dist, distribution const &new_dist, char **ptr_tsr_data, char **ptr_tsr_new_data, algstrct const *sr, CommData ord_glb_comm) |
void | glb_ord_pup (int const *sym, distribution const &old_dist, distribution const &new_dist, int const *len, int const *old_phys_dim, int const *old_phys_edge_len, int const *old_virt_edge_len, int64_t old_virt_nelem, int const *old_offsets, int *const *old_permutation, int total_np, int const *new_phys_dim, int const *new_phys_edge_len, int const *new_virt_edge_len, int64_t new_virt_nelem, char *old_data, char **new_data, int forward, int *const *bucket_offset, char const *alpha, char const *beta, algstrct const *sr) |
template<int idim> | |
void | ord_glb (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int prev_idx=0, int64_t glb_ord_offset=0, int64_t blk_ord_offset=0) |
template<> | |
void | ord_glb< 0 > (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int prev_idx, int64_t glb_ord_offset, int64_t blk_ord_offset) |
template void | ord_glb< 7 > (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int prev_idx, int64_t glb_ord_offset, int64_t blk_ord_offset) |
template<int idim> | |
void | ord_glb_omp (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int const *idx_st, int const *idx_end, int prev_idx=0, int64_t glb_ord_offset=0, int64_t blk_ord_offset=0) |
template<> | |
void | ord_glb_omp< 0 > (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int const *idx_st, int const *idx_end, int prev_idx, int64_t glb_ord_offset, int64_t blk_ord_offset) |
template void | ord_glb_omp< 7 > (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr, int const *idx_st, int const *idx_end, int prev_idx, int64_t glb_ord_offset, int64_t blk_ord_offset) |
void | order_globally (int const *sym, distribution const &dist, int const *virt_edge_len, int const *virt_phase_lda, int64_t vbs, bool dir, char const *tsr_data_in, char *tsr_data_out, algstrct const *sr) |
reorder local buffer so that elements are in ordered according to where they are in the global tensor (interleave virtual blocks) More... | |
char * | glb_cyclic_reshuffle (int const *sym, distribution const &old_dist, int const *old_offsets, int *const *old_permutation, distribution const &new_dist, int const *new_offsets, int *const *new_permutation, char **ptr_tsr_data, char **ptr_tsr_cyclic_data, algstrct const *sr, CommData ord_glb_comm, bool reuse_buffers, char const *alpha, char const *beta) |
Goes from any set of phases to any new set of phases. More... | |
bool | hptt_is_applicable (int order, int const *new_order, int elementSize) |
Checks if the HPTT library is applicable. More... | |
void | nosym_transpose_hptt (int order, int const *st_new_order, int const *st_edge_len, int dir, char const *st_buffer, char *new_buffer, algstrct const *sr) |
void | nosym_transpose (tensor *A, int all_fdim_A, int const *all_flen_A, int const *new_order, int dir) |
void | nosym_transpose (int order, int const *new_order, int const *edge_len, char *data, int dir, algstrct const *sr) |
transposes a non-symmetric (folded) tensor More... | |
void | nosym_transpose (int order, int const *new_order, int const *edge_len, char const *data, int dir, int max_ntd, char **tswap_data, int64_t *chunk_size, algstrct const *sr) |
transposes a non-symmetric (folded) tensor internal kernel More... | |
double | est_time_transp (int order, int const *new_order, int const *edge_len, int dir, algstrct const *sr) |
estimates time needed to transposes a non-symmetric (folded) tensor based on performance models More... | |
void | nosym_transpose_hptt (int order, int const *edge_len, int dir, tensor *&A) |
High-performance implementation of nosym_transpose using HPTT. More... | |
void | pad_key (int order, int64_t num_pair, int const *edge_len, int const *padding, PairIterator pairs, algstrct const *sr, int const *offsets=NULL) |
applies padding to keys More... | |
void | depad_tsr (int order, int64_t num_pair, int const *edge_len, int const *sym, int const *padding, int const *prepadding, char const *pairsb, char *new_pairsb, int64_t *new_num_pair, algstrct const *sr) |
retrieves the unpadded pairs More... | |
void | zero_padding (int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int const *cphase_rank, char *vdata, algstrct const *sr) |
sets to zero all values in padded region of tensor More... | |
void | scal_diag (int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int const *cphase_rank, char *vdata, algstrct const *sr, int const *sym_mask) |
scales each element by 1/(number of entries equivalent to it after permutation of indices for which sym_mask is 1) More... | |
void | padded_reshuffle (int const *sym, distribution const &old_dist, distribution const &new_dist, char *tsr_data, char **tsr_cyclic_data, algstrct const *sr, CommData ord_glb_comm) |
Reshuffle elements using key-value pair read/write. More... | |
int ** | compute_bucket_offsets (distribution const &old_dist, distribution const &new_dist, int const *len, int const *old_phys_edge_len, int const *old_virt_lda, int const *old_offsets, int *const *old_permutation, int const *new_phys_edge_len, int const *new_virt_lda, int forward, int old_virt_np, int new_virt_np, int const *old_virt_edge_len) |
computes offsets for redistribution targets along each edge length More... | |
void | calc_cnt_displs (int const *sym, distribution const &old_dist, distribution const &new_dist, int new_nvirt, int np, int const *old_virt_edge_len, int const *new_virt_lda, int64_t *send_counts, int64_t *recv_counts, int64_t *send_displs, int64_t *recv_displs, CommData ord_glb_comm, int idx_lyr, int *const *bucket_offset) |
assigns keys to an array of values More... | |
double | blres_est_time (int64_t tot_sz, int nv0, int nv1) |
estimates execution time, given this processor sends a receives tot_sz across np procs More... | |
void | block_reshuffle (distribution const &old_dist, distribution const &new_dist, char *tsr_data, char *&tsr_cyclic_data, algstrct const *sr, CommData glb_comm) |
Reshuffle elements by block given the global phases stay the same. More... | |
int | can_block_reshuffle (int order, int const *old_phase, mapping const *map) |
determines if tensor can be permuted by block More... | |
void | permute_keys (int order, int num_pair, int const *edge_len, int const *new_edge_len, int *const *permutation, char *pairs, int64_t *new_num_pair, algstrct const *sr) |
permutes keys More... | |
void | depermute_keys (int order, int num_pair, int const *edge_len, int const *new_edge_len, int *const *permutation, char *pairs, algstrct const *sr) |
depermutes keys (apply P^T) More... | |
void | assign_keys (int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char const *vdata, char *vpairs, algstrct const *sr) |
assigns keys to an array of values More... | |
void | spsfy_tsr (int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char const *vdata, char *&vpairs, int64_t *nnz_blk, algstrct const *sr, int64_t const *edge_lda, std::function< bool(char const *)> f) |
extracts all tensor values (in pair format) that pass a sparsifier function (including padded zeros if they pass the fliter) More... | |
void | bucket_by_pe (int order, int64_t num_pair, int64_t np, int const *phys_phase, int const *virt_phase, int const *bucket_lda, int const *edge_len, ConstPairIterator mapped_data, int64_t *bucket_counts, int64_t *bucket_off, PairIterator bucket_data, algstrct const *sr) |
buckets key-value pairs by processor according to distribution More... | |
int64_t * | bucket_by_virt (int order, int num_virt, int64_t num_pair, int const *phys_phase, int const *virt_phase, int const *edge_len, ConstPairIterator mapped_data, PairIterator bucket_data, algstrct const *sr) |
buckets key value pairs by block/virtual-processor More... | |
void | readwrite (int order, int64_t size, char const *alpha, char const *beta, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char *vdata, char *pairs, char rw, algstrct const *sr) |
read or write pairs from / to tensor More... | |
void | wr_pairs_layout (int order, int np, int64_t inwrite, char const *alpha, char const *beta, char rw, int num_virt, int const *sym, int const *edge_len, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int *virt_phys_rank, int const *bucket_lda, char *wr_pairs_buf, char *rw_data, CommData glb_comm, algstrct const *sr, bool is_sparse, int64_t nnz_loc, int64_t *nnz_blk, char *&pprs_new, int64_t &nnz_loc_new) |
read or write pairs from / to tensor More... | |
void | read_loc_pairs (int order, int64_t nval, int num_virt, int const *sym, int const *edge_len, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int *phase_rank, int64_t *nread, char const *data, char **pairs, algstrct const *sr) |
read tensor pairs local to processor More... | |
void | sp_read (algstrct const *sr, int64_t ntsr, ConstPairIterator prs_tsr, char const *alpha, int64_t nread, PairIterator prs_read, char const *beta) |
reads elements of a sparse set defining the tensor, into a sparse read set with potentially repeating keys More... | |
void | sp_write (int num_virt, algstrct const *sr, int64_t *vntsr, ConstPairIterator vprs_tsr, char const *beta, int64_t *vnwrite, ConstPairIterator vprs_write, char const *alpha, int64_t *vnnew, char *&pprs_new) |
writes pairs in a sparse write set to the sparse set of elements defining the tensor, resulting in a set of size between ntsr and ntsr+nwrite More... | |
void | inv_idx (int order_A, int const *idx_A, int *order_tot, int **idx_arr) |
invert index map More... | |
int | strip_diag (int order, int order_tot, int const *idx_map, int64_t vrt_sz, mapping const *edge_map, topology const *topo, algstrct const *sr, int *blk_edge_len, int64_t *blk_sz, strp_tsr **stpr) |
build stack required for stripping out diagonals of tensor More... | |
int | sym_seq_scl_ref (char const *alpha, char *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A) |
performs symmetric scaling using algstrct const * sr_A More... | |
int | sym_seq_scl_cust (char const *alpha, char *A, algstrct const *sr_A, int const order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, endomorphism const *func) |
performs symmetric scaling using custom func More... | |
void | inc_tot_mem_used (int64_t a) |
void | set_mem_size (int64_t size) |
sets what fraction of the memory capacity CTF can use More... | |
void | set_memcap (double cap) |
sets what fraction of the memory capacity CTF can use More... | |
std::list< mem_transfer > | contract_mst () |
gets rid of empty space on the stack More... | |
std::list< mem_loc > * | get_mst () |
void | mst_create (int64_t size) |
initializes stack buffer More... | |
void | mem_create () |
create instance of memory manager More... | |
void | mem_exit (int rank) |
exit instance of memory manager More... | |
int | mst_free (void *ptr) |
frees buffer allocated on stack More... | |
int | untag_mem (void *ptr) |
stops tracking memory allocated by CTF, so user doesn't have to call free More... | |
int | cdealloc (void *ptr, int const tid) |
free abstraction More... | |
int | cdealloc_cond (void *ptr) |
free abstraction (conditional (no error if not found)) More... | |
int | get_num_instances () |
int64_t | proc_bytes_used () |
gives total memory used on this MPI process More... | |
int64_t | proc_bytes_total () |
gives total memory size per MPI process More... | |
int64_t | proc_bytes_available () |
gives total memory available on this MPI process More... | |
std::vector< Model * > & | get_all_models () |
void | print_all_models () |
void | load_all_models (std::string file_name) |
void | write_all_models (std::string file_name) |
void | dump_all_models (std::string path) |
double | cddot (int n, const double *dX, int incX, const double *dY, int incY) |
void | cdgeqrf (int const M, int const N, double *A, int const LDA, double *TAU2, double *WORK, int const LWORK, int *INFO) |
void | cdormqr (char SIDE, char TRANS, int M, int N, int K, double const *A, int LDA, double const *TAU2, double *C, int LDC, double *WORK, int LWORK, int *INFO) |
void | cdgelsd (int m, int n, int k, double const *A, int lda_A, double *B, int lda_B, double *S, double cond, int *rank, double *work, int lwork, int *iwork, int *info) |
template<int nparam> | |
bool | comp_time_param (const time_param< nparam > &a, const time_param< nparam > &b) |
void | offload_init () |
initialize offloading, e.g. create cublas More... | |
void | offload_exit () |
exit offloading, e.g. destroy cublas More... | |
double | estimate_download_time (int64_t size) |
estimate time it takes to upload More... | |
double | estimate_upload_time (int64_t size) |
estimate time it takes to download More... | |
void | host_pinned_alloc (void **ptr, int64_t size) |
allocate a pinned host buffer More... | |
void | host_pinned_free (void *ptr) |
free a pinned host buffer More... | |
template<typename dtype > | |
void | offload_gemm (char tA, char tB, int m, int n, int k, dtype alpha, offload_tsr &A, int lda_A, offload_tsr &B, int lda_B, dtype beta, offload_tsr &C, int lda_C) |
template<typename dtype > | |
void | offload_gemm (char tA, char tB, int m, int n, int k, dtype alpha, dtype const *dev_A, int lda_A, dtype const *dev_B, int lda_B, dtype beta, dtype *dev_C, int lda_C) |
void | calc_idx_arr (int order, int const *lens, int const *sym, int64_t idx, int *idx_arr) |
void | sy_calc_idx_arr (int order, int const *lens, int const *sym, int64_t idx, int *idx_arr) |
same as above except assumes sym only NS or SY More... | |
void | permute (int order, int const *perm, int *arr) |
permute an array More... | |
void | permute_target (int order, int const *perm, int *arr) |
permutes a permutation array More... | |
void | socopy (int64_t m, int64_t n, int64_t lda_a, int64_t lda_b, int64_t const *sizes_a, int64_t *&sizes_b, int64_t *&offsets_b) |
void | spcopy (int64_t m, int64_t n, int64_t lda_a, int64_t lda_b, int64_t const *sizes_a, int64_t const *offsets_a, char const *a, int64_t const *sizes_b, int64_t const *offsets_b, char *b) |
int64_t | fact (int64_t n) |
int64_t | choose (int64_t n, int64_t k) |
void | get_choice (int64_t n, int64_t k, int64_t ch, int *chs) |
int64_t | chchoose (int64_t n, int64_t k) |
int64_t | getTotalSystemMemory () |
int | free_cond (void *ptr) |
int | gcd (int a, int b) |
int | lcm (int a, int b) |
void | lda_cpy (int el_size, int nrow, int ncol, int lda_A, int lda_B, const char *A, char *B) |
Copies submatrix to submatrix (column-major) More... | |
void | coalesce_bwd (int el_size, char *B, char const *B_aux, int k, int n, int kb) |
we receive a contiguous buffer kb-by-n B and (k-kb)-by-n B_aux which is the block below. To get a k-by-n buffer, we need to combine this buffer with our original block. Since we are working with column-major ordering we need to interleave the blocks. Thats what this function does. More... | |
int64_t | get_coo_size (int64_t nnz, int val_size) |
int64_t | get_csr_size (int64_t nnz, int nrow, int val_size) |
computes the size of a serialized CSR matrix More... | |
template<int idim> | |
void | spA_dnB_seq_sum_loop (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, char const *beta, char *&B, algstrct const *sr_B, int order_B, int64_t idx_B, int const *edge_len_B, int64_t const *lda_B, int const *sym_B, univar_function const *func) |
template<> | |
void | spA_dnB_seq_sum_loop< 0 > (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, char const *beta, char *&B, algstrct const *sr_B, int order_B, int64_t idx_B, int const *edge_len_B, int64_t const *lda_B, int const *sym_B, univar_function const *func) |
template void | spA_dnB_seq_sum_loop< MAX_ORD > (char const *alpha, ConstPairIterator &A, int64_t &size_A, algstrct const *sr_A, char const *beta, char *&B, algstrct const *sr_B, int order_B, int64_t idx_B, int const *edge_len_B, int64_t const *lda_B, int const *sym_B, univar_function const *func) |
void | spA_dnB_seq_sum (char const *alpha, char const *A, int64_t size_A, algstrct const *sr_A, char const *beta, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, univar_function const *func) |
performs summation between two sparse tensors assumes A contains key value pairs sorted by key, with index permutation preapplied and with no repeated indices More... | |
void | dnA_spB_seq_sum (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, char const *beta, char const *B, int64_t size_B, char *&new_B, int64_t &new_size_B, algstrct const *sr_B, univar_function const *func) |
performs summation between two sparse tensors assumes B contain key value pairs sorted by key, with index permutation preapplied and with no repeated indices More... | |
void | spspsum (algstrct const *sr_A, int64_t nA, ConstPairIterator prs_A, char const *beta, algstrct const *sr_B, int64_t nB, ConstPairIterator prs_B, char const *alpha, int64_t &nnew, char *&pprs_new, univar_function const *func, int64_t map_pfx) |
As pairs in a sparse A set to the sparse set of elements defining the tensor, resulting in a set of size between nB and nB+nA. More... | |
void | spA_spB_seq_sum (char const *alpha, char const *A, int64_t size_A, algstrct const *sr_A, char const *beta, char *B, int64_t size_B, char *&new_B, int64_t &new_size_B, algstrct const *sr_B, univar_function const *func, int64_t map_pfx) |
performs summation between two sparse tensors assumes A and B contain key value pairs sorted by key, with index permutation preapplied and with no repeated indices More... | |
void | inv_idx (int order_A, int const *idx_A, int order_B, int const *idx_B, int *order_tot, int **idx_arr) |
invert index map More... | |
template<int idim> | |
void | sym_seq_sum_loop (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, univar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template<> | |
void | sym_seq_sum_loop< 0 > (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, univar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
template void | sym_seq_sum_loop< MAX_ORD > (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, uint64_t *const *offsets_A, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, uint64_t *const *offsets_B, univar_function const *func, int const *idx, int const *rev_idx_map, int idx_max) |
void | compute_syoffs (algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, int tot_order, int const *rev_idx_map, uint64_t **&offsets_A, uint64_t **&offsets_B) |
int | sym_seq_sum_ref (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *beta, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B) |
performs symmetric contraction with unblocked reference kernel More... | |
int | sym_seq_sum_inr (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *beta, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, int inr_stride) |
performs symmetric summation with blocked daxpy More... | |
int | sym_seq_sum_cust (char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *beta, char *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, univar_function const *func) |
performs symmetric summation with custom elementwise function More... | |
void | desymmetrize (tensor *sym_tsr, tensor *nonsym_tsr, bool is_C) |
unfolds the data of a tensor More... | |
void | symmetrize (tensor *sym_tsr, tensor *nonsym_tsr) |
folds the data of a tensor More... | |
void | cmp_sym_perms (int ndim, int const *sym, int *nperm, int **perm, double *sign) |
finds all permutations of a tensor according to a symmetry More... | |
void | order_perm (tensor const *A, tensor const *B, int *idx_arr, int off_A, int off_B, int *idx_A, int *idx_B, int &add_sign, int &mod) |
orders the summation indices of one tensor that don't break summation symmetries More... | |
void | order_perm (tensor const *A, tensor const *B, tensor const *C, int *idx_arr, int off_A, int off_B, int off_C, int *idx_A, int *idx_B, int *idx_C, int &add_sign, int &mod) |
orders the contraction indices of one tensor that don't break contraction symmetries More... | |
void | add_sym_perm (std::vector< summation > &perms, std::vector< int > &signs, summation const &new_perm, int new_sign) |
puts a summation map into a nice ordering according to preserved symmetries, and adds it if it is distinct More... | |
void | add_sym_perm (std::vector< contraction > &perms, std::vector< int > &signs, contraction const &new_perm, int new_sign) |
puts a contraction map into a nice ordering according to preserved symmetries, and adds it if it is distinct More... | |
void | get_sym_perms (summation const &sum, std::vector< summation > &perms, std::vector< int > &signs) |
finds all permutations of a summation that must be done for a broken symmetry More... | |
void | get_sym_perms (contraction const &ctr, std::vector< contraction > &perms, std::vector< int > &signs) |
finds all permutations of a contraction that must be done for a broken symmetry More... | |
void | depin (algstrct const *sr, int order, int const *lens, int const *divisor, int nvirt, int const *virt_dim, int const *phys_rank, char *X, int64_t &new_nnz_B, int64_t *nnz_blk, char *&new_B, bool check_padding) |
depins keys of n pairs More... | |
double | spredist_est_time (int64_t size, int np) |
template<typename dtype > | |
void | abs_helper (tensor *A, tensor *B) |
template<typename dtype > | |
void | pow_helper (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template<typename dtype > | |
void | all_helper (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template<typename dtype > | |
void | conj_helper (tensor *A, tensor *B) |
template<typename dtype > | |
void | get_real (tensor *A, tensor *B) |
template<typename dtype > | |
void | get_imag (tensor *A, tensor *B) |
template<typename dtype > | |
void | set_real (tensor *A, tensor *B) |
template<typename dtype > | |
void | set_imag (tensor *A, tensor *B) |
template<typename dtype > | |
void | any_helper (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
int64_t | sum_bool_tsr (tensor *A) |
sum all 1 values in boolean tensor More... | |
void | subsample (tensor *A, double probability) |
extract a sample of the entries (if sparse of the current nonzeros) More... | |
void | matrix_qr (tensor *A, tensor *Q, tensor *R) |
void | matrix_qr_cmplx (tensor *A, tensor *Q, tensor *R) |
void | matrix_svd (tensor *A, tensor *U, tensor *S, tensor *VT, int rank) |
void | matrix_svd_cmplx (tensor *A, tensor *U, tensor *S, tensor *VT, int rank) |
void | conv_type (int type_idx1, int type_idx2, tensor *A, tensor *B) |
convert tensor from one type to another More... | |
template void | conj_helper< float > (tensor *A, tensor *B) |
template void | conj_helper< double > (tensor *A, tensor *B) |
template void | set_real< float > (tensor *A, tensor *B) |
template void | set_imag< float > (tensor *A, tensor *B) |
template void | set_real< double > (tensor *A, tensor *B) |
template void | set_imag< double > (tensor *A, tensor *B) |
template void | get_real< float > (tensor *A, tensor *B) |
template void | get_imag< float > (tensor *A, tensor *B) |
template void | get_real< double > (tensor *A, tensor *B) |
template void | get_imag< double > (tensor *A, tensor *B) |
template void | tensor::compare_elementwise< std::complex< double > > (tensor *A, tensor *B) |
template void | tensor::compare_elementwise< std::complex< float > > (tensor *A, tensor *B) |
template void | abs_helper< std::complex< double > > (tensor *A, tensor *B) |
template void | abs_helper< std::complex< float > > (tensor *A, tensor *B) |
template void | abs_helper< double > (tensor *A, tensor *B) |
template void | abs_helper< float > (tensor *A, tensor *B) |
template void | abs_helper< int64_t > (tensor *A, tensor *B) |
template void | abs_helper< bool > (tensor *A, tensor *B) |
template void | abs_helper< int32_t > (tensor *A, tensor *B) |
template void | abs_helper< int16_t > (tensor *A, tensor *B) |
template void | abs_helper< int8_t > (tensor *A, tensor *B) |
template void | pow_helper< std::complex< double > > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< std::complex< float > > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< double > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< float > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< int64_t > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< bool > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< int32_t > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< int16_t > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | pow_helper< int8_t > (tensor *A, tensor *B, tensor *C, char const *idx_A, char const *idx_B, char const *idx_C) |
template void | all_helper< std::complex< double > > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< std::complex< float > > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< int64_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< double > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< float > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< bool > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< int32_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< int16_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | all_helper< int8_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< std::complex< double > > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< std::complex< float > > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< double > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< float > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< int64_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< bool > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< int32_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< int16_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
template void | any_helper< int8_t > (tensor *A, tensor *B_bool, char const *idx_A, char const *idx_B) |
Variables | |
LinModel< 3 > | seq_tsr_ctr_mdl_cst (seq_tsr_ctr_mdl_cst_init,"seq_tsr_ctr_mdl_cst") |
LinModel< 3 > | seq_tsr_ctr_mdl_ref (seq_tsr_ctr_mdl_ref_init,"seq_tsr_ctr_mdl_ref") |
LinModel< 3 > | seq_tsr_ctr_mdl_inr (seq_tsr_ctr_mdl_inr_init,"seq_tsr_ctr_mdl_inr") |
LinModel< 3 > | seq_tsr_ctr_mdl_off (seq_tsr_ctr_mdl_off_init,"seq_tsr_ctr_mdl_off") |
LinModel< 3 > | seq_tsr_ctr_mdl_cst_inr (seq_tsr_ctr_mdl_cst_inr_init,"seq_tsr_ctr_mdl_cst_inr") |
LinModel< 3 > | seq_tsr_ctr_mdl_cst_off (seq_tsr_ctr_mdl_cst_off_init,"seq_tsr_ctr_mdl_cst_off") |
LinModel< 3 > | seq_tsr_spctr_cst_off_k0 (seq_tsr_spctr_cst_off_k0_init,"seq_tsr_spctr_cst_off_k0") |
LinModel< 3 > | seq_tsr_spctr_cst_off_k1 (seq_tsr_spctr_cst_off_k1_init,"seq_tsr_spctr_cst_off_k1") |
LinModel< 3 > | seq_tsr_spctr_cst_off_k2 (seq_tsr_spctr_cst_off_k2_init,"seq_tsr_spctr_cst_off_k2") |
LinModel< 3 > | seq_tsr_spctr_off_k0 (seq_tsr_spctr_off_k0_init,"seq_tsr_spctr_off_k0") |
LinModel< 3 > | seq_tsr_spctr_off_k1 (seq_tsr_spctr_off_k1_init,"seq_tsr_spctr_off_k1") |
LinModel< 3 > | seq_tsr_spctr_off_k2 (seq_tsr_spctr_off_k2_init,"seq_tsr_spctr_off_k2") |
LinModel< 3 > | seq_tsr_spctr_cst_k0 (seq_tsr_spctr_cst_k0_init,"seq_tsr_spctr_cst_k0") |
LinModel< 3 > | seq_tsr_spctr_cst_k1 (seq_tsr_spctr_cst_k1_init,"seq_tsr_spctr_cst_k1") |
LinModel< 3 > | seq_tsr_spctr_cst_k2 (seq_tsr_spctr_cst_k2_init,"seq_tsr_spctr_cst_k2") |
LinModel< 3 > | seq_tsr_spctr_cst_k3 (seq_tsr_spctr_cst_k3_init,"seq_tsr_spctr_cst_k3") |
LinModel< 3 > | seq_tsr_spctr_cst_k4 (seq_tsr_spctr_cst_k4_init,"seq_tsr_spctr_cst_k4") |
LinModel< 3 > | seq_tsr_spctr_k0 (seq_tsr_spctr_k0_init,"seq_tsr_spctr_k0") |
LinModel< 3 > | seq_tsr_spctr_k1 (seq_tsr_spctr_k1_init,"seq_tsr_spctr_k1") |
LinModel< 3 > | seq_tsr_spctr_k2 (seq_tsr_spctr_k2_init,"seq_tsr_spctr_k2") |
LinModel< 3 > | seq_tsr_spctr_k3 (seq_tsr_spctr_k3_init,"seq_tsr_spctr_k3") |
LinModel< 3 > | seq_tsr_spctr_k4 (seq_tsr_spctr_k4_init,"seq_tsr_spctr_k4") |
LinModel< 2 > | pin_keys_mdl (pin_keys_mdl_init,"pin_keys_mdl") |
std::mersenne_twister_engine< std::uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9, 29, 0x5555555555555555, 17, 0x71d67fffeda60000, 37, 0xfff7eee000000000, 43, 6364136223846793005 > | rng |
LinModel< 3 > | alltoall_mdl (alltoall_mdl_init,"alltoall_mdl") |
LinModel< 3 > | alltoallv_mdl (alltoallv_mdl_init,"alltoallv_mdl") |
LinModel< 3 > | red_mdl (red_mdl_init,"red_mdl") |
LinModel< 3 > | red_mdl_cst (red_mdl_cst_init,"red_mdl_cst") |
LinModel< 3 > | allred_mdl (allred_mdl_init,"allred_mdl") |
LinModel< 3 > | allred_mdl_cst (allred_mdl_cst_init,"allred_mdl_cst") |
LinModel< 3 > | bcast_mdl (bcast_mdl_init,"bcast_mdl") |
int64_t | total_flop_count = 0 |
MPI_Datatype | MPI_CTF_DOUBLE_COMPLEX = MPI_CXX_DOUBLE_COMPLEX |
CTF::Ring< float > | float_ring = CTF::Ring<float>() |
CTF::Ring< double > | double_ring = CTF::Ring<double>() |
CTF::Ring< int > | int_ring = CTF::Ring<int>() |
CTF::Ring< int64_t > | int64_t_ring = CTF::Ring<int64_t>() |
MPI_Datatype | MPI_CTF_BOOL = MPI_CXX_BOOL |
MPI_Datatype | MPI_CTF_LONG_DOUBLE_COMPLEX = MPI_CXX_LONG_DOUBLE_COMPLEX |
std::set< grid_wrapper > | scalapack_grids |
index for ScaLAPACK processor grids More... | |
LinModel< 3 > | dgtog_res_mdl (dgtog_res_mdl_init,"dgtog_res_mdl") |
LinModel< 2 > | long_contig_transp_mdl (long_contig_transp_mdl_init,"long_contig_transp_mdl") |
LinModel< 2 > | shrt_contig_transp_mdl (shrt_contig_transp_mdl_init,"shrt_contig_transp_mdl") |
LinModel< 2 > | non_contig_transp_mdl (non_contig_transp_mdl_init,"non_contig_transp_mdl") |
LinModel< 2 > | blres_mdl (blres_mdl_init,"blres_mdl") |
double | seq_tsr_spctr_cst_off_k0_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_cst_off_k1_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_cst_off_k2_init [] = {-2.1996E-04, 3.1883E-09, 3.8743E-11} |
double | seq_tsr_spctr_off_k0_init [] = {8.6970E-06, 4.5598E-11, 1.1544E-09} |
double | seq_tsr_spctr_off_k1_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_off_k2_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_cst_k0_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_cst_k1_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_cst_k2_init [] = {-8.8459E-08, 8.1207E-10, -2.8486E-12} |
double | seq_tsr_spctr_cst_k3_init [] = {1.8504E-08, 2.9154E-11, 2.1973E-11} |
double | seq_tsr_spctr_cst_k4_init [] = {2.0948E-05, 1.2294E-09, 8.0037E-10} |
double | seq_tsr_spctr_k0_init [] = {2.2620E-08, -5.7494E-10, 2.2146E-09} |
double | seq_tsr_spctr_k1_init [] = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
double | seq_tsr_spctr_k2_init [] = {3.0917E-08, 5.2181E-11, 4.1634E-12} |
double | seq_tsr_spctr_k3_init [] = {7.2456E-08, 1.5128E-10, -1.5528E-12} |
double | seq_tsr_spctr_k4_init [] = {1.6880E-07, 4.9411E-10, 9.2847E-13} |
double | pin_keys_mdl_init [] = {3.1189E-09, 6.6717E-08} |
double | seq_tsr_ctr_mdl_cst_init [] = {5.1626E-06, -6.3215E-11, 3.9638E-09} |
double | seq_tsr_ctr_mdl_ref_init [] = {4.9138E-08, 5.8290E-10, 4.8575E-11} |
double | seq_tsr_ctr_mdl_inr_init [] = {2.0647E-08, 1.9721E-10, 2.9948E-11} |
double | seq_tsr_ctr_mdl_off_init [] = {6.2925E-05, 1.7449E-11, 1.7211E-12} |
double | seq_tsr_ctr_mdl_cst_inr_init [] = {1.3863E-04, 2.0119E-10, 9.8820E-09} |
double | seq_tsr_ctr_mdl_cst_off_init [] = {8.4844E-04, -5.9246E-11, 3.5247E-10} |
double | long_contig_transp_mdl_init [] = {2.9158E-10, 3.0501E-09} |
double | shrt_contig_transp_mdl_init [] = {1.3427E-08, 4.3168E-09} |
double | non_contig_transp_mdl_init [] = {4.0475E-08, 4.0463E-09} |
double | dgtog_res_mdl_init [] = {2.9786E-05, 2.4335E-04, 1.0845E-08} |
double | blres_mdl_init [] = {1.0598E-05, 7.2741E-08} |
double | alltoall_mdl_init [] = {1.0000E-06, 1.0000E-06, 5.0000E-10} |
double | alltoallv_mdl_init [] = {2.7437E-06, 2.2416E-05, 1.0469E-08} |
double | red_mdl_init [] = {6.2935E-07, 4.6276E-06, 9.2245E-10} |
double | red_mdl_cst_init [] = {5.7302E-07, 4.7347E-06, 6.0191E-10} |
double | allred_mdl_init [] = {8.4416E-07, 6.8651E-06, 3.5845E-08} |
double | allred_mdl_cst_init [] = {-3.3754E-04, 2.1343E-04, 3.0801E-09} |
double | bcast_mdl_init [] = {1.5045E-06, 1.4485E-05, 3.2876E-09} |
double | spredist_mdl_init [] = {1.2744E-04, 1.0278E-03, 7.6837E-08} |
double | csrred_mdl_init [] = {3.7005E-05, 1.1854E-04, 5.5165E-09} |
double | csrred_mdl_cst_init [] = {-1.8323E-04, 1.3076E-04, 2.8732E-09} |
double | upload_mdl_init [] |
double | download_mdl_init [] |
double | memcap = 0.5 |
int64_t | mem_size = 0 |
int | max_threads |
int | instance_counter = 0 |
int64_t | mem_used [MAX_THREADS] |
int64_t | tot_mem_used |
int64_t | tot_mem_available = -1 |
std::list< mem_loc > | mem_stacks [MAX_THREADS] |
void * | mst_buffer = 0 |
int64_t | mst_buffer_size = 0 |
int64_t | mst_buffer_used = 0 |
int64_t | mst_buffer_ptr = 0 |
std::list< mem_loc > | mst |
char * | cpy_buffer [CPY_BUFFER_SIZE] |
LinModel< 3 > | csrred_mdl (csrred_mdl_init,"csrred_mdl") |
LinModel< 3 > | csrred_mdl_cst (csrred_mdl_cst_init,"csrred_mdl_cst") |
LinModel< 3 > | spredist_mdl (spredist_mdl_init,"spredist_mdl") |
typedef bool CTF_int::TYPE1 |
Definition at line 6 of file ctf_ext.cxx.
typedef int CTF_int::TYPE2 |
Definition at line 7 of file ctf_ext.cxx.
typedef int64_t CTF_int::TYPE3 |
Definition at line 8 of file ctf_ext.cxx.
typedef float CTF_int::TYPE4 |
Definition at line 9 of file ctf_ext.cxx.
typedef double CTF_int::TYPE5 |
Definition at line 10 of file ctf_ext.cxx.
typedef std::complex<float> CTF_int::TYPE6 |
Definition at line 11 of file ctf_ext.cxx.
typedef std::complex<double> CTF_int::TYPE7 |
Definition at line 12 of file ctf_ext.cxx.
typedef int16_t CTF_int::TYPE8 |
Definition at line 13 of file ctf_ext.cxx.
typedef int8_t CTF_int::TYPE9 |
Definition at line 14 of file ctf_ext.cxx.
enum CTF_int::map_type |
enum CTF_int::TOPOLOGY |
Enumerator | |
---|---|
TOPOLOGY_GENERIC | |
TOPOLOGY_BGP | |
TOPOLOGY_BGQ | |
TOPOLOGY_8D | |
NO_TOPOLOGY |
Definition at line 10 of file topology.h.
absolute value function
[in] | A | tensor, param[in,out] B tensor (becomes absolute value of A) |
Definition at line 17 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::abs(), ctf.core::dtype, and CTF_int::tensor::order.
template void CTF_int::abs_helper< bool > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< int16_t > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< int32_t > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< int64_t > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< int8_t > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::abs_helper< std::complex< double > > | ( | tensor * | A, |
tensor * | B | ||
) |
template void CTF_int::abs_helper< std::complex< float > > | ( | tensor * | A, |
tensor * | B | ||
) |
void CTF_int::add_sym_perm | ( | std::vector< summation > & | perms, |
std::vector< int > & | signs, | ||
summation const & | new_perm, | ||
int | new_sign | ||
) |
puts a summation map into a nice ordering according to preserved symmetries, and adds it if it is distinct
[in,out] | perms | the permuted summation specifications |
[in,out] | signs | sign of each summation |
[in] | new_perm | summation signature |
[in] | new_sign | alpha |
Definition at line 549 of file symmetrization.cxx.
References CTF_int::summation::A, align_symmetric_indices(), CTF_int::summation::B, cdealloc(), CTF_int::summation::idx_A, CTF_int::summation::idx_B, inv_idx(), CTF_int::tensor::order, order_perm(), and CTF_int::tensor::sym.
void CTF_int::add_sym_perm | ( | std::vector< contraction > & | perms, |
std::vector< int > & | signs, | ||
contraction const & | new_perm, | ||
int | new_sign | ||
) |
puts a contraction map into a nice ordering according to preserved symmetries, and adds it if it is distinct
[in,out] | perms | the permuted contraction specifications |
[in,out] | signs | sign of each contraction |
[in] | new_perm | contraction signature |
[in] | new_sign | alpha |
Definition at line 593 of file symmetrization.cxx.
References CTF_int::contraction::A, align_symmetric_indices(), CTF_int::contraction::B, CTF_int::contraction::C, cdealloc(), CTF_int::contraction::idx_A, CTF_int::contraction::idx_B, CTF_int::contraction::idx_C, inv_idx(), CTF_int::tensor::order, order_perm(), and CTF_int::tensor::sym.
Referenced by get_sym_perms().
void CTF_int::all_helper | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
all function
[in] | A | tensor, param[in] B tensor with bool values created, param[in] index of A, param[in] index of B |
Definition at line 33 of file ctf_ext.cxx.
References ctf.core::a, and ctf.core::dtype.
template void CTF_int::all_helper< bool > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< double > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< float > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< int16_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< int32_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< int64_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< int8_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::all_helper< std::complex< double > > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
template void CTF_int::all_helper< std::complex< float > > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
void * CTF_int::alloc | ( | int64_t const | len | ) |
alloc abstraction
[in] | len | number of bytes |
Definition at line 365 of file memcontrol.cxx.
References alloc_ptr(), ASSERT, and SUCCESS.
Referenced by CTF_int::algstrct::alloc(), calc_drv_displs(), calc_sy_pfx(), calc_sy_pfx< 1 >(), compute_syoffs(), CTF_int::contraction::contraction(), conv_idx(), CTF_int::COO_Matrix::COO_Matrix(), CTF_int::CSR_Matrix::csr_add(), CTF_int::CSR_Matrix::CSR_Matrix(), CTF_int::algstrct::csr_reduce(), CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >::csrmultcsr(), CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >::csrmultcsr(), CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >::csrmultcsr_old(), CTF_int::ctr_virt::ctr_virt(), cvrt_idx(), depad_tsr(), depermute_keys(), depin(), desymmetrize(), dgtog_reshuffle(), CTF_int::summation::estimate_time(), factorize(), CTF::Semiring< dtype, is_ord >::gen_csrmultcsr(), CTF_int::COO_Matrix::get_data(), get_full_intm(), get_grp_ptrs(), get_len_ordering(), CTF::Tensor< dtype >::get_local_data(), get_phys_topo(), CTF_int::algstrct::has_mul(), CTF::Idx_Tensor::Idx_Tensor(), CTF_int::tensor::init(), inv_idx(), CTF_int::LinModel< nparam >::LinModel(), CTF_int::Term::operator-(), CTF::Partition::operator=(), order_globally(), CTF_int::tensor::orient_subworld(), CTF_int::algstrct::pair_alloc(), CTF::Partition::Partition(), peel_torus(), CTF::Function_timer::print(), CTF::print_timers(), read_data_mpiio(), CTF_int::tensor::read_dense_from_file(), CTF::Tensor< dtype >::read_local(), CTF_int::tensor::read_local(), CTF_int::tensor::read_local_nnz(), CTF_int::tensor::redistribute(), CTF_int::ctr_virt::run(), CTF_int::spctr_replicate::run(), CTF_int::strp_tsr::run(), CTF_int::tspsum_virt::run(), CTF_int::tspsum_replicate::run(), CTF_int::spctr_2d_general::run(), CTF_int::tsum_virt::run(), CTF_int::spctr_virt::run(), CTF_int::tspsum_permute::run(), CTF_int::algstrct::safecopy(), CTF::Semiring< dtype, is_ord >::safemul(), CTF_int::scaling::scaling(), CTF_int::scl_virt::scl_virt(), CTF_int::tensor::self_reduce(), CTF_int::seq_tsr_ctr::seq_tsr_ctr(), CTF_int::seq_tsr_scl::seq_tsr_scl(), CTF_int::seq_tsr_spctr::seq_tsr_spctr(), CTF_int::seq_tsr_spsum::seq_tsr_spsum(), CTF_int::seq_tsr_sum::seq_tsr_sum(), serialize_sparse_tensor_data(), CTF_int::COO_Matrix::set_data(), CTF_int::tensor::set_name(), CTF_int::tensor::set_zero(), CTF_int::tensor::slice(), CTF::Tensor< dtype >::slice(), socopy(), spA_dnB_dnC_seq_ctr(), CTF_int::tensor::sparsify(), CTF_int::spctr_pin_keys::spctr_pin_keys(), CTF_int::spctr_virt::spctr_virt(), CTF_int::tensor::spmatricize(), spsfy_tsr(), CTF_int::summation::summation(), CTF::Matrix< dtype >::svd(), sym_seq_ctr_cust(), sym_seq_ctr_inr(), sym_seq_ctr_ref(), sym_seq_scl_cust(), sym_seq_scl_ref(), sym_seq_sum_cust(), sym_seq_sum_inr(), sym_seq_sum_ref(), symmetrize(), CTF_int::tensor::tensor(), CTF_int::topology::topology(), CTF_int::tspsum::tspsum(), CTF_int::tspsum_map::tspsum_map(), CTF_int::tspsum_permute::tspsum_permute(), CTF_int::tspsum_pin_keys::tspsum_pin_keys(), CTF_int::tspsum_virt::tspsum_virt(), CTF_int::tsum_virt::tsum_virt(), CTF_int::LinModel< nparam >::update(), and CTF_int::tensor::write_dense_to_file().
int CTF_int::alloc_ptr | ( | int64_t const | len_, |
void **const | ptr | ||
) |
alloc abstraction
[in] | len_ | number of bytes |
[in,out] | ptr | pointer to set to new allocation address |
Definition at line 320 of file memcontrol.cxx.
References ALIGN_BYTES, ASSERT, CTF_int::mem_loc::len, MAX, CTF_int::mem_loc::ptr, and SUCCESS.
Referenced by alloc(), assign_keys(), bcast_step(), block_reshuffle(), bucket_by_pe(), bucket_by_virt(), calc_cnt_displs(), calc_fold_lnmk(), CTF_int::tensor::calc_phase(), check_self_mapping(), cmp_sym_perms(), CTF_int::tensor::compare(), compute_bucket_offsets(), CTF_int::tensor::copy_tensor_data(), CTF::Monoid< dtype, is_ord >::csr_add(), CTF_int::ctr_replicate::ctr_replicate(), cyclic_reshuffle(), depad_tsr(), depin(), desymmetrize(), dgtog_reshuffle(), CTF_int::distribution::distribution(), CTF_int::tensor::est_time_unfold(), CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), CTF_int::tensor::extract_diag(), extract_free_comms(), CTF_int::tensor::fold(), get_len_ordering(), glb_cyclic_reshuffle(), glb_ord_pup(), CTF_int::tensor::init(), CTF_int::summation::is_equal(), map_self_indices(), CTF_int::tensor::map_tensor_rem(), morph_topo(), mst_alloc_ptr(), nosym_transpose(), pad_cyclic_pup_virt_buff(), padded_reshuffle(), CTF_int::CSR_Matrix::partition(), permute(), permute_target(), CTF_int::ConstPairIterator::pin(), precompute_offsets(), CTF_int::summation::print(), CTF_int::tensor::print(), CTF_int::tensor::read_all_pairs(), read_loc_pairs(), CTF_int::tensor::read_local(), readwrite(), reduce_step_post(), reduce_step_pre(), CTF_int::ctr_virt::run(), CTF_int::spctr_replicate::run(), CTF_int::strp_tsr::run(), CTF_int::scl_virt::run(), CTF_int::tspsum_virt::run(), CTF_int::spctr_2d_general::run(), CTF_int::tsum_virt::run(), CTF_int::spctr_virt::run(), CTF_int::tspsum_map::run(), CTF_int::tspsum_permute::run(), scal_diag(), CTF_int::tensor::scale_diagonals(), CTF_int::seq_tsr_ctr::seq_tsr_ctr(), CTF_int::seq_tsr_spctr::seq_tsr_spctr(), CTF_int::distribution::serialize(), CTF_int::tensor::set_padding(), CTF_int::tensor::set_zero(), CTF_int::tensor::sparsify(), CTF_int::spctr_replicate::spctr_replicate(), CTF_int::tensor::spmatricize(), spsfy_tsr(), strip_diag(), CTF_int::summation::sum_tensors(), symmetrize(), CTF_int::tspsum_replicate::tspsum_replicate(), CTF_int::tsum_replicate::tsum_replicate(), CTF_int::tensor::unfold(), wr_pairs_layout(), CTF_int::tensor::write(), CTF_int::tensor::zero_out_padding(), and zero_padding().
void CTF_int::any_helper | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
any function
[in] | A | tensor, param[in] B tensor with bool values created, param[in] index of A, param[in] index of B |
Definition at line 88 of file ctf_ext.cxx.
References ctf.core::a, and ctf.core::dtype.
template void CTF_int::any_helper< bool > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< double > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< float > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< int16_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< int32_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< int64_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< int8_t > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
Referenced by conv_type().
template void CTF_int::any_helper< std::complex< double > > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
template void CTF_int::any_helper< std::complex< float > > | ( | tensor * | A, |
tensor * | B_bool, | ||
char const * | idx_A, | ||
char const * | idx_B | ||
) |
void CTF_int::assign_keys | ( | int | order, |
int64_t | size, | ||
int | nvirt, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_dim, | ||
int * | phase_rank, | ||
char const * | vdata, | ||
char * | vpairs, | ||
algstrct const * | sr | ||
) |
assigns keys to an array of values
[in] | order | tensor dimension |
[in] | size | number of values |
[in] | nvirt | total virtualization factor |
[in] | edge_len | tensor edge lengths |
[in] | sym | symmetries of tensor |
[in] | phase | total phase of the tensor on virtualized processor grid |
[in] | phys_phase | physical phase of the tensor |
[in] | virt_dim | virtual phase in each dimension |
[in] | phase_rank | physical phase rank multiplied by virtual phase |
[in] | vdata | array of input values |
[out] | vpairs | pairs of keys and inputted values |
[in] | sr | algstrct defining data type of array |
Definition at line 180 of file sparse_rw.cxx.
References ABORT, alloc_ptr(), ASSERT, cdealloc(), CTF_int::accumulatable::el_size, NS, CTF_int::algstrct::pair_size(), CTF_int::algstrct::set_pair(), TAU_FSTART, and TAU_FSTOP.
Referenced by read_loc_pairs().
char* CTF_int::bcast_step | ( | int | edge_len, |
char * | A, | ||
bool | is_sparse_A, | ||
bool | move_A, | ||
algstrct const * | sr_A, | ||
int64_t | b_A, | ||
int64_t | s_A, | ||
char * | buf_A, | ||
CommData * | cdt_A, | ||
int64_t | ctr_sub_lda_A, | ||
int64_t | ctr_lda_A, | ||
int | nblk_A, | ||
int64_t const * | size_blk_A, | ||
int & | new_nblk_A, | ||
int64_t *& | new_size_blk_A, | ||
int64_t * | offsets_A, | ||
int | ib | ||
) |
Definition at line 138 of file spctr_2d_general.cxx.
References alloc_ptr(), ASSERT, CTF_int::CommData::bcast(), cdealloc(), CTF_int::algstrct::copy(), CTF_int::spctr_2d_general::ctr_sub_lda_A, CTF_int::spctr_2d_general::edge_len, CTF_int::accumulatable::el_size, CTF_int::algstrct::mdtype(), mst_alloc_ptr(), CTF_int::CommData::np, CTF_int::CommData::rank, socopy(), and spcopy().
Referenced by CTF_int::spctr_2d_general::run().
void CTF_int::block_reshuffle | ( | distribution const & | old_dist, |
distribution const & | new_dist, | ||
char * | tsr_data, | ||
char *& | tsr_cyclic_data, | ||
algstrct const * | sr, | ||
CommData | glb_comm | ||
) |
Reshuffle elements by block given the global phases stay the same.
[in] | old_dist | starting data distrubtion |
[in] | new_dist | target data distrubtion |
[in] | tsr_data | starting data buffer |
[out] | tsr_cyclic_data | target data buffer |
[in] | sr | algstrct defining data |
[in] | glb_comm | communicator on which to redistribute |
Definition at line 454 of file redist.cxx.
References CTF_int::algstrct::addid(), CTF_int::algstrct::alloc(), alloc_ptr(), cdealloc(), CTF_int::CommData::cm, CTF_int::algstrct::copy(), DPRINTF, CTF_int::accumulatable::el_size, CTF_int::algstrct::mdtype(), CTF_int::LinModel< nparam >::observe(), CTF_int::distribution::order, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, CTF_int::CommData::rank, CTF_int::algstrct::set(), CTF_int::LinModel< nparam >::should_observe(), CTF_int::distribution::size, TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by CTF_int::tensor::redistribute().
double CTF_int::blres_est_time | ( | int64_t | tot_sz, |
int | nv0, | ||
int | nv1 | ||
) |
estimates execution time, given this processor sends a receives tot_sz across np procs
[in] | tot_sz | amount of data sent/recved |
[in] | nv0 | starting number of blocks |
[in] | nv1 | ending number of blocks |
Definition at line 449 of file redist.cxx.
References CTF_int::LinModel< nparam >::est_time().
Referenced by CTF_int::tensor::est_redist_time().
void CTF_int::bucket_by_pe | ( | int | order, |
int64_t | num_pair, | ||
int64_t | np, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int const * | bucket_lda, | ||
int const * | edge_len, | ||
ConstPairIterator | mapped_data, | ||
int64_t * | bucket_counts, | ||
int64_t * | bucket_off, | ||
PairIterator | bucket_data, | ||
algstrct const * | sr | ||
) |
buckets key-value pairs by processor according to distribution
[in] | order | number of tensor dims |
[in] | num_pair | numbers of values being written |
[in] | np | number of processor buckets |
[in] | phys_phase | physical distribution phase |
[in] | virt_phase | factor of phase due to local blocking |
[in] | bucket_lda | iterator hop along each bucket dim |
[in] | edge_len | padded edge lengths of tensor |
[in] | mapped_data | set of sparse key-value pairs |
[out] | bucket_counts | how many keys belong to each processor |
[out] | bucket_off | prefix sum of bucket_counts |
[out] | bucket_data | mapped_data reordered by bucket |
[in] | sr | algstrct context defining values |
Definition at line 432 of file sparse_rw.cxx.
References alloc_ptr(), ASSERT, cdealloc(), CTF_int::ConstPairIterator::k(), ctf.core::np(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write().
Referenced by wr_pairs_layout().
int64_t * CTF_int::bucket_by_virt | ( | int | order, |
int | num_virt, | ||
int64_t | num_pair, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int const * | edge_len, | ||
ConstPairIterator | mapped_data, | ||
PairIterator | bucket_data, | ||
algstrct const * | sr | ||
) |
buckets key value pairs by block/virtual-processor
[in] | order | number of tensor dims |
[in] | num_virt | number of local blocks |
[in] | num_pair | numbers of values being written |
[in] | phys_phase | physical distribution phase |
[in] | virt_phase | factor of phase due to local blocking |
[in] | edge_len | padded edge lengths of tensor |
[in] | mapped_data | set of sparse key-value pairs |
[out] | bucket_data | mapped_data reordered by bucket |
[in] | sr | algstrct context defining values |
Definition at line 539 of file sparse_rw.cxx.
References alloc_ptr(), ASSERT, cdealloc(), CTF_int::ConstPairIterator::k(), CTF_int::PairIterator::sort(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write().
Referenced by wr_pairs_layout().
int64_t CTF_int::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 processor index gidx_off in a distribution with dimensions sphase
Definition at line 23 of file dgtog_calc_cnt.cxx.
References cdealloc(), get_loc(), and NS.
Referenced by calc_drv_cnts< 0 >(), and calc_sy_pfx().
int64_t CTF_int::calc_cnt< 0 > | ( | int const * | sym, |
int const * | rep_phase, | ||
int const * | sphase, | ||
int const * | gidx_off, | ||
int const * | edge_len, | ||
int const * | loc_edge_len | ||
) |
Definition at line 44 of file dgtog_calc_cnt.cxx.
Referenced by calc_sy_pfx< 1 >().
void CTF_int::calc_cnt_displs | ( | int const * | sym, |
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
int | new_nvirt, | ||
int | np, | ||
int const * | old_virt_edge_len, | ||
int const * | new_virt_lda, | ||
int64_t * | send_counts, | ||
int64_t * | recv_counts, | ||
int64_t * | send_displs, | ||
int64_t * | recv_displs, | ||
CommData | ord_glb_comm, | ||
int | idx_lyr, | ||
int *const * | bucket_offset | ||
) |
assigns keys to an array of values
[in] | sym | symmetry relations between tensor dimensions |
[in] | old_dist | starting data distrubtion |
[in] | new_dist | target data distrubtion |
[in] | new_nvirt | new total virtualization factor |
[in] | np | number of processors |
[in] | old_virt_edge_len | old edge lengths of blocks |
[in] | new_virt_lda | prefix sum of new_dist.virt_phase |
[out] | send_counts | outgoing counts of pairs by pe |
[out] | recv_counts | incoming counts of pairs by pe |
[out] | send_displs | outgoing displs of pairs by pe |
[out] | recv_displs | incoming displs of pairs by pe |
[in] | ord_glb_comm | the global communicator |
[in] | idx_lyr | starting processor layer (2.5D) |
[in] | bucket_offset | offsets for target index for each dimension |
Definition at line 170 of file redist.cxx.
References alloc_ptr(), ASSERT, blres_mdl, blres_mdl_init, cdealloc(), CTF_int::CommData::cm, ctf.core::dim, MAX, MIN, mst_alloc_ptr(), ctf.core::np(), NS, CTF_int::distribution::order, CTF_int::distribution::pad_edge_len, CTF_int::distribution::padding, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, SY, sy_packed_size(), and CTF_int::distribution::virt_phase.
Referenced by cyclic_reshuffle(), and glb_cyclic_reshuffle().
void CTF_int::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 | ||
) |
Definition at line 155 of file dgtog_calc_cnt.cxx.
References calc_cnt_from_rep_cnt< 0 >().
Referenced by dgtog_reshuffle().
void CTF_int::calc_cnt_from_rep_cnt< 0 > | ( | 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 | ||
) |
Definition at line 174 of file dgtog_calc_cnt.cxx.
Referenced by calc_cnt_from_rep_cnt().
void CTF_int::calc_dim | ( | int | order, |
int64_t | size, | ||
int const * | edge_len, | ||
mapping const * | edge_map, | ||
int64_t * | vrt_sz, | ||
int * | vrt_edge_len, | ||
int * | blk_edge_len | ||
) |
calculate the block-sizes of a tensor
[in] | order | number of dimensions of this tensor |
[in] | size | is the size of the local tensor stored |
[in] | edge_len | edge lengths of global tensor |
[in] | edge_map | mapping of each dimension |
[out] | vrt_sz | size of virtual block |
[out] | vrt_edge_len | edge lengths of virtual block |
[out] | blk_edge_len | edge lengths of local block |
Definition at line 143 of file distribution.cxx.
References CTF_int::mapping::child, CTF_int::mapping::has_child, CTF_int::mapping::np, CTF_int::distribution::order, PHYSICAL_MAP, CTF_int::distribution::size, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by CTF_int::tensor::est_time_unfold(), CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), CTF_int::tensor::fold(), get_len_ordering(), and CTF_int::tensor::unfold().
void CTF_int::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 | ||
) |
Definition at line 120 of file dgtog_calc_cnt.cxx.
Referenced by calc_drv_displs().
void CTF_int::calc_drv_cnts< 0 > | ( | 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 | ||
) |
Definition at line 138 of file dgtog_calc_cnt.cxx.
References calc_cnt(), and SWITCH_ORD_CALL_RET.
void CTF_int::calc_drv_displs | ( | int const * | sym, |
int const * | edge_len, | ||
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
int64_t * | counts, | ||
int | idx_lyr | ||
) |
Definition at line 220 of file dgtog_calc_cnt.cxx.
References alloc(), calc_drv_cnts(), cdealloc(), lcm(), SWITCH_ORD_CALL, TAU_FSTART, and TAU_FSTOP.
Referenced by dgtog_reshuffle().
void CTF_int::calc_fold_lnmk | ( | tensor const * | A, |
tensor const * | B, | ||
tensor const * | C, | ||
int const * | idx_A, | ||
int const * | idx_B, | ||
int const * | idx_C, | ||
int const * | ordering_A, | ||
int const * | ordering_B, | ||
iparam * | inner_prm | ||
) |
calculate the dimensions of the matrix the contraction gets reduced to (A, B, and C may be permuted)
[in] | A | tensor 1 |
[in] | B | tensor 2 |
[in] | C | tensor 3 |
[in] | idx_A | indices of tensor 1 |
[in] | idx_B | indices of tensor 2 |
[in] | idx_C | indices of tensor 3 |
[in] | ordering_A | the dimensional-ordering of the inner mapping of A |
[in] | ordering_B | the dimensional-ordering of the inner mapping of B |
[out] | inner_prm | parameters includng l(number of matrix mutlplications),n,m,k |
Definition at line 200 of file contraction.cxx.
References alloc_ptr(), cdealloc(), inv_idx(), CTF_int::iparam::k, CTF_int::iparam::l, CTF_int::iparam::m, CTF_int::iparam::n, NS, CTF_int::tensor::order, CTF_int::tensor::pad_edge_len, and CTF_int::iparam::sz_C.
Referenced by get_len_ordering().
void CTF_int::calc_idx_arr | ( | int | order, |
int const * | lens, | ||
int const * | sym, | ||
int64_t | idx, | ||
int * | idx_arr | ||
) |
Definition at line 72 of file util.cxx.
References ASSERT, ctf.core::dim, NS, and packed_size().
Referenced by get_choice(), glb_ord_pup(), pad_cyclic_pup_virt_buff(), scal_diag(), and zero_padding().
int64_t * CTF_int::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 the idim'th tensor dimension
Definition at line 55 of file dgtog_calc_cnt.cxx.
References alloc(), calc_cnt(), cdealloc(), get_glb(), get_loc(), NS, and SY.
int64_t* CTF_int::calc_sy_pfx< 1 > | ( | int const * | sym, |
int const * | rep_phase, | ||
int const * | sphase, | ||
int const * | gidx_off, | ||
int const * | edge_len, | ||
int const * | loc_edge_len | ||
) |
Definition at line 97 of file dgtog_calc_cnt.cxx.
References alloc(), calc_cnt< 0 >(), get_glb(), get_loc(), NS, and SY.
int CTF_int::can_block_reshuffle | ( | int | order, |
int const * | old_phase, | ||
mapping const * | map | ||
) |
determines if tensor can be permuted by block
[in] | order | dimension of tensor |
[in] | old_phase | old cyclic phases in each dimension |
[in] | map | new mapping for each edge length |
Definition at line 618 of file redist.cxx.
References CTF_int::mapping::calc_phase().
Referenced by CTF_int::tensor::est_redist_time(), CTF_int::tensor::get_redist_mem(), CTF_int::summation::is_equal(), and CTF_int::tensor::redistribute().
determines if two topologies are compatible with each other
topo_keep | topology to keep (larger dimension) |
topo_change | topology to change (smaller dimension) |
Definition at line 683 of file topology.cxx.
References CTF_int::topology::dim_comm, CTF_int::topology::lda, CTF_int::CommData::np, and CTF_int::topology::order.
Referenced by get_len_ordering().
double CTF_int::cddot | ( | int | n, |
const double * | dX, | ||
int | incX, | ||
const double * | dY, | ||
int | incY | ||
) |
Definition at line 60 of file model.cxx.
References CTF_BLAS::DDOT().
int CTF_int::cdealloc | ( | void * | ptr | ) |
free abstraction
[in,out] | ptr | pointer to set to address to free |
Definition at line 480 of file memcontrol.cxx.
References ABORT, cdealloc(), ERROR, max_threads, mst_free(), NEGATIVE, and SUCCESS.
Referenced by add_sym_perm(), CTF_int::CommData::all_to_allv(), assign_keys(), bcast_step(), block_reshuffle(), bucket_by_pe(), bucket_by_virt(), calc_cnt(), calc_cnt_displs(), calc_drv_displs(), calc_fold_lnmk(), calc_sy_pfx(), CTF_int::tensor::calc_tot_phase(), check_self_mapping(), CTF_int::tensor::compare(), copy_mapping(), CTF_int::tensor::copy_tensor_data(), CTF::Monoid< dtype, is_ord >::csr_add(), CTF_int::CSR_Matrix::csr_add(), CTF_int::algstrct::csr_reduce(), CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >::csrmultcsr(), CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >::csrmultcsr(), CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >::csrmultcsr_old(), cyclic_reshuffle(), CTF_int::algstrct::dealloc(), depad_tsr(), depermute_keys(), depin(), CTF_int::tensor::despmatricize(), desymmetrize(), dgtog_reshuffle(), CTF_int::seq_tsr_spctr::est_fp(), CTF_int::seq_tsr_ctr::est_fp(), CTF_int::tensor::est_time_unfold(), CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), CTF_int::Contract_Term::execute(), CTF_int::tensor::extract_diag(), CTF_int::tensor::fold(), CTF_int::strp_tsr::free_exp(), CTF_int::tensor::free_self(), CTF::Semiring< dtype, is_ord >::gen_csrmultcsr(), CTF_int::COO_Matrix::get_data(), get_full_intm(), get_generic_topovec(), get_len_ordering(), get_phys_topo(), glb_cyclic_reshuffle(), glb_ord_pup(), CTF_int::summation::is_equal(), map_self_indices(), CTF_int::tensor::map_tensor_rem(), morph_topo(), nosym_transpose(), CTF::Idx_Tensor::operator-=(), order_globally(), CTF_int::tensor::orient_subworld(), pad_cyclic_pup_virt_buff(), padded_reshuffle(), CTF_int::algstrct::pair_dealloc(), peel_torus(), permute(), permute_target(), CTF_int::ConstPairIterator::pin(), CTF::Function_timer::print(), CTF_int::summation::print(), CTF_int::tensor::print(), CTF::print_timers(), CTF_int::tensor::read_all_pairs(), read_data_mpiio(), CTF_int::tensor::read_dense_from_file(), read_loc_pairs(), CTF_int::tensor::read_local(), CTF::read_sparse_from_file_base(), readwrite(), CTF_int::tensor::redistribute(), reduce_step_post(), CTF_int::tensor::remove_fold(), CTF_int::ctr_virt::run(), CTF_int::spctr_replicate::run(), CTF_int::strp_tsr::run(), CTF_int::scl_virt::run(), CTF_int::tspsum_virt::run(), CTF_int::tspsum_replicate::run(), CTF_int::ctr_2d_general::run(), CTF_int::spctr_2d_general::run(), CTF_int::tsum_virt::run(), CTF_int::tsum_replicate::run(), CTF_int::spctr_virt::run(), CTF_int::tspsum_map::run(), CTF_int::tspsum_permute::run(), CTF_int::spctr_pin_keys::run(), CTF_int::algstrct::safecopy(), CTF::Semiring< dtype, is_ord >::safemul(), scal_diag(), CTF_int::tensor::scale_diagonals(), CTF_int::distribution::serialize(), CTF_int::COO_Matrix::set_data(), CTF_int::tensor::set_distribution(), CTF_int::tensor::set_name(), CTF_int::tensor::set_padding(), CTF_int::tensor::set_zero(), CTF_int::tensor::slice(), CTF::Tensor< dtype >::slice(), spA_dnB_dnC_seq_ctr(), CTF_int::tensor::sparsify(), CTF_int::tensor::spmatricize(), spsfy_tsr(), strip_diag(), CTF_int::summation::sum_tensors(), CTF::Matrix< dtype >::svd(), sym_seq_ctr_cust(), sym_seq_ctr_inr(), sym_seq_ctr_ref(), sym_seq_scl_cust(), sym_seq_scl_ref(), sym_seq_sum_cust(), sym_seq_sum_inr(), sym_seq_sum_ref(), symmetrize(), CTF_int::tensor::tensor(), CTF_int::tensor::unfold(), CTF_int::LinModel< nparam >::update(), wr_pairs_layout(), CTF_int::tensor::write(), CTF_int::tensor::write_dense_to_file(), CTF::write_sparse_to_file_base(), CTF_int::tensor::zero_out_padding(), zero_padding(), CTF_int::contraction::~contraction(), CTF_int::ctr_replicate::~ctr_replicate(), CTF_int::ctr_virt::~ctr_virt(), CTF::Idx_Tensor::~Idx_Tensor(), CTF_int::LinModel< nparam >::~LinModel(), CTF::Partition::~Partition(), CTF_int::scaling::~scaling(), CTF_int::scl::~scl(), CTF_int::scl_virt::~scl_virt(), CTF_int::seq_tsr_ctr::~seq_tsr_ctr(), CTF_int::seq_tsr_scl::~seq_tsr_scl(), CTF_int::seq_tsr_spctr::~seq_tsr_spctr(), CTF_int::seq_tsr_spsum::~seq_tsr_spsum(), CTF_int::seq_tsr_sum::~seq_tsr_sum(), CTF_int::spctr_pin_keys::~spctr_pin_keys(), CTF_int::spctr_replicate::~spctr_replicate(), CTF_int::spctr_virt::~spctr_virt(), CTF_int::strp_tsr::~strp_tsr(), CTF_int::summation::~summation(), CTF_int::Term::~Term(), CTF_int::topology::~topology(), CTF_int::tspsum::~tspsum(), CTF_int::tspsum_map::~tspsum_map(), CTF_int::tspsum_permute::~tspsum_permute(), CTF_int::tspsum_pin_keys::~tspsum_pin_keys(), CTF_int::tspsum_replicate::~tspsum_replicate(), CTF_int::tspsum_virt::~tspsum_virt(), CTF_int::tsum::~tsum(), CTF_int::tsum_replicate::~tsum_replicate(), and CTF_int::tsum_virt::~tsum_virt().
int CTF_int::cdealloc | ( | void * | ptr, |
int const | tid | ||
) |
free abstraction
[in,out] | ptr | pointer to set to address to free |
[in] | tid | thread id from whose stack pointer needs to be freed |
Definition at line 410 of file memcontrol.cxx.
References ctf.core::it, mst_free(), NEGATIVE, and SUCCESS.
Referenced by cdealloc(), and cdealloc_cond().
int CTF_int::cdealloc_cond | ( | void * | ptr | ) |
free abstraction (conditional (no error if not found))
[in,out] | ptr | pointer to set to address to free |
Definition at line 448 of file memcontrol.cxx.
References cdealloc(), max_threads, NEGATIVE, and SUCCESS.
void CTF_int::cdgelsd | ( | int | m, |
int | n, | ||
int | k, | ||
double const * | A, | ||
int | lda_A, | ||
double * | B, | ||
int | lda_B, | ||
double * | S, | ||
double | cond, | ||
int * | rank, | ||
double * | work, | ||
int | lwork, | ||
int * | iwork, | ||
int * | info | ||
) |
Definition at line 102 of file model.cxx.
References CTF_LAPACK::cdgelsd().
Referenced by CTF_int::LinModel< nparam >::update().
void CTF_int::cdgeqrf | ( | int const | M, |
int const | N, | ||
double * | A, | ||
int const | LDA, | ||
double * | TAU2, | ||
double * | WORK, | ||
int const | LWORK, | ||
int * | INFO | ||
) |
Definition at line 67 of file model.cxx.
References CTF_LAPACK::cdgeqrf().
Referenced by CTF_int::LinModel< nparam >::update().
void CTF_int::cdormqr | ( | char | SIDE, |
char | TRANS, | ||
int | M, | ||
int | N, | ||
int | K, | ||
double const * | A, | ||
int | LDA, | ||
double const * | TAU2, | ||
double * | C, | ||
int | LDC, | ||
double * | WORK, | ||
int | LWORK, | ||
int * | INFO | ||
) |
Definition at line 80 of file model.cxx.
References CTF_LAPACK::cdormqr().
Referenced by CTF_int::LinModel< nparam >::update().
void CTF_int::char_abs | ( | char const * | a, |
char * | b | ||
) |
Definition at line 130 of file set.h.
References ctf.core::abs(), and ctf.core::dtype.
int64_t CTF_int::chchoose | ( | int64_t | n, |
int64_t | k | ||
) |
int CTF_int::check_self_mapping | ( | tensor const * | tsr, |
int const * | idx_map | ||
) |
checks mapping in preparation for tensors scale, summ or contract
[in] | tsr | handle to tensor |
[in] | idx_map | is the mapping of tensor to global indices |
Definition at line 332 of file mapping.cxx.
References alloc_ptr(), CTF_int::mapping::calc_phase(), cdealloc(), CTF_int::mapping::cdt, CTF_int::mapping::child, DPRINTF, CTF_int::tensor::edge_map, CTF_int::mapping::has_child, CTF_int::tensor::order, PHYSICAL_MAP, and CTF_int::mapping::type.
Referenced by CTF_int::scaling::execute(), get_len_ordering(), CTF_int::summation::is_equal(), and CTF_int::tensor::set_distribution().
int64_t CTF_int::choose | ( | int64_t | n, |
int64_t | k | ||
) |
Definition at line 285 of file util.cxx.
References fact().
Referenced by coalesce_bwd(), and get_len_ordering().
void CTF_int::cmp_sym_perms | ( | int | ndim, |
int const * | sym, | ||
int * | nperm, | ||
int ** | perm, | ||
double * | sign | ||
) |
finds all permutations of a tensor according to a symmetry
[in] | ndim | dimension of tensor |
[in] | sym | symmetry specification of tensor |
[out] | nperm | number of symmeitrc permutations to do |
[out] | perm | the permutation |
[out] | sign | sign of each permutation |
Definition at line 400 of file symmetrization.cxx.
References alloc_ptr(), AS, ASSERT, ctf.core::np(), and NS.
|
inline |
we receive a contiguous buffer kb-by-n B and (k-kb)-by-n B_aux which is the block below. To get a k-by-n buffer, we need to combine this buffer with our original block. Since we are working with column-major ordering we need to interleave the blocks. Thats what this function does.
[in] | el_size | element size |
[in,out] | B | the buffer to coalesce into |
[in] | B_aux | the second buffer to coalesce from |
[in] | k | the total number of rows |
[in] | n | the number of columns |
[in] | kb | the number of rows in a B originally |
Definition at line 398 of file util.h.
References ctf.core::a, ctf.core::b, chchoose(), choose(), fact(), get_choice(), permute(), permute_target(), socopy(), and spcopy().
compares two mappings
map_A | first map |
map_B | second map return true if mapping is exactly the same, false otherwise |
Definition at line 143 of file mapping.cxx.
References ASSERT, CTF_int::mapping::cdt, CTF_int::mapping::child, DEBUG_PRINTF, CTF_int::mapping::has_child, NOT_MAPPED, CTF_int::mapping::np, PHYSICAL_MAP, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by CTF_int::tensor::align(), ctr_2d_gen_build(), get_len_ordering(), and CTF_int::summation::is_equal().
bool CTF_int::comp_time_param | ( | const time_param< nparam > & | a, |
const time_param< nparam > & | b | ||
) |
Definition at line 114 of file model.cxx.
References CTF_int::time_param< nparam >::p.
int ** CTF_int::compute_bucket_offsets | ( | distribution const & | old_dist, |
distribution const & | new_dist, | ||
int const * | len, | ||
int const * | old_phys_edge_len, | ||
int const * | old_virt_lda, | ||
int const * | old_offsets, | ||
int *const * | old_permutation, | ||
int const * | new_phys_edge_len, | ||
int const * | new_virt_lda, | ||
int | forward, | ||
int | old_virt_np, | ||
int | new_virt_np, | ||
int const * | old_virt_edge_len | ||
) |
computes offsets for redistribution targets along each edge length
[in] | old_dist | starting data distrubtion |
[in] | new_dist | target data distrubtion |
[in] | len | unpadded edge lengths |
[in] | old_phys_edge_len | total edge lengths of old local tensor chunk |
[in] | old_virt_lda | prefix sum of old_dist.virt_phase |
[in] | old_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | old_permutation | permutation array for each edge length (no perm if NULL) |
[in] | new_phys_edge_len | total edge lengths of new local tensor chunk |
[in] | new_virt_lda | prefix sum of new_dist.virt_phase |
[in] | forward | 1 for sending 0 for receiving |
[in] | old_virt_np | number of blocks per processor in old_dist |
[in] | new_virt_np | number of blocks per processor in new_dist |
[in] | old_virt_edge_len | edge lengths of each block in old_dist |
Definition at line 111 of file redist.cxx.
References alloc_ptr(), ctf.core::dim, MAX, CTF_int::distribution::order, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by cyclic_reshuffle(), and glb_cyclic_reshuffle().
void CTF_int::compute_syoff | ( | int | r, |
int | len, | ||
algstrct const * | sr, | ||
int const * | edge_len, | ||
int const * | sym, | ||
uint64_t * | offsets | ||
) |
Definition at line 301 of file sym_seq_ctr.cxx.
References CTF_int::accumulatable::el_size, NS, and sy_packed_size().
Referenced by compute_syoffs().
void CTF_int::compute_syoffs | ( | algstrct const * | sr_A, |
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
int | tot_order, | ||
int const * | rev_idx_map, | ||
uint64_t **& | offsets_A, | ||
uint64_t **& | offsets_B | ||
) |
Definition at line 193 of file sym_seq_sum.cxx.
References alloc(), compute_syoff(), compute_syoffs(), TAU_FSTART, and TAU_FSTOP.
void CTF_int::compute_syoffs | ( | algstrct const * | sr_A, |
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
int | tot_order, | ||
int const * | rev_idx_map, | ||
uint64_t **& | offsets_A, | ||
uint64_t **& | offsets_B, | ||
uint64_t **& | offsets_C | ||
) |
Definition at line 332 of file sym_seq_ctr.cxx.
References alloc(), compute_syoff(), TAU_FSTART, and TAU_FSTOP.
Referenced by compute_syoffs(), spA_dnB_dnC_seq_ctr(), sym_seq_ctr_cust(), sym_seq_ctr_ref(), and sym_seq_sum_ref().
Definition at line 42 of file ctf_ext.cxx.
References ctf.core::a, and CTF_int::tensor::order.
template void CTF_int::conj_helper< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::conj_helper< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
std::vector< Term* > CTF_int::contract_down_terms | ( | algstrct * | sr, |
char * | tscale, | ||
std::vector< Term * > | operands, | ||
std::vector< char > | out_inds, | ||
int | terms_to_leave, | ||
bool | est_time = false , |
||
double * | cost = NULL |
||
) |
Definition at line 563 of file term.cxx.
References CTF::Idx_Tensor::clone(), CTF_int::Contract_Term::clone(), det_uniq_inds(), CTF_int::Term::estimate_time(), CTF_int::contraction::estimate_time(), CTF_int::Term::execute(), CTF_int::contraction::execute(), get_full_intm(), CTF::Idx_Tensor::idx_map, CTF_int::algstrct::mulid(), CTF::Idx_Tensor::parent, CTF_int::algstrct::safecopy(), CTF_int::algstrct::safemul(), and CTF_int::Term::scale.
Referenced by CTF_int::Contract_Term::estimate_time(), and CTF_int::Contract_Term::execute().
std::list< mem_transfer > CTF_int::contract_mst | ( | ) |
gets rid of empty space on the stack
Definition at line 125 of file memcontrol.cxx.
References CPY_BUFFER_SIZE, ctf.core::it, MIN, mst, mst_alloc(), CTF_int::mem_transfer::new_ptr, CTF_int::mem_transfer::old_ptr, TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::summation::estimate_time(), and get_len_ordering().
int CTF_int::conv_idx | ( | int | order, |
type const * | cidx, | ||
int ** | iidx | ||
) |
Definition at line 50 of file common.cxx.
References alloc().
Referenced by CTF_int::contraction::contraction(), CTF_int::scaling::scaling(), CTF_int::tensor::set_distribution(), and CTF_int::summation::summation().
int CTF_int::conv_idx | ( | int | order_A, |
type const * | cidx_A, | ||
int ** | iidx_A, | ||
int | order_B, | ||
type const * | cidx_B, | ||
int ** | iidx_B | ||
) |
Definition at line 76 of file common.cxx.
References alloc(), and conv_idx().
int CTF_int::conv_idx | ( | int | order_A, |
type const * | cidx_A, | ||
int ** | iidx_A, | ||
int | order_B, | ||
type const * | cidx_B, | ||
int ** | iidx_B, | ||
int | order_C, | ||
type const * | cidx_C, | ||
int ** | iidx_C | ||
) |
Definition at line 114 of file common.cxx.
References alloc(), conv_idx< char >(), and conv_idx< int >().
Referenced by conv_idx().
template int CTF_int::conv_idx< char > | ( | int | , |
char const * | , | ||
int ** | |||
) |
template int CTF_int::conv_idx< char > | ( | int | , |
char const * | , | ||
int ** | , | ||
int | , | ||
char const * | , | ||
int ** | |||
) |
template int CTF_int::conv_idx< char > | ( | int | , |
char const * | , | ||
int ** | , | ||
int | , | ||
char const * | , | ||
int ** | , | ||
int | , | ||
char const * | , | ||
int ** | |||
) |
Referenced by conv_idx().
template int CTF_int::conv_idx< int > | ( | int | , |
int const * | , | ||
int ** | |||
) |
Referenced by CTF_int::summation::estimate_time(), and get_len_ordering().
template int CTF_int::conv_idx< int > | ( | int | , |
int const * | , | ||
int ** | , | ||
int | , | ||
int const * | , | ||
int ** | |||
) |
template int CTF_int::conv_idx< int > | ( | int | , |
int const * | , | ||
int ** | , | ||
int | , | ||
int const * | , | ||
int ** | , | ||
int | , | ||
int const * | , | ||
int ** | |||
) |
Referenced by conv_idx().
convert tensor from one type to another
[in] | type_idx1 | index of first ype |
[in] | type_idx2 | index of second ype |
[in] | A | tensor to convert |
[in] | B | tensor to convert to |
Definition at line 327 of file ctf_ext.cxx.
References abs_helper< bool >(), abs_helper< double >(), abs_helper< float >(), abs_helper< int16_t >(), abs_helper< int32_t >(), abs_helper< int64_t >(), abs_helper< int8_t >(), all_helper< bool >(), all_helper< double >(), all_helper< float >(), all_helper< int16_t >(), all_helper< int32_t >(), all_helper< int64_t >(), all_helper< int8_t >(), any_helper< bool >(), any_helper< double >(), any_helper< float >(), any_helper< int16_t >(), any_helper< int32_t >(), any_helper< int64_t >(), any_helper< int8_t >(), conj_helper< double >(), conj_helper< float >(), get_imag< double >(), get_imag< float >(), get_real< double >(), get_real< float >(), pow_helper< bool >(), pow_helper< double >(), pow_helper< float >(), pow_helper< int16_t >(), pow_helper< int32_t >(), pow_helper< int64_t >(), pow_helper< int8_t >(), set_imag< double >(), set_imag< float >(), set_real< double >(), set_real< float >(), and SWITCH_TYPE.
copies mapping A to B
[in] | order | number of dimensions |
[in] | mapping_A | mapping to copy from |
[in,out] | mapping_B | mapping to copy to |
Definition at line 190 of file mapping.cxx.
References CTF_int::mapping::clear(), and CTF_int::mapping::mapping().
Referenced by CTF_int::tensor::align(), copy_mapping(), CTF_int::tensor::copy_tensor_data(), desymmetrize(), CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), get_len_ordering(), CTF_int::summation::is_equal(), CTF_int::tensor::pull_alias(), and symmetrize().
int CTF_int::copy_mapping | ( | int | order_A, |
int | order_B, | ||
int const * | idx_A, | ||
mapping const * | mapping_A, | ||
int const * | idx_B, | ||
mapping * | mapping_B, | ||
int | make_virt = 1 |
||
) |
copies mapping A to B
[in] | order_A | number of dimensions in A |
[in] | order_B | number of dimensions in B |
[in] | idx_A | index mapping of A |
[in] | mapping_A | mapping to copy from |
[in] | idx_B | index mapping of B |
[in,out] | mapping_B | mapping to copy to |
[in] | make_virt | makes virtual |
Definition at line 210 of file mapping.cxx.
References ASSERT, cdealloc(), CTF_int::mapping::clear(), copy_mapping(), CTF_int::mapping::has_child, inv_idx(), CTF_int::mapping::np, SUCCESS, CTF_int::mapping::type, and VIRTUAL_MAP.
int CTF_int::ctr_2d_gen_build | ( | int | is_used, |
CommData | global_comm, | ||
int | i, | ||
int * | virt_dim, | ||
int & | cg_edge_len, | ||
int & | total_iter, | ||
tensor * | A, | ||
int | i_A, | ||
CommData *& | cg_cdt_A, | ||
int64_t & | cg_ctr_lda_A, | ||
int64_t & | cg_ctr_sub_lda_A, | ||
bool & | cg_move_A, | ||
int * | blk_len_A, | ||
int64_t & | blk_sz_A, | ||
int const * | virt_blk_len_A, | ||
int & | load_phase_A, | ||
tensor * | B, | ||
int | i_B, | ||
CommData *& | cg_cdt_B, | ||
int64_t & | cg_ctr_lda_B, | ||
int64_t & | cg_ctr_sub_lda_B, | ||
bool & | cg_move_B, | ||
int * | blk_len_B, | ||
int64_t & | blk_sz_B, | ||
int const * | virt_blk_len_B, | ||
int & | load_phase_B, | ||
tensor * | C, | ||
int | i_C, | ||
CommData *& | cg_cdt_C, | ||
int64_t & | cg_ctr_lda_C, | ||
int64_t & | cg_ctr_sub_lda_C, | ||
bool & | cg_move_C, | ||
int * | blk_len_C, | ||
int64_t & | blk_sz_C, | ||
int const * | virt_blk_len_C, | ||
int & | load_phase_C | ||
) |
sets up a ctr_2d_general (2D SUMMA) level where A is not communicated function will be called with A/B/C permuted depending on desired alg
[in] | is_used | whether this ctr will actually be run |
[in] | global_comm | comm for this CTF instance |
[in] | i | index in the total index map currently worked on |
[in,out] | virt_dim | virtual processor grid lengths |
[out] | cg_edge_len | edge lengths of ctr_2d_gen object to set |
[in,out] | total_iter | the total number of ctr_2d_gen iterations |
[in] | A | A tensor |
[in] | i_A | the index in A to which index i corresponds |
[out] | cg_cdt_A | the communicator for A to be set for ctr_2d_gen |
[out] | cg_ctr_lda_A | parameter of ctr_2d_gen corresponding to upper lda for lda_cpy |
[out] | cg_ctr_sub_lda_A | parameter of ctr_2d_gen corresponding to lower lda for lda_cpy |
[out] | cg_move_A | tells ctr_2d_gen whether A should be communicated |
[in,out] | blk_len_A | lengths of local A piece after this ctr_2d_gen level |
[in,out] | blk_sz_A | size of local A piece after this ctr_2d_gen level |
[in] | virt_blk_edge_len_A | edge lengths of virtual blocks of A |
[in] | load_phase_A | tells the offloader how often A buffer changes for ctr_2d_gen |
... the other parameters are specified the same as for _A but this time for _B and _C
Definition at line 12 of file ctr_2d_general.cxx.
References ASSERT, CTF_int::mapping::calc_phase(), CTF_int::mapping::cdt, CTF_int::mapping::child, comp_dim_map(), CTF_int::topology::dim_comm, CTF_int::tensor::edge_map, CTF_int::mapping::has_child, lcm(), MAX, CTF_int::mapping::np, CTF_int::tensor::order, PHYSICAL_MAP, CTF_int::tensor::topo, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by CTF_int::contraction::contraction(), and get_len_ordering().
void CTF_int::cvrt_idx | ( | int | order, |
int const * | lens, | ||
int64_t | idx, | ||
int * | idx_arr | ||
) |
Definition at line 533 of file common.cxx.
Referenced by CTF::Tensor< dtype >::slice(), and wr_pairs_layout().
void CTF_int::cvrt_idx | ( | int | order, |
int const * | lens, | ||
int64_t | idx, | ||
int ** | idx_arr | ||
) |
Definition at line 545 of file common.cxx.
References alloc(), and cvrt_idx().
void CTF_int::cvrt_idx | ( | int | order, |
int const * | lens, | ||
int const * | idx_arr, | ||
int64_t * | idx | ||
) |
Definition at line 553 of file common.cxx.
References MPI_CTF_DOUBLE_COMPLEX.
Referenced by cvrt_idx().
void CTF_int::cyclic_reshuffle | ( | int const * | sym, |
distribution const & | old_dist, | ||
int const * | old_offsets, | ||
int *const * | old_permutation, | ||
distribution const & | new_dist, | ||
int const * | new_offsets, | ||
int *const * | new_permutation, | ||
char ** | tsr_data, | ||
char ** | tsr_cyclic_data, | ||
algstrct const * | sr, | ||
CommData | ord_glb_comm, | ||
bool | reuse_buffers, | ||
char const * | alpha, | ||
char const * | beta | ||
) |
Goes from any set of phases to any new set of phases.
[in] | sym | symmetry relations between tensor dimensions |
[in] | old_dist | starting data distrubtion |
[in] | old_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | old_permutation | permutation array for each edge length (no perm if NULL) |
[in] | new_dist | target data distrubtion |
[in] | new_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | new_permutation | permutation array for each edge length (no perm if NULL) |
[in] | tsr_data | starting data buffer |
[out] | tsr_cyclic_data | target data buffer |
[in] | sr | algstrct defining data |
[in] | ord_glb_comm | communicator on which to redistribute |
[in] | reuse_buffers | if 1: ptr_tsr_cyclic_data is allocated dynamically and ptr_tsr_data is overwritten with intermediate data if 0: ptr_tsr_cyclic_data is preallocated and can be scaled by beta, however, more memory is used for temp buffers |
[in] | alpha | scaling tensor for new data |
[in] | beta | scaling tensor for original data |
Definition at line 477 of file cyclic_reshuffle.cxx.
References CTF_int::algstrct::acc(), CTF_int::algstrct::addid(), CTF_int::CommData::all_to_allv(), alloc_ptr(), ASSERT, calc_cnt_displs(), cdealloc(), compute_bucket_offsets(), CTF_int::algstrct::copy(), ctf.core::dim, CTF_int::accumulatable::el_size, CTF_int::distribution::is_cyclic, CTF_int::algstrct::isequal(), MAX, mst_alloc_ptr(), CTF_int::algstrct::mulid(), CTF_int::CommData::np, ctf.core::np(), CTF_int::distribution::order, pad_cyclic_pup_virt_buff(), CTF_int::distribution::pad_edge_len, CTF_int::distribution::padding, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::CommData::rank, CTF_int::algstrct::set(), CTF_int::distribution::size, sy_packed_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by CTF_int::tensor::add_from_subworld(), CTF_int::tensor::add_to_subworld(), and glb_cyclic_reshuffle().
void CTF_int::def_coo_to_csr | ( | int64_t | nz, |
int | nrow, | ||
dtype * | csr_vs, | ||
int * | csr_ja, | ||
int * | csr_ia, | ||
dtype const * | coo_vs, | ||
int const * | coo_rs, | ||
int const * | coo_cs | ||
) |
Definition at line 100 of file set.h.
Referenced by CTF::Set< dtype, is_ord >::coo_to_csr().
void CTF_int::def_csr_to_coo | ( | int64_t | nz, |
int | nrow, | ||
dtype const * | csr_vs, | ||
int const * | csr_ja, | ||
int const * | csr_ia, | ||
dtype * | coo_vs, | ||
int * | coo_rs, | ||
int * | coo_cs | ||
) |
Definition at line 105 of file set.h.
Referenced by CTF::Set< dtype, is_ord >::csr_to_coo().
|
inline |
Definition at line 116 of file set.h.
References ctf.core::a, ctf.core::b, and ctf.core::dtype.
|
inline |
Definition at line 123 of file set.h.
References ctf.core::a.
dtype CTF_int::default_add | ( | dtype | a, |
dtype | b | ||
) |
Definition at line 6 of file monoid.h.
References ctf.core::b.
dtype CTF_int::default_addinv | ( | dtype | a | ) |
Definition at line 110 of file set.h.
References ctf.core::a.
void CTF_int::default_axpy | ( | int | n, |
dtype | alpha, | ||
dtype const * | X, | ||
int | incX, | ||
dtype * | Y, | ||
int | incY | ||
) |
Definition at line 19 of file semiring.h.
References default_axpy< double >(), and default_axpy< float >().
void CTF_int::default_axpy< double > | ( | int | n, |
double | alpha, | ||
double const * | X, | ||
int | incX, | ||
double * | Y, | ||
int | incY | ||
) |
Definition at line 139 of file semiring.cxx.
References CTF_BLAS::DAXPY().
Referenced by default_axpy(), and default_axpy< float >().
void CTF_int::default_axpy< float > | ( | int | n, |
float | alpha, | ||
float const * | X, | ||
int | incX, | ||
float * | Y, | ||
int | incY | ||
) |
Definition at line 128 of file semiring.cxx.
References default_axpy< double >(), and CTF_BLAS::SAXPY().
Referenced by default_axpy().
void CTF_int::default_axpy< std::complex< double > > | ( | int | n, |
std::complex< double > | alpha, | ||
std::complex< double > const * | X, | ||
int | incX, | ||
std::complex< double > * | Y, | ||
int | incY | ||
) |
Definition at line 161 of file semiring.cxx.
References CTF_BLAS::ZAXPY().
void CTF_int::default_axpy< std::complex< float > > | ( | int | n, |
std::complex< float > | alpha, | ||
std::complex< float > const * | X, | ||
int | incX, | ||
std::complex< float > * | Y, | ||
int | incY | ||
) |
Definition at line 150 of file semiring.cxx.
References CTF_BLAS::CAXPY().
void CTF_int::default_coomm | ( | int | m, |
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
int const * | rows_A, | ||
int const * | cols_A, | ||
int | nnz_A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 299 of file semiring.h.
References default_coomm< double >(), and default_coomm< float >().
Referenced by default_gemm_batch< std::complex< double > >().
void CTF_int::default_coomm< double > | ( | int | m, |
int | n, | ||
int | k, | ||
double | alpha, | ||
double const * | A, | ||
int const * | rows_A, | ||
int const * | cols_A, | ||
int | nnz_A, | ||
double const * | B, | ||
double | beta, | ||
double * | C | ||
) |
Definition at line 233 of file semiring.cxx.
References DEF_COOMM_KERNEL, and CTF_BLAS::MKL_DCOOMM().
Referenced by default_coomm(), and default_coomm< float >().
void CTF_int::default_coomm< float > | ( | int | m, |
int | n, | ||
int | k, | ||
float | alpha, | ||
float const * | A, | ||
int const * | rows_A, | ||
int const * | cols_A, | ||
int | nnz_A, | ||
float const * | B, | ||
float | beta, | ||
float * | C | ||
) |
Definition at line 208 of file semiring.cxx.
References DEF_COOMM_KERNEL, default_coomm< double >(), and CTF_BLAS::MKL_SCOOMM().
Referenced by default_coomm().
void CTF_int::default_coomm< std::complex< double > > | ( | int | m, |
int | n, | ||
int | k, | ||
std::complex< double > | alpha, | ||
std::complex< double > const * | A, | ||
int const * | rows_A, | ||
int const * | cols_A, | ||
int | nnz_A, | ||
std::complex< double > const * | B, | ||
std::complex< double > | beta, | ||
std::complex< double > * | C | ||
) |
Definition at line 286 of file semiring.cxx.
References DEF_COOMM_KERNEL, CTF_BLAS::MKL_ZCOOMM(), and muladd_csrmm().
void CTF_int::default_coomm< std::complex< float > > | ( | int | m, |
int | n, | ||
int | k, | ||
std::complex< float > | alpha, | ||
std::complex< float > const * | A, | ||
int const * | rows_A, | ||
int const * | cols_A, | ||
int | nnz_A, | ||
std::complex< float > const * | B, | ||
std::complex< float > | beta, | ||
std::complex< float > * | C | ||
) |
Definition at line 261 of file semiring.cxx.
References DEF_COOMM_KERNEL, and CTF_BLAS::MKL_CCOOMM().
void CTF_int::default_fxpy | ( | int | n, |
dtype const * | X, | ||
dtype * | Y | ||
) |
void CTF_int::default_gemm | ( | char | tA, |
char | tB, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 71 of file semiring.h.
|
inline |
Definition at line 166 of file semiring.h.
Referenced by default_gemm< float >(), and CTF::Semiring< dtype, is_ord >::is_offloadable().
|
inline |
Definition at line 151 of file semiring.h.
References default_gemm< double >().
Referenced by get_grp_ptrs(), and CTF::Semiring< dtype, is_ord >::is_offloadable().
|
inline |
Definition at line 196 of file semiring.h.
References default_gemm_batch().
|
inline |
Definition at line 181 of file semiring.h.
void CTF_int::default_gemm_batch | ( | char | taA, |
char | taB, | ||
int | l, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 211 of file semiring.h.
References default_gemm_batch< float >().
Referenced by default_gemm< std::complex< double > >().
|
inline |
Definition at line 251 of file semiring.h.
Referenced by default_gemm_batch< float >().
|
inline |
Definition at line 235 of file semiring.h.
References default_gemm_batch< double >().
Referenced by default_gemm_batch().
|
inline |
Definition at line 283 of file semiring.h.
References default_coomm().
|
inline |
Definition at line 267 of file semiring.h.
|
inline |
Definition at line 182 of file set.h.
References ctf.core::a.
|
inline |
Definition at line 188 of file set.h.
References ctf.core::a.
|
inline |
|
inline |
Definition at line 158 of file set.h.
References ctf.core::a, and ctf.core::dtype.
|
inline |
Definition at line 138 of file set.h.
References ctf.core::a.
|
inline |
Definition at line 144 of file set.h.
References ctf.core::a.
|
inline |
|
inline |
Definition at line 173 of file set.h.
References ctf.core::a, and ctf.core::dtype.
dtype CTF_int::default_mul | ( | dtype | a, |
dtype | b | ||
) |
Definition at line 14 of file semiring.h.
References ctf.core::b.
void CTF_int::default_mxpy | ( | void * | X, |
void * | Y, | ||
int * | n, | ||
MPI_Datatype * | d | ||
) |
Definition at line 11 of file monoid.h.
References ctf.core::dtype.
Referenced by get_default_maddop().
void CTF_int::default_scal | ( | int | n, |
dtype | alpha, | ||
dtype * | X, | ||
int | incX | ||
) |
Definition at line 47 of file semiring.h.
References default_scal< double >(), and default_scal< float >().
void CTF_int::default_scal< double > | ( | int | n, |
double | alpha, | ||
double * | X, | ||
int | incX | ||
) |
Definition at line 176 of file semiring.cxx.
References CTF_BLAS::DSCAL().
Referenced by default_scal().
void CTF_int::default_scal< float > | ( | int | n, |
float | alpha, | ||
float * | X, | ||
int | incX | ||
) |
Definition at line 171 of file semiring.cxx.
References CTF_BLAS::SSCAL().
Referenced by default_scal().
void CTF_int::default_scal< std::complex< double > > | ( | int | n, |
std::complex< double > | alpha, | ||
std::complex< double > * | X, | ||
int | incX | ||
) |
Definition at line 188 of file semiring.cxx.
References CTF_BLAS::ZSCAL().
void CTF_int::default_scal< std::complex< float > > | ( | int | n, |
std::complex< float > | alpha, | ||
std::complex< float > * | X, | ||
int | incX | ||
) |
Definition at line 182 of file semiring.cxx.
References CTF_BLAS::CSCAL().
void CTF_int::depad_tsr | ( | int | order, |
int64_t | num_pair, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | padding, | ||
int const * | prepadding, | ||
char const * | pairsb, | ||
char * | new_pairsb, | ||
int64_t * | new_num_pair, | ||
algstrct const * | sr | ||
) |
retrieves the unpadded pairs
[in] | order | tensor dimension |
[in] | num_pair | number of pairs |
[in] | edge_len | tensor edge lengths |
[in] | sym | symmetry types of tensor |
[in] | padding | padding of tensor (included in edge_len) |
[in] | prepadding | padding at start of tensor (included in edge_len) |
[in] | pairsb | padded array of pairs |
[out] | new_pairsb | unpadded pairs |
[out] | new_num_pair | number of unpadded pairs |
[in] | sr | algstrct defines sizeo of each pair |
Definition at line 51 of file pad.cxx.
References alloc(), alloc_ptr(), AS, cdealloc(), CTF_int::ConstPairIterator::k(), SH, SY, TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write().
Referenced by read_loc_pairs(), CTF_int::tensor::slice(), and CTF_int::tensor::sparsify().
void CTF_int::depermute_keys | ( | int | order, |
int | num_pair, | ||
int const * | edge_len, | ||
int const * | new_edge_len, | ||
int *const * | permutation, | ||
char * | pairs, | ||
algstrct const * | sr | ||
) |
depermutes keys (apply P^T)
[in] | order | tensor dimension |
[in] | num_pair | number of pairs |
[in] | edge_len | old nonpadded tensor edge lengths |
[in] | new_edge_len | new nonpadded tensor edge lengths |
[in] | permutation | permutation to apply to keys of each pair |
[in,out] | pairs | the keys and values as pairs |
[in] | sr | algstrct defining data type of array |
Definition at line 99 of file sparse_rw.cxx.
References alloc(), ASSERT, cdealloc(), CTF_int::PairIterator::k(), MIN, CTF_int::algstrct::pair_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write_key().
Referenced by CTF_int::tensor::permute().
void CTF_int::depin | ( | algstrct const * | sr, |
int | order, | ||
int const * | lens, | ||
int const * | divisor, | ||
int | nvirt, | ||
int const * | virt_dim, | ||
int const * | phys_rank, | ||
char * | X, | ||
int64_t & | new_nnz_B, | ||
int64_t * | nnz_blk, | ||
char *& | new_B, | ||
bool | check_padding | ||
) |
depins keys of n pairs
Definition at line 883 of file algstrct.cxx.
References alloc(), alloc_ptr(), cdealloc(), CTF_int::PairIterator::k(), CTF_int::algstrct::pair_alloc(), CTF_int::algstrct::pair_size(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::spctr_pin_keys::run(), CTF_int::tspsum_pin_keys::run(), and CTF_int::algstrct::~algstrct().
unfolds the data of a tensor
[in] | sym_tsr | starting symmetric tensor (where data starts) |
[in] | nonsym_tsr | new tensor with a potentially unfolded symmetry |
[in] | is_C | whether the tensor is an output of the operation |
Definition at line 12 of file symmetrization.cxx.
References CTF_int::algstrct::addinv(), alloc(), CTF_int::algstrct::alloc(), alloc_ptr(), AS, CTF_int::tensor::calc_nvirt(), CTF_int::algstrct::cast_double(), cdealloc(), CTF_int::tensor::clear_mapping(), copy_mapping(), CTF_int::tensor::data, CTF_int::tensor::edge_map, CTF_int::accumulatable::el_size, CTF_int::scaling::execute(), CTF_int::summation::execute(), CTF_int::tensor::has_home, CTF_int::tensor::home_buffer, CTF_int::tensor::home_size, CTF_int::tensor::is_data_aliased, CTF_int::tensor::is_home, CTF_int::tensor::is_mapped, CTF_int::tensor::is_sparse, CTF_int::algstrct::mulid(), CTF_int::tensor::name, CTF_int::tensor::nnz_blk, NS, CTF_int::tensor::order, CTF_int::tensor::profile, CTF::World::rank, scal_diag(), CTF_int::tensor::set_new_nnz_glb(), CTF_int::tensor::set_padding(), CTF_int::tensor::set_zero(), SH, CTF_int::tensor::size, CTF_int::tensor::sr, CTF::Timer::start(), CTF::Timer::stop(), CTF_int::summation::sum_tensors(), SY, CTF_int::tensor::sym, TAU_FSTART, TAU_FSTOP, CTF_int::tensor::topo, VPRINTF, CTF_int::tensor::wrld, and CTF_int::tensor::zero_out_padding().
Referenced by CTF_int::summation::estimate_time(), and get_len_ordering().
std::vector<char> CTF_int::det_uniq_inds | ( | std::vector< Term * > const | operands, |
std::vector< char > const | out_inds | ||
) |
Definition at line 422 of file term.cxx.
Referenced by contract_down_terms(), CTF_int::Contract_Term::estimate_time(), CTF_int::Contract_Term::execute(), CTF_int::Sum_Term::get_uniq_inds(), and CTF_int::Contract_Term::get_uniq_inds().
double CTF_int::dgtog_est_time | ( | int64_t | tot_sz, |
int | np | ||
) |
estimates execution time, given this processor sends a receives tot_sz across np procs
[in] | tot_sz | amount of data sent/recved |
[in] | np | number of procs involved |
Definition at line 11 of file dgtog_redist.cxx.
References dgtog_res_mdl.
Referenced by CTF_int::tensor::est_redist_time().
void CTF_int::dgtog_reshuffle | ( | int const * | sym, |
int const * | edge_len, | ||
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
char ** | ptr_tsr_data, | ||
char ** | ptr_tsr_new_data, | ||
algstrct const * | sr, | ||
CommData | ord_glb_comm | ||
) |
Definition at line 74 of file dgtog_redist.cxx.
Referenced by dgtog_reshuffle().
void CTF_int::dnA_spB_seq_sum | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
char const * | beta, | ||
char const * | B, | ||
int64_t | size_B, | ||
char *& | new_B, | ||
int64_t & | new_size_B, | ||
algstrct const * | sr_B, | ||
univar_function const * | func | ||
) |
performs summation between two sparse tensors assumes B contain key value pairs sorted by key, with index permutation preapplied and with no repeated indices
[in] | alpha | scaling factor of A |
[in] | A | data of right operand |
[in] | sr_A | algebraic structure of right operand |
[in] | order_A | order of tensor A |
[in] | edge_len_A | dimensions of tensor A |
[in] | sym_A | symmetry relations of tensor A |
[in] | beta | scaling factor of left operand |
[in] | B | data of left operand |
[in] | size_B | number of nonzero entries in left operand |
[in,out] | new_B | new data of output |
[in,out] | new_size_B | number of nonzero entries in output |
[in] | sr_B | algebraic structure of left operand and output |
[in] | func | function (or NULL) to apply to right operand |
Definition at line 149 of file spr_seq_sum.cxx.
Referenced by CTF_int::seq_tsr_spsum::run().
void CTF_int::dump_all_models | ( | std::string | path | ) |
Definition at line 50 of file model.cxx.
References get_all_models().
Referenced by CTF_int::Model::dump_data(), and train_all().
double CTF_int::est_time_transp | ( | int | order, |
int const * | new_order, | ||
int const * | edge_len, | ||
int | dir, | ||
algstrct const * | sr | ||
) |
estimates time needed to transposes a non-symmetric (folded) tensor based on performance models
[in] | order | dimension of tensor |
[in] | new_order | new ordering of dimensions |
[in] | edge_len | original edge lengths |
[in] | dir | which way are we going? |
[in] | sr | algstrct defining element size |
Definition at line 757 of file nosym_transp.cxx.
References long_contig_transp_mdl, non_contig_transp_mdl, and shrt_contig_transp_mdl.
Referenced by CTF_int::tensor::est_time_unfold(), CTF_int::summation::estimate_time(), and get_len_ordering().
double CTF_int::estimate_download_time | ( | int64_t | size | ) |
estimate time it takes to upload
double CTF_int::estimate_upload_time | ( | int64_t | size | ) |
estimate time it takes to download
void CTF_int::extract_free_comms | ( | topology const * | topo, |
int | order_A, | ||
mapping const * | edge_map_A, | ||
int | order_B, | ||
mapping const * | edge_map_B, | ||
int & | num_sub_phys_dims, | ||
CommData ** | psub_phys_comm, | ||
int ** | pcomm_idx | ||
) |
extracts the set of physical dimensions still available for mapping
[in] | topo | topology |
[in] | order_A | dimension of A |
[in] | edge_map_A | mapping of A |
[in] | order_B | dimension of B |
[in] | edge_map_B | mapping of B |
[out] | num_sub_phys_dims | number of free torus dimensions |
[out] | psub_phys_comm | the torus dimensions |
[out] | pcomm_idx | index of the free torus dimensions in the origin topology |
Definition at line 628 of file topology.cxx.
References alloc_ptr(), CTF_int::mapping::cdt, CTF_int::mapping::child, CTF_int::topology::dim_comm, CTF_int::mapping::has_child, CTF_int::topology::order, PHYSICAL_MAP, and CTF_int::mapping::type.
Referenced by get_len_ordering().
int64_t CTF_int::fact | ( | int64_t | n | ) |
Definition at line 277 of file util.cxx.
Referenced by align_symmetric_indices(), chchoose(), choose(), coalesce_bwd(), and overcounting_factor().
void CTF_int::factorize | ( | int | n, |
int * | nfactor, | ||
int ** | factor | ||
) |
computes the size of a tensor in packed symmetric layout
[in] | n | a positive number |
[out] | nfactor | number of factors in n |
[out] | factor | array of length nfactor, corresponding to factorization of n |
Definition at line 170 of file util.cxx.
References alloc().
Referenced by fft(), get_generic_topovec(), and get_phys_topo().
searches for an equivalent topology in avector of topologies
[in] | topo | topology to match |
[in] | topovec | vector of existing parameters |
Definition at line 571 of file topology.cxx.
References CTF_int::topology::lens, and CTF_int::topology::order.
Referenced by peel_perm_torus(), peel_torus(), and CTF_int::tensor::set_distribution().
void CTF_int::flops_add | ( | int64_t | n | ) |
Definition at line 173 of file common.cxx.
int CTF_int::free_cond | ( | void * | ptr | ) |
|
inline |
void CTF_int::gemm | ( | char | tA, |
char | tB, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 82 of file semiring.cxx.
Referenced by CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >::cgemm(), CTF::Semiring< dtype, is_ord >::gemm_batch(), get_grp_ptrs(), CTF_int::algstrct::has_mul(), and sym_seq_ctr_inr().
void CTF_int::gemm_batch | ( | char | taA, |
char | taB, | ||
int | l, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 15 of file semiring.cxx.
References ctf.core::dtype, and get_grp_ptrs().
Referenced by get_grp_ptrs(), and CTF_int::algstrct::has_mul().
std::vector<Model*>& CTF_int::get_all_models | ( | ) |
Definition at line 10 of file model.cxx.
Referenced by dump_all_models(), CTF_int::LinModel< nparam >::LinModel(), load_all_models(), print_all_models(), update_all_models(), and write_all_models().
std::vector< topology* > CTF_int::get_all_topos | ( | CommData | cdt, |
int | n_uf, | ||
int const * | uniq_fact, | ||
int const * | mults, | ||
int | n_prepend, | ||
int const * | prelens | ||
) |
computes all unique factorizations into non-primes each yielding a topology, prepending additional factors as specified
[in] | cdt | global communicator |
[in] | n_uf | number of unique prime factors |
[in] | uniq_fact | list of prime factors |
[in] | n_prepend | number of factors to prepend |
[in] | mults | ? |
[in] | prelens | factors to prepend |
Definition at line 410 of file topology.cxx.
References ASSERT, and CTF_int::topology::topology().
Referenced by get_generic_topovec().
int CTF_int::get_best_topo | ( | int64_t | nvirt, |
int | topo, | ||
CommData | global_comm, | ||
int64_t | bcomm_vol = 0 , |
||
int64_t | bmemuse = 0 |
||
) |
get the best topologoes (least nvirt) over all procs
[in] | nvirt | best virtualization achieved by this proc |
[in] | topo | topology index corresponding to best virtualization |
[in] | global_comm | is the global communicator |
[in] | bcomm_vol | best comm volume computed |
[in] | bmemuse | best memory usage computed return virtualization factor |
Definition at line 591 of file topology.cxx.
References ASSERT, and CTF_int::CommData::cm.
Referenced by CTF_int::scaling::execute(), CTF_int::summation::is_equal(), and CTF_int::tensor::set_zero().
void CTF_int::get_choice | ( | int64_t | n, |
int64_t | k, | ||
int64_t | ch, | ||
int * | chs | ||
) |
Definition at line 289 of file util.cxx.
References calc_idx_arr(), NS, and SH.
Referenced by coalesce_bwd(), and get_len_ordering().
int64_t CTF_int::get_coo_size | ( | int64_t | nnz, |
int | val_size | ||
) |
Definition at line 7 of file coo.cxx.
Referenced by CTF_int::COO_Matrix::COO_Matrix(), CTF_int::COO_Matrix::size(), and CTF_int::tensor::spmatricize().
int64_t CTF_int::get_csr_size | ( | int64_t | nnz, |
int | nrow, | ||
int | val_size | ||
) |
computes the size of a serialized CSR matrix
[in] | nnz | number of nonzeros in matrix |
[in] | nrow | number of rows in matrix |
[in] | val_size | size of each matrix entry |
Definition at line 8 of file csr.cxx.
References ALIGN.
Referenced by CTF_int::CSR_Matrix::CSR_Matrix(), CTF_int::CSR_Matrix::partition(), CTF_int::CSR_Matrix::size(), and CTF_int::tensor::spmatricize().
constexpr bool CTF_int::get_default_is_ord | ( | ) |
MPI_Op CTF_int::get_default_maddop | ( | ) |
Definition at line 28 of file monoid.h.
References default_mxpy(), and ctf.core::dtype.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
MPI_Datatype CTF_int::get_default_mdtype | ( | bool & | is_custom | ) |
Definition at line 194 of file set.h.
References ctf.core::dtype, MPI_CTF_BOOL, MPI_CTF_DOUBLE_COMPLEX, and MPI_CTF_LONG_DOUBLE_COMPLEX.
|
inline |
Definition at line 207 of file set.h.
References MPI_CTF_BOOL.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 209 of file set.h.
References MPI_CTF_DOUBLE_COMPLEX.
|
inline |
|
inline |
Definition at line 211 of file set.h.
References MPI_CTF_LONG_DOUBLE_COMPLEX.
|
inline |
|
inline |
|
inline |
Definition at line 13 of file distribution.h.
Referenced by CTF_int::distribution::distribution(), CTF_int::tensor::orient_subworld(), and CTF_int::distribution::serialize().
algstrct const * CTF_int::get_double_ring | ( | ) |
Definition at line 10 of file ring.cxx.
References double_ring.
Referenced by CTF_int::Term::operator double().
algstrct const * CTF_int::get_float_ring | ( | ) |
Definition at line 6 of file ring.cxx.
References float_ring.
Referenced by CTF_int::Term::operator float().
int64_t CTF_int::get_flops | ( | ) |
Definition at line 177 of file common.cxx.
References total_flop_count.
Referenced by CTF::Flop_counter::count(), CTF::Flop_counter::Flop_counter(), and CTF::Flop_counter::zero().
const char* CTF_int::get_fmt | ( | ) |
return format string for templated type
Definition at line 6 of file graph_io_aux.cxx.
References IASSERT.
|
inline |
Definition at line 18 of file graph_io_aux.cxx.
|
inline |
Definition at line 13 of file graph_io_aux.cxx.
|
inline |
Definition at line 23 of file graph_io_aux.cxx.
|
inline |
Definition at line 28 of file graph_io_aux.cxx.
Idx_Tensor* CTF_int::get_full_intm | ( | Idx_Tensor & | A, |
Idx_Tensor & | B, | ||
std::vector< char > | out_inds, | ||
bool | create_dummy = false |
||
) |
Definition at line 121 of file term.cxx.
References alloc(), cdealloc(), CTF::Idx_Tensor::idx_map, CTF::Idx_Tensor::is_intm, CTF_int::tensor::is_sparse, CTF_int::tensor::lens, NS, CTF_int::tensor::order, CTF::Idx_Tensor::parent, CTF_int::tensor::sr, CTF_int::tensor::sym, and CTF_int::tensor::wrld.
Referenced by contract_down_terms(), CTF_int::Sum_Term::estimate_time(), and CTF_int::Sum_Term::execute().
computes all topology configurations given undelying physical topology information
[in] | cdt | global communicator |
Definition at line 449 of file topology.cxx.
References cdealloc(), DPRINTF, factorize(), get_all_topos(), CTF_int::CommData::np, CTF_int::CommData::rank, and CTF_int::topology::topology().
Referenced by CTF::World::~World().
|
inline |
Definition at line 9 of file dgtog_calc_cnt.cxx.
Referenced by calc_sy_pfx(), calc_sy_pfx< 1 >(), and precompute_offsets().
dtype** CTF_int::get_grp_ptrs | ( | int64_t | grp_sz, |
int64_t | ngrp, | ||
dtype const * | data | ||
) |
Definition at line 110 of file semiring.h.
References alloc(), default_gemm< float >(), ctf.core::dtype, gemm(), and gemm_batch().
Referenced by gemm_batch().
function that get the imaginary part from complex numbers
[in] | A | tensor, param[in] B tensor stores the imaginary part from tensor A |
Definition at line 60 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::dtype, and CTF_int::tensor::order.
template void CTF_int::get_imag< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::get_imag< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
algstrct const * CTF_int::get_int64_t_ring | ( | ) |
Definition at line 18 of file ring.cxx.
References int64_t_ring.
Referenced by CTF_int::Term::operator int64_t().
algstrct const * CTF_int::get_int_ring | ( | ) |
Definition at line 14 of file ring.cxx.
References int_ring.
Referenced by CTF_int::Term::operator int().
void CTF_int::get_len_ordering | ( | tensor const * | A, |
tensor const * | B, | ||
tensor const * | C, | ||
int const * | idx_A, | ||
int const * | idx_B, | ||
int const * | idx_C, | ||
int ** | new_ordering_A, | ||
int ** | new_ordering_B, | ||
int ** | new_ordering_C | ||
) |
find ordering of indices of tensor to reduce to DGEMM (A, B, and C may be permuted
[in] | A | tensor 1 |
[in] | B | tensor 2 |
[in] | C | tensor 3 |
[in] | idx_A | indices of tensor 1 |
[in] | idx_B | indices of tensor 2 |
[in] | idx_C | indices of tensor 3 |
[out] | new_ordering_A | the new ordering for indices of A |
[out] | new_ordering_B | the new ordering for indices of B |
[out] | new_ordering_C | the new ordering for indices of C |
Definition at line 451 of file contraction.cxx.
References CTF_int::contraction::A, ctf.core::a, ABORT, CTF_int::topology::activate(), CTF_int::algstrct::add(), CTF_int::algstrct::addid(), CTF_int::algstrct::addinv(), align_symmetric_indices(), alloc(), CTF_int::algstrct::alloc(), alloc_ptr(), CTF_int::contraction::alpha, ASSERT, CTF_int::mapping::aug_phys(), CTF_int::mapping::aug_virt(), CTF_int::contraction::B, CTF_int::contraction::beta, CTF_int::contraction::C, calc_dim(), calc_fold_lnmk(), CTF_int::tensor::calc_npe(), CTF_int::tensor::calc_nvirt(), CTF_int::mapping::calc_phase(), CTF_int::mapping::calc_phys_phase(), can_morph(), cdealloc(), CTF_int::mapping::cdt, CTF::World::cdt, CTF_int::ctr_2d_general::cdt_A, CTF_int::spctr_2d_general::cdt_A, CTF_int::ctr_2d_general::cdt_B, CTF_int::spctr_2d_general::cdt_B, CTF_int::ctr_2d_general::cdt_C, CTF_int::spctr_2d_general::cdt_C, check_self_mapping(), CTF_int::mapping::child, choose(), CTF_int::mapping::clear(), CTF_int::tensor::clear_mapping(), CTF_int::CommData::cm, CTF::World::comm, comp_dim_map(), contract_mst(), conv_idx< int >(), CTF_int::algstrct::copy(), copy_mapping(), ctr_2d_gen_build(), CTF_int::ctr_2d_general::ctr_lda_A, CTF_int::spctr_2d_general::ctr_lda_A, CTF_int::spctr_2d_general::ctr_lda_B, CTF_int::ctr_2d_general::ctr_lda_B, CTF_int::spctr_2d_general::ctr_lda_C, CTF_int::ctr_2d_general::ctr_lda_C, CTF_int::spctr_2d_general::ctr_sub_lda_A, CTF_int::ctr_2d_general::ctr_sub_lda_A, CTF_int::spctr_2d_general::ctr_sub_lda_B, CTF_int::ctr_2d_general::ctr_sub_lda_B, CTF_int::spctr_2d_general::ctr_sub_lda_C, CTF_int::ctr_2d_general::ctr_sub_lda_C, CTF_int::tensor::data, CTF_int::topology::deactivate(), CTF_int::algstrct::dealloc(), DEBUG_PRINTF, desymmetrize(), CTF_int::topology::dim_comm, CTF_int::spctr_2d_general::dns_vrt_sz_A, CTF_int::spctr_2d_general::dns_vrt_sz_B, CTF_int::spctr_2d_general::dns_vrt_sz_C, DPRINTF, ctf.core::dtype, CTF_int::ctr_2d_general::edge_len, CTF_int::spctr_2d_general::edge_len, CTF_int::tensor::edge_map, CTF_int::accumulatable::el_size, ERROR, CTF_int::tensor::est_redist_time(), CTF_int::ctr::est_time_rec(), est_time_transp(), CTF_int::scaling::execute(), CTF_int::summation::execute(), CTF_int::contraction::execute(), CTF_int::tensor::extract_diag(), extract_free_comms(), get_choice(), CTF_int::tensor::get_redist_mem(), get_sym_perms(), CTF_int::mapping::has_child, CTF_int::algstrct::has_coo_ker, CTF_int::tensor::has_home, CTF_int::tensor::has_zero_edge_len, CTF_int::tensor::home_buffer, CTF_int::tensor::home_size, CTF_int::contraction::idx_A, CTF_int::contraction::idx_B, CTF_int::contraction::idx_C, CTF_int::tensor::inner_ordering, inv_idx(), CTF_int::tensor::is_cyclic, CTF_int::tensor::is_data_aliased, CTF_int::tensor::is_home, CTF_int::tensor::is_mapped, CTF_int::algstrct::is_offloadable(), CTF_int::tensor::is_sparse, CTF_int::algstrct::isequal(), CTF_int::iparam::k, lcm(), CTF_int::topology::lens, CTF_int::tensor::lens, CTF_int::iparam::m, map_symtsr(), map_tensor(), CTF_int::tensor::map_tensor_rem(), MAX, CTF_int::ctr::mem_rec(), MIN, morph_topo(), CTF_int::ctr_2d_general::move_A, CTF_int::spctr_2d_general::move_A, CTF_int::ctr_2d_general::move_B, CTF_int::spctr_2d_general::move_B, CTF_int::ctr_2d_general::move_C, CTF_int::spctr_2d_general::move_C, mst_alloc(), CTF_int::algstrct::mulid(), CTF_int::iparam::n, CTF_int::tensor::name, NEGATIVE, CTF_int::tensor::nnz_blk, CTF_int::tensor::nnz_tot, nosym_transpose(), NOT_MAPPED, CTF_int::mapping::np, CTF::World::np, CTF_int::CommData::np, ctf.core::np(), NS, CTF_int::ctr::num_lyr, CTF_int::iparam::offload, CTF_int::topology::order, CTF_int::tensor::order, overcounting_factor(), CTF_int::tensor::pad_edge_len, CTF_int::algstrct::pair_size(), permute_target(), PHYSICAL_MAP, CTF_int::ctr::print(), CTF_int::tensor::print_map(), proc_bytes_available(), CTF_int::tensor::profile, CTF_int::tensor::pull_alias(), CTF::World::rank, CTF_int::CommData::rank, CTF_int::ctr_virt::rec_ctr, CTF_int::spctr_replicate::rec_ctr, CTF_int::ctr_2d_general::rec_ctr, CTF_int::spctr_2d_general::rec_ctr, CTF_int::spctr_virt::rec_ctr, CTF_int::spctr_pin_keys::rec_ctr, CTF_int::ctr_replicate::rec_ctr, CTF_int::tensor::rec_tsr, CTF_int::tensor::redistribute(), CTF_int::tensor::remove_fold(), CTF_int::ctr::run(), CTF_int::algstrct::safecopy(), CTF_int::tensor::scale_diagonals(), CTF_int::tensor::self_reduce(), CTF_int::tensor::set_new_nnz_glb(), CTF_int::tensor::set_padding(), CTF_int::tensor::set_sym(), CTF_int::tensor::set_zero(), sign(), CTF_int::tensor::size, CTF_int::tensor::sparsify(), CTF_int::tensor::sr, SUCCESS, SY, sy_packed_size(), CTF_int::tensor::sym, CTF_int::tensor::sym_table, symmetrize(), CTF_int::iparam::tA, TAU_FSTART, TAU_FSTOP, CTF_int::iparam::tB, CTF_int::iparam::tC, CTF_int::tensor::topo, CTF::World::topovec, CTF_int::mapping::type, CTF_int::tensor::unfold(), VIRTUAL_MAP, VPRINTF, CTF_int::tensor::wrld, and CTF_int::tensor::zero_out_padding().
|
inline |
Definition at line 16 of file dgtog_calc_cnt.cxx.
Referenced by calc_cnt(), calc_cnt< 0 >(), calc_sy_pfx(), calc_sy_pfx< 1 >(), and precompute_offsets().
MPI_Op CTF_int::get_maddop | ( | void(*)(int, dtype const *, dtype *) | fxpy | ) |
bool CTF_int::get_mpi_dt | ( | int64_t | count, |
int64_t | datum_size, | ||
MPI_Datatype & | dt | ||
) |
gives a datatype for arbitrary datum_size, errors if exceeding 32-bits
[in] | count | number of elements we want to communicate |
[in] | datum_size | element size |
[in] | dt | new datatype to pass to MPI routine |
Definition at line 587 of file common.cxx.
References ASSERT, and MPI_CTF_DOUBLE_COMPLEX.
Referenced by CTF_int::tspsum_replicate::run().
std::list<mem_loc>* CTF_int::get_mst | ( | ) |
Definition at line 163 of file memcontrol.cxx.
References mst.
int CTF_int::get_num_instances | ( | ) |
Definition at line 531 of file memcontrol.cxx.
References instance_counter.
Referenced by CTF::World::~World().
void CTF_int::get_perm | ( | int | perm_order, |
ptype | A, | ||
ptype | B, | ||
ptype | C, | ||
ptype & | tA, | ||
ptype & | tB, | ||
ptype & | tC | ||
) |
Definition at line 117 of file contraction.cxx.
get dimension and torus lengths of specified topology
[in] | glb_comm | communicator |
[in] | mach | specified topology |
Definition at line 94 of file topology.cxx.
References alloc(), cdealloc(), ctf.core::dim, factorize(), MIN, NO_TOPOLOGY, CTF_int::CommData::np, ctf.core::np(), CTF_int::topology::order, CTF_int::topology::topology(), TOPOLOGY_8D, TOPOLOGY_BGP, TOPOLOGY_BGQ, and TOPOLOGY_GENERIC.
Referenced by CTF::World::~World().
double CTF_int::get_rand48 | ( | ) |
returns new random number in [0,1)
Definition at line 27 of file common.cxx.
References allred_mdl, allred_mdl_cst, allred_mdl_cst_init, allred_mdl_init, alltoall_mdl, alltoall_mdl_init, alltoallv_mdl, alltoallv_mdl_init, bcast_mdl, bcast_mdl_init, red_mdl, red_mdl_cst, red_mdl_cst_init, red_mdl_init, and rng.
Referenced by CTF::fill_random_base(), CTF::fill_sp_random_base(), and subsample().
function that get the real part from complex numbers
[in] | A | tensor, param[in] B tensor stores the real part from tensor A |
Definition at line 51 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::dtype, and CTF_int::tensor::order.
template void CTF_int::get_real< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::get_real< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
void CTF_int::get_sym_perms | ( | summation const & | sum, |
std::vector< summation > & | perms, | ||
std::vector< int > & | signs | ||
) |
finds all permutations of a summation that must be done for a broken symmetry
[in] | sum | summation specification |
[out] | perms | the permuted summation specifications |
[out] | signs | sign of each summation |
Definition at line 647 of file symmetrization.cxx.
References CTF_int::summation::A, add_sym_perm(), AS, CTF_int::summation::B, CTF_int::summation::idx_A, CTF_int::summation::idx_B, NS, CTF_int::tensor::order, sign(), and CTF_int::tensor::sym.
Referenced by CTF_int::summation::estimate_time(), and get_len_ordering().
void CTF_int::get_sym_perms | ( | contraction const & | ctr, |
std::vector< contraction > & | perms, | ||
std::vector< int > & | signs | ||
) |
finds all permutations of a contraction that must be done for a broken symmetry
[in] | ctr | contraction specification |
[out] | perms | the permuted contraction specifications |
[out] | signs | sign of each contraction |
Definition at line 691 of file symmetrization.cxx.
References CTF_int::contraction::A, add_sym_perm(), AS, CTF_int::contraction::B, CTF_int::contraction::C, CTF_int::contraction::idx_A, CTF_int::contraction::idx_B, CTF_int::contraction::idx_C, NS, CTF_int::tensor::order, sign(), and CTF_int::tensor::sym.
char * CTF_int::glb_cyclic_reshuffle | ( | int const * | sym, |
distribution const & | old_dist, | ||
int const * | old_offsets, | ||
int *const * | old_permutation, | ||
distribution const & | new_dist, | ||
int const * | new_offsets, | ||
int *const * | new_permutation, | ||
char ** | ptr_tsr_data, | ||
char ** | ptr_tsr_cyclic_data, | ||
algstrct const * | sr, | ||
CommData | ord_glb_comm, | ||
bool | reuse_buffers, | ||
char const * | alpha, | ||
char const * | beta | ||
) |
Goes from any set of phases to any new set of phases.
[in] | sym | symmetry relations between tensor dimensions |
[in] | old_dist | starting data distrubtion |
[in] | old_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | old_permutation | permutation array for each edge length (no perm if NULL) |
[in] | new_dist | target data distrubtion |
[in] | new_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | new_permutation | permutation array for each edge length (no perm if NULL) |
[in] | ptr_tsr_data | starting data buffer |
[out] | ptr_tsr_cyclic_data | target data buffer |
[in] | sr | algstrct defining data |
[in] | ord_glb_comm | communicator on which to redistribute |
[in] | reuse_buffers | if 1: ptr_tsr_cyclic_data is allocated dynamically and ptr_tsr_data is overwritten with intermediate data if 0: ptr_tsr_cyclic_data is preallocated and can be scaled by beta, however, more memory is used for temp buffers |
[in] | alpha | scaling tensor for new data |
[in] | beta | scaling tensor for original data |
Definition at line 879 of file glb_cyclic_reshuffle.cxx.
References CTF_int::algstrct::acc(), CTF_int::algstrct::addid(), alloc_ptr(), ASSERT, calc_cnt_displs(), cdealloc(), compute_bucket_offsets(), CTF_int::algstrct::copy(), cyclic_reshuffle(), ctf.core::dim, CTF_int::accumulatable::el_size, glb_ord_pup(), CTF_int::distribution::is_cyclic, CTF_int::algstrct::isequal(), MAX, mst_alloc_ptr(), CTF_int::algstrct::mulid(), CTF_int::CommData::np, ctf.core::np(), CTF_int::distribution::order, order_globally(), CTF_int::distribution::pad_edge_len, CTF_int::distribution::padding, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, CTF_int::CommData::rank, CTF_int::distribution::size, sy_packed_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
void CTF_int::glb_ord_pup | ( | int const * | sym, |
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
int const * | len, | ||
int const * | old_phys_dim, | ||
int const * | old_phys_edge_len, | ||
int const * | old_virt_edge_len, | ||
int64_t | old_virt_nelem, | ||
int const * | old_offsets, | ||
int *const * | old_permutation, | ||
int | total_np, | ||
int const * | new_phys_dim, | ||
int const * | new_phys_edge_len, | ||
int const * | new_virt_edge_len, | ||
int64_t | new_virt_nelem, | ||
char * | old_data, | ||
char ** | new_data, | ||
int | forward, | ||
int *const * | bucket_offset, | ||
char const * | alpha, | ||
char const * | beta, | ||
algstrct const * | sr | ||
) |
Definition at line 8 of file glb_cyclic_reshuffle.cxx.
References ABORT, CTF_int::algstrct::acc(), CTF_int::algstrct::addid(), alloc_ptr(), ASSERT, calc_idx_arr(), cdealloc(), CTF_int::algstrct::copy(), ctf.core::dim, CTF_int::accumulatable::el_size, CTF_int::algstrct::isequal(), lcm(), MAX, MIN, mst_alloc_ptr(), CTF_int::algstrct::mulid(), NS, CTF_int::distribution::order, packed_size(), CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, ctf.core::rank(), SY, sy_packed_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by glb_cyclic_reshuffle().
void CTF_int::handler | ( | ) |
Definition at line 181 of file common.cxx.
References ctf.core::array(), and ctf.core::rank().
void CTF_int::host_pinned_alloc | ( | void ** | ptr, |
int64_t | size | ||
) |
allocate a pinned host buffer
[out] | ptr | pointer to define |
[in] | size | amount of buffer space to allocate |
Referenced by CTF_int::ctr_2d_general::run(), and CTF_int::spctr_2d_general::run().
void CTF_int::host_pinned_free | ( | void * | ptr | ) |
free a pinned host buffer
[in] | ptr | pointer to free |
Referenced by CTF_int::ctr_2d_general::run(), and CTF_int::spctr_2d_general::run().
bool CTF_int::hptt_is_applicable | ( | int | order, |
int const * | new_order, | ||
int | elementSize | ||
) |
Checks if the HPTT library is applicable.
[in] | order | dimension of tensor |
[in] | new_order | new ordering of dimensions |
[in] | elementSize | element size |
Definition at line 319 of file nosym_transp.cxx.
Referenced by nosym_transpose().
void CTF_int::inc_tot_mem_used | ( | int64_t | a | ) |
Definition at line 80 of file memcontrol.cxx.
References ctf.core::a, and ASSERT.
Referenced by CTF_int::tensor::deregister_size(), and CTF_int::tensor::register_size().
void CTF_int::init_rng | ( | int | rank | ) |
initialized random number generator
[in] | rank | processor index |
Definition at line 23 of file common.cxx.
References rng.
Referenced by ctf.random::all_seed(), ctf.random::seed(), and CTF::World::~World().
void CTF_int::inv_idx | ( | int | order_A, |
int const * | idx_A, | ||
int * | order_tot, | ||
int ** | idx_arr | ||
) |
invert index map
[in] | order_A | number of dimensions of A |
[in] | idx_A | index map of A |
[in] | order_B | number of dimensions of B |
[in] | idx_B | index map of B |
[out] | order_tot | number of total dimensions |
[out] | idx_arr | 2*order_tot index array |
[in] | order_A | number of dimensions of A |
[in] | idx_A | index map of A |
[out] | order_tot | number of total dimensions |
[out] | idx_arr | 2*ndim_tot index array |
Definition at line 19 of file sym_seq_scl.cxx.
References alloc().
void CTF_int::inv_idx | ( | int | order_A, |
int const * | idx_A, | ||
int | order_B, | ||
int const * | idx_B, | ||
int | order_C, | ||
int const * | idx_C, | ||
int * | order_tot, | ||
int ** | idx_arr | ||
) |
invert index map
[in] | order_A | number of dimensions of A |
[in] | idx_A | index map of A |
[in] | order_B | number of dimensions of B |
[in] | idx_B | index map of B |
[in] | order_C | number of dimensions of C |
[in] | idx_C | index map of C |
[out] | order_tot | number of total dimensions |
[out] | idx_arr | 3*order_tot index array |
Definition at line 592 of file ctr_tsr.cxx.
References alloc(), CTF_int::seq_tsr_ctr::order_A, CTF_int::seq_tsr_ctr::order_B, and CTF_int::seq_tsr_ctr::order_C.
Referenced by add_sym_perm(), calc_fold_lnmk(), copy_mapping(), CTF_int::seq_tsr_spctr::est_fp(), CTF_int::seq_tsr_ctr::est_fp(), CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), get_len_ordering(), CTF_int::summation::is_equal(), CTF_int::seq_tsr_scl::seq_tsr_scl(), spA_dnB_dnC_seq_ctr(), CTF_int::summation::sum_tensors(), sym_seq_ctr_cust(), sym_seq_ctr_inr(), sym_seq_ctr_ref(), sym_seq_scl_cust(), sym_seq_scl_ref(), sym_seq_sum_cust(), sym_seq_sum_inr(), sym_seq_sum_ref(), CTF_int::endomorphism::~endomorphism(), CTF_int::seq_tsr_ctr::~seq_tsr_ctr(), and CTF_int::seq_tsr_sum::~seq_tsr_sum().
void CTF_int::inv_idx | ( | int | order_A, |
int const * | idx_A, | ||
int | order_B, | ||
int const * | idx_B, | ||
int * | order_tot, | ||
int ** | idx_arr | ||
) |
invert index map
[in] | order_A | number of dimensions of A |
[in] | idx_A | index map of A |
[in] | order_B | number of dimensions of B |
[in] | idx_B | index map of B |
[out] | order_tot | number of total dimensions |
[out] | idx_arr | 2*order_tot index array |
Definition at line 913 of file spsum_tsr.cxx.
References alloc().
|
inline |
Definition at line 340 of file util.h.
References gcd().
Referenced by calc_drv_displs(), ctr_2d_gen_build(), dgtog_reshuffle(), get_len_ordering(), glb_ord_pup(), map_symtsr(), map_tensor(), and CTF_int::tensor::set_zero().
|
inline |
Copies submatrix to submatrix (column-major)
[in] | el_size | element size |
[in] | nrow | number of rows |
[in] | ncol | number of columns |
[in] | lda_A | lda along rows for A |
[in] | lda_B | lda along rows for B |
[in] | A | matrix to read from |
[in,out] | B | matrix to write to |
Definition at line 355 of file util.h.
Referenced by CTF_int::LinModel< nparam >::update().
void CTF_int::load_all_models | ( | std::string | file_name | ) |
Definition at line 34 of file model.cxx.
References get_all_models().
Referenced by CTF_int::Model::dump_data(), and CTF::World::~World().
int CTF_int::map_self_indices | ( | tensor const * | tsr, |
int const * | idx_map | ||
) |
create virtual mapping for idx_maps that have repeating indices
[in] | tsr | tensor handle |
[in] | idx_map | mapping of tensor indices to contraction map |
Definition at line 423 of file mapping.cxx.
References alloc_ptr(), cdealloc(), CTF_int::tensor::edge_map, CTF_int::mapping::has_child, map_symtsr(), NOT_MAPPED, CTF_int::mapping::np, CTF_int::tensor::order, SUCCESS, CTF_int::tensor::sym_table, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by CTF_int::scaling::execute(), and CTF_int::summation::is_equal().
int CTF_int::map_symtsr | ( | int | tsr_order, |
int const * | tsr_sym_table, | ||
mapping * | tsr_edge_map | ||
) |
adjust a mapping to maintan symmetry
[in] | tsr_order | is the number of dimensions of the tensor |
[in] | tsr_sym_table | the symmetry table of a tensor |
[in,out] | tsr_edge_map | is the mapping |
Definition at line 470 of file mapping.cxx.
References ASSERT, CTF_int::mapping::calc_phase(), CTF_int::mapping::child, CTF_int::mapping::has_child, lcm(), CTF_int::mapping::mapping(), MAX_PHASE, MAXLOOP, NEGATIVE, NOT_MAPPED, CTF_int::mapping::np, PHYSICAL_MAP, SUCCESS, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by get_len_ordering(), map_self_indices(), and map_tensor().
int CTF_int::map_tensor | ( | int | num_phys_dims, |
int | tsr_order, | ||
int const * | tsr_edge_len, | ||
int const * | tsr_sym_table, | ||
int * | restricted, | ||
CommData * | phys_comm, | ||
int const * | comm_idx, | ||
int | fill, | ||
mapping * | tsr_edge_map | ||
) |
map a tensor
[in] | num_phys_dims | number of physical processor grid dimensions |
[in] | tsr_order | number dims |
[in] | tsr_edge_len | edge lengths of the tensor |
[in] | tsr_sym_table | the symmetry table of a tensor |
[in,out] | restricted | an array used to restricted the mapping of tensor dims |
[in] | phys_comm | dimensional communicators |
[in] | comm_idx | dimensional ordering |
[in] | fill | if set does recursive mappings and uses all phys dims |
[in,out] | tsr_edge_map | mapping of tensor |
Definition at line 244 of file mapping.cxx.
References CTF_int::mapping::calc_phys_phase(), CTF_int::mapping::cdt, CTF_int::mapping::child, CTF_int::mapping::has_child, lcm(), map_symtsr(), CTF_int::mapping::mapping(), MAX_PHASE, NEGATIVE, NOT_MAPPED, CTF_int::mapping::np, CTF_int::CommData::np, PHYSICAL_MAP, SUCCESS, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by get_len_ordering(), CTF_int::summation::is_equal(), CTF_int::tensor::map_tensor_rem(), and CTF_int::tensor::set_zero().
Definition at line 109 of file ctf_ext.cxx.
References CTF_int::accumulatable::el_size, CTF::Matrix< dtype >::qr(), and CTF_int::tensor::sr.
Referenced by ctf.core::MPI_Stop(), and ctf.core::qr().
Definition at line 141 of file ctf_ext.cxx.
References CTF_int::accumulatable::el_size, CTF::Matrix< dtype >::qr(), and CTF_int::tensor::sr.
Referenced by ctf.core::MPI_Stop(), and ctf.core::qr().
Definition at line 175 of file ctf_ext.cxx.
References CTF_int::accumulatable::el_size, CTF_int::tensor::sr, and CTF::Matrix< dtype >::svd().
Referenced by ctf.core::MPI_Stop(), and ctf.core::svd().
Definition at line 213 of file ctf_ext.cxx.
References CTF_int::accumulatable::el_size, CTF_int::tensor::sr, and CTF::Matrix< dtype >::svd().
Referenced by ctf.core::MPI_Stop(), and ctf.core::svd().
void CTF_int::mem_create | ( | ) |
create instance of memory manager
Definition at line 187 of file memcontrol.cxx.
References max_threads.
Referenced by CTF::World::~World().
void CTF_int::mem_exit | ( | int | rank | ) |
exit instance of memory manager
[in] | rank | processor index |
Definition at line 207 of file memcontrol.cxx.
References max_threads, and mst_buffer_ptr.
Referenced by CTF::World::~World().
void CTF_int::morph_topo | ( | topology const * | new_topo, |
topology const * | old_topo, | ||
int | order, | ||
mapping * | edge_map | ||
) |
morphs a tensor topology into another
[in] | new_topo | topology to change to |
[in] | old_topo | topology we are changing from |
[in] | order | number of tensor dimensions |
[in,out] | edge_map | mapping whose topology mapping we are changing |
Definition at line 700 of file topology.cxx.
References alloc_ptr(), ASSERT, cdealloc(), CTF_int::mapping::cdt, CTF_int::mapping::child, CTF_int::mapping::clear(), CTF_int::topology::dim_comm, CTF_int::mapping::has_child, CTF_int::topology::lda, CTF_int::mapping::np, CTF_int::CommData::np, ctf.core::np(), CTF_int::topology::order, PHYSICAL_MAP, CTF_int::mapping::type, and VIRTUAL_MAP.
Referenced by get_len_ordering().
void * CTF_int::mst_alloc | ( | int64_t const | len | ) |
mst_alloc allocates buffer on the specialized memory stack
[in] | len | number of bytes |
Definition at line 307 of file memcontrol.cxx.
References ASSERT, mst_alloc_ptr(), and SUCCESS.
Referenced by contract_mst(), and get_len_ordering().
int CTF_int::mst_alloc_ptr | ( | int64_t const | len, |
void **const | ptr | ||
) |
mst_alloc abstraction
[in] | len | number of bytes |
[in,out] | ptr | pointer to set to new allocation address |
Definition at line 269 of file memcontrol.cxx.
References ALIGN_BYTES, alloc_ptr(), ASSERT, DPRINTF, CTF_int::mem_loc::len, MST_ALIGN_BYTES, mst_buffer_ptr, mst_buffer_used, CTF_int::mem_loc::ptr, and SUCCESS.
Referenced by CTF_int::CommData::all_to_allv(), bcast_step(), calc_cnt_displs(), cyclic_reshuffle(), glb_cyclic_reshuffle(), glb_ord_pup(), mst_alloc(), pad_cyclic_pup_virt_buff(), CTF_int::ctr_2d_general::run(), CTF_int::spctr_2d_general::run(), and CTF_int::spctr_pin_keys::run().
void CTF_int::mst_create | ( | int64_t | size | ) |
initializes stack buffer
Definition at line 170 of file memcontrol.cxx.
References ALIGN_BYTES, and ASSERT.
Referenced by CTF::World::~World().
int CTF_int::mst_free | ( | void * | ptr | ) |
frees buffer allocated on stack
[in] | ptr | pointer to buffer on stack |
Definition at line 234 of file memcontrol.cxx.
References ABORT, ASSERT, ERROR, ctf.core::it, and SUCCESS.
Referenced by cdealloc().
void CTF_int::muladd_csrmm | ( | int | m, |
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | A, | ||
int const * | JA, | ||
int const * | IA, | ||
int | nnz_A, | ||
dtype const * | B, | ||
dtype | beta, | ||
dtype * | C | ||
) |
Definition at line 332 of file semiring.cxx.
References ctf.core::dtype, and muladd_csrmultd().
Referenced by default_coomm< std::complex< double > >().
void CTF_int::muladd_csrmultd | ( | int | m, |
int | n, | ||
int | k, | ||
dtype const * | A, | ||
int const * | JA, | ||
int const * | IA, | ||
int | nnz_A, | ||
dtype const * | B, | ||
int const * | JB, | ||
int const * | IB, | ||
int | nnz_B, | ||
dtype * | C | ||
) |
Definition at line 370 of file semiring.cxx.
References CTF::Semiring< dtype, is_ord >::default_csrmm().
Referenced by muladd_csrmm().
void CTF_int::nosym_transpose | ( | tensor * | A, |
int | all_fdim_A, | ||
int const * | all_flen_A, | ||
int const * | new_order, | ||
int | dir | ||
) |
Definition at line 403 of file nosym_transp.cxx.
References CTF_int::algstrct::alloc(), CTF_int::tensor::calc_nvirt(), CTF_int::tensor::data, CTF_int::algstrct::dealloc(), CTF_int::accumulatable::el_size, CTF_int::tensor::has_home, CTF_int::tensor::home_buffer, hptt_is_applicable(), CTF_int::tensor::is_home, CTF_int::tensor::left_home_transp, long_contig_transp_mdl, non_contig_transp_mdl, nosym_transpose_hptt(), shrt_contig_transp_mdl, CTF_int::tensor::size, CTF_int::tensor::sr, TAU_FSTART, and TAU_FSTOP.
Referenced by bench_nosym_transp(), CTF_int::summation::estimate_time(), get_len_ordering(), nosym_transpose(), and CTF_int::tensor::unfold().
void CTF_int::nosym_transpose | ( | int | order, |
int const * | new_order, | ||
int const * | edge_len, | ||
char * | data, | ||
int | dir, | ||
algstrct const * | sr | ||
) |
transposes a non-symmetric (folded) tensor
[in] | order | dimension of tensor |
[in] | new_order | new ordering of dimensions |
[in] | edge_len | original edge lengths |
[in,out] | data | data tp transpose |
[in] | dir | which way are we going? |
[in] | sr | algstrct defining element size |
Definition at line 519 of file nosym_transp.cxx.
References alloc_ptr(), cdealloc(), CTF_int::accumulatable::el_size, MIN, nosym_transpose(), and TAU_FSTOP.
void CTF_int::nosym_transpose | ( | int | order, |
int const * | new_order, | ||
int const * | edge_len, | ||
char const * | data, | ||
int | dir, | ||
int | max_ntd, | ||
char ** | tswap_data, | ||
int64_t * | chunk_size, | ||
algstrct const * | sr | ||
) |
transposes a non-symmetric (folded) tensor internal kernel
[in] | order | dimension of tensor |
[in] | new_order | new ordering of dimensions |
[in] | edge_len | original edge lengths |
[in] | data | data tp transpose |
[in] | dir | which way are we going? |
[in] | max_ntd | how many threads to use |
[out] | tswap_data | tranposed data |
[out] | chunk_size | chunk sizes of tranposed data |
[in] | sr | algstrct defining element size |
Definition at line 586 of file nosym_transp.cxx.
References alloc_ptr(), ASSERT, cdealloc(), CTF_int::algstrct::copy(), CTF_int::accumulatable::el_size, TAU_FSTART, and TAU_FSTOP.
void CTF_int::nosym_transpose_hptt | ( | int | order, |
int const * | edge_len, | ||
int | dir, | ||
tensor *& | A | ||
) |
High-performance implementation of nosym_transpose using HPTT.
[in] | order | dimension of tensor |
[in] | edge_len | original edge lengths |
[in] | dir | which way are we going? |
[in,out] | A | tensor to be transposed |
void CTF_int::nosym_transpose_hptt | ( | int | order, |
int const * | st_new_order, | ||
int const * | st_edge_len, | ||
int | dir, | ||
char const * | st_buffer, | ||
char * | new_buffer, | ||
algstrct const * | sr | ||
) |
Definition at line 332 of file nosym_transp.cxx.
References ABORT, CTF_int::accumulatable::el_size, and MIN.
Referenced by nosym_transpose().
void CTF_int::offload_exit | ( | ) |
exit offloading, e.g. destroy cublas
Referenced by CTF::World::~World().
void CTF_int::offload_gemm | ( | char | tA, |
char | tB, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
offload_tsr & | A, | ||
int | lda_A, | ||
offload_tsr & | B, | ||
int | lda_B, | ||
dtype | beta, | ||
offload_tsr & | C, | ||
int | lda_C | ||
) |
void CTF_int::offload_gemm | ( | char | tA, |
char | tB, | ||
int | m, | ||
int | n, | ||
int | k, | ||
dtype | alpha, | ||
dtype const * | dev_A, | ||
int | lda_A, | ||
dtype const * | dev_B, | ||
int | lda_B, | ||
dtype | beta, | ||
dtype * | dev_C, | ||
int | lda_C | ||
) |
void CTF_int::offload_init | ( | ) |
initialize offloading, e.g. create cublas
Referenced by CTF::World::~World().
void CTF_int::ord_glb | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr, | ||
int | prev_idx = 0 , |
||
int64_t | glb_ord_offset = 0 , |
||
int64_t | blk_ord_offset = 0 |
||
) |
Definition at line 533 of file glb_cyclic_reshuffle.cxx.
References NS, and CTF_int::distribution::virt_phase.
Referenced by ord_glb_omp().
|
inline |
Definition at line 566 of file glb_cyclic_reshuffle.cxx.
References NS, and ord_glb< 7 >().
Referenced by ord_glb_omp< 0 >(), and order_globally().
template void CTF_int::ord_glb< 7 > | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr, | ||
int | prev_idx, | ||
int64_t | glb_ord_offset, | ||
int64_t | blk_ord_offset | ||
) |
Referenced by ord_glb< 0 >().
void CTF_int::ord_glb_omp | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr, | ||
int const * | idx_st, | ||
int const * | idx_end, | ||
int | prev_idx = 0 , |
||
int64_t | glb_ord_offset = 0 , |
||
int64_t | blk_ord_offset = 0 |
||
) |
Definition at line 606 of file glb_cyclic_reshuffle.cxx.
References MIN, NS, ord_glb(), and CTF_int::distribution::virt_phase.
void CTF_int::ord_glb_omp< 0 > | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr, | ||
int const * | idx_st, | ||
int const * | idx_end, | ||
int | prev_idx, | ||
int64_t | glb_ord_offset, | ||
int64_t | blk_ord_offset | ||
) |
Definition at line 655 of file glb_cyclic_reshuffle.cxx.
References ord_glb< 0 >(), and ord_glb_omp< 7 >().
template void CTF_int::ord_glb_omp< 7 > | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr, | ||
int const * | idx_st, | ||
int const * | idx_end, | ||
int | prev_idx, | ||
int64_t | glb_ord_offset, | ||
int64_t | blk_ord_offset | ||
) |
Referenced by ord_glb_omp< 0 >().
void CTF_int::order_globally | ( | int const * | sym, |
distribution const & | dist, | ||
int const * | virt_edge_len, | ||
int const * | virt_phase_lda, | ||
int64_t | vbs, | ||
bool | dir, | ||
char const * | tsr_data_in, | ||
char * | tsr_data_out, | ||
algstrct const * | sr | ||
) |
reorder local buffer so that elements are in ordered according to where they are in the global tensor (interleave virtual blocks)
[in] | sym | symmetry relations between tensor dimensions |
[in] | dist | distribution of data |
[in] | virt_edge_len | dimensions of each block |
[in] | virt_phase_lda | prefix sum of virtual blocks |
[in] | vbs | size of virtual blocks |
[in] | dir | if 1 then go to global layout, if 0 than from |
[in] | tsr_data_in | starting data buffer |
[out] | tsr_data_out | target data buffer |
[in] | sr | algstrct defining data |
Definition at line 689 of file glb_cyclic_reshuffle.cxx.
References alloc(), ASSERT, CASE_ORD_GLB, cdealloc(), CTF_int::algstrct::copy(), ctf.core::dim, CTF_int::accumulatable::el_size, MIN, NS, ord_glb< 0 >(), CTF_int::distribution::order, sy_calc_idx_arr(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by glb_cyclic_reshuffle().
void CTF_int::order_perm | ( | tensor const * | A, |
tensor const * | B, | ||
int * | idx_arr, | ||
int | off_A, | ||
int | off_B, | ||
int * | idx_A, | ||
int * | idx_B, | ||
int & | add_sign, | ||
int & | mod | ||
) |
orders the summation indices of one tensor that don't break summation symmetries
[in] | A | |
[in] | B | |
[in] | idx_arr | inverted summation index map |
[in] | off_A | offset of A in inverted index map |
[in] | off_B | offset of B in inverted index map |
[in] | idx_A | index map of A |
[in] | idx_B | index map of B |
[in,out] | add_sign | sign of contraction |
[in,out] | mod | 1 if sum is permuted |
Definition at line 440 of file symmetrization.cxx.
References AS, ASSERT, MAX, MIN, NS, CTF_int::tensor::order, and CTF_int::tensor::sym.
void CTF_int::order_perm | ( | tensor const * | A, |
tensor const * | B, | ||
tensor const * | C, | ||
int * | idx_arr, | ||
int | off_A, | ||
int | off_B, | ||
int | off_C, | ||
int * | idx_A, | ||
int * | idx_B, | ||
int * | idx_C, | ||
int & | add_sign, | ||
int & | mod | ||
) |
orders the contraction indices of one tensor that don't break contraction symmetries
[in] | A | |
[in] | B | |
[in] | C | |
[in] | idx_arr | inverted contraction index map |
[in] | off_A | offset of A in inverted index map |
[in] | off_B | offset of B in inverted index map |
[in] | off_C | offset of C in inverted index map |
[in] | idx_A | index map of A |
[in] | idx_B | index map of B |
[in] | idx_C | index map of C |
[in,out] | add_sign | sign of contraction |
[in,out] | mod | 1 if permutation done |
Definition at line 492 of file symmetrization.cxx.
References AS, MAX, MIN, NS, CTF_int::tensor::order, and CTF_int::tensor::sym.
Referenced by add_sym_perm().
int64_t CTF_int::packed_size | ( | int | order, |
const int * | len, | ||
const int * | sym | ||
) |
computes the size of a tensor in packed symmetric (SY, SH, or AS) layout
[in] | order | tensor dimension |
[in] | len | tensor edge _elngths |
[in] | sym | tensor symmetries |
Definition at line 38 of file util.cxx.
Referenced by calc_idx_arr(), CTF_int::tensor::get_tot_size(), glb_ord_pup(), pad_cyclic_pup_virt_buff(), CTF_int::tensor::read_dense_from_file(), and CTF_int::tensor::write_dense_to_file().
void CTF_int::pad_cyclic_pup_virt_buff | ( | int const * | sym, |
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
int const * | len, | ||
int const * | old_phys_dim, | ||
int const * | old_phys_edge_len, | ||
int const * | old_virt_edge_len, | ||
int64_t | old_virt_nelem, | ||
int const * | old_offsets, | ||
int *const * | old_permutation, | ||
int | total_np, | ||
int const * | new_phys_dim, | ||
int const * | new_phys_edge_len, | ||
int const * | new_virt_edge_len, | ||
int64_t | new_virt_nelem, | ||
char * | old_data, | ||
char ** | new_data, | ||
int | forward, | ||
int *const * | bucket_offset, | ||
char const * | alpha, | ||
char const * | beta, | ||
algstrct const * | sr | ||
) |
[in] | sym | symmetry relations between tensor dimensions |
[in] | old_dist | starting data distrubtion |
[in] | new_dist | target data distrubtion |
[in] | len | non-padded edge lengths of tensor |
[in] | old_phys_dim | edge lengths of the old processor grid |
[in] | old_phys_edge_len | the old tensor processor block lengths |
[in] | old_virt_edge_len | the old tensor block lengths |
[in] | old_virt_nelem | the old number of elements per block |
[in] | old_offsets | old offsets of each tensor edge (corner 1 of slice) |
[in] | old_permutation | permutation array for each edge length (no perm if NULL) |
[in] | total_np | the total number of processors |
[in] | new_phys_dim | edge lengths of the new processor grid |
[in] | new_phys_edge_len | the new tensor processor block lengths |
[in] | new_virt_edge_len | the new tensor block lengths |
[in] | new_virt_nelem | the new number of elements per block |
[in,out] | old_data | the previous set of values stored locally |
[in,out] | new_data | buffers to fill with data to send to each process and virtual bucket |
[in] | forward | is 0 on the receiving side and reverses the role of all the previous parameters |
[in] | bucket_offset | offsets for target index for each dimension |
[in] | alpha | scaling factor for received data |
[in] | beta | scaling factor for previous data |
[in] | sr | algstrct defining elements and ops |
Definition at line 8 of file cyclic_reshuffle.cxx.
References ABORT, CTF_int::algstrct::acc(), CTF_int::algstrct::addid(), alloc_ptr(), ASSERT, calc_idx_arr(), cdealloc(), CTF_int::algstrct::copy(), ctf.core::dim, CTF_int::accumulatable::el_size, CTF_int::algstrct::isequal(), MAX, MIN, mst_alloc_ptr(), CTF_int::algstrct::mulid(), NS, CTF_int::distribution::order, packed_size(), CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, ctf.core::rank(), SY, sy_packed_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by cyclic_reshuffle().
void CTF_int::pad_key | ( | int | order, |
int64_t | num_pair, | ||
int const * | edge_len, | ||
int const * | padding, | ||
PairIterator | pairs, | ||
algstrct const * | sr, | ||
int const * | offsets = NULL |
||
) |
applies padding to keys
[in] | order | tensor dimension |
[in] | num_pair | number of pairs |
[in] | edge_len | tensor edge lengths |
[in] | padding | padding of tensor (included in edge_len) |
[in,out] | pairs | set of pairs which to pad |
[in] | sr | algstrct defines sizeo of each pair |
[in] | offsets | (default NULL, none applied), offsets keys |
Definition at line 6 of file pad.cxx.
References CTF_int::PairIterator::k(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write_key().
Referenced by read_loc_pairs(), CTF_int::tensor::slice(), CTF_int::tensor::sparsify(), and wr_pairs_layout().
void CTF_int::padded_reshuffle | ( | int const * | sym, |
distribution const & | old_dist, | ||
distribution const & | new_dist, | ||
char * | tsr_data, | ||
char ** | tsr_cyclic_data, | ||
algstrct const * | sr, | ||
CommData | ord_glb_comm | ||
) |
Reshuffle elements using key-value pair read/write.
[in] | sym | symmetry relations between tensor dimensions |
[in] | old_dist | starting data distrubtion |
[in] | new_dist | target data distrubtion |
[in] | tsr_data | starting data buffer |
[out] | tsr_cyclic_data | target data buffer |
[in] | sr | algstrct defining data |
[in] | ord_glb_comm | communicator on which to redistribute |
Definition at line 8 of file redist.cxx.
References CTF_int::algstrct::addid(), alloc_ptr(), cdealloc(), DEBUG_PRINTF, DPRINTF, CTF_int::accumulatable::el_size, CTF_int::algstrct::mulid(), CTF_int::CommData::np, CTF_int::distribution::order, CTF_int::distribution::pad_edge_len, CTF_int::distribution::padding, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, CTF_int::CommData::rank, read_loc_pairs(), CTF_int::algstrct::set(), CTF_int::distribution::size, sy_packed_size(), TAU_FSTART, TAU_FSTOP, CTF_int::distribution::virt_phase, and wr_pairs_layout().
Referenced by CTF_int::tensor::redistribute().
void CTF_int::parse_sparse_tensor_data | ( | char ** | lvals, |
int | order, | ||
dtype const * | pmulid, | ||
int * | lens, | ||
int64_t | nvals, | ||
CTF::Pair< dtype > * | pairs, | ||
bool | with_vals | ||
) |
parse string containing sparse tensor into data
[in] | lvals | array of string, one per line/entry, formatted as i1, ..., i_order v or i1, ..., i_order if with_vals=false |
[in] | order | num modes in tensor |
[in] | pmulid | pointer to multiplicative identity, used only if with_vals=false |
[in] | lens | dimensions of tensor |
[in] | nvals | number of entries in lvals |
[in] | pairs | array of tensor index/value pairs to fill |
[in] | with_vals | whether values are included in file |
Definition at line 45 of file graph_io_aux.cxx.
References CTF::Pair< dtype >::d, ctf.core::dtype, and CTF::Pair< dtype >::k.
folds specified topology and all of its permutations into all configurations of lesser dimensionality
[in] | phys_topology | topology to fold |
[in] | cdt | global communicator |
Definition at line 488 of file topology.cxx.
References find_topology(), CTF_int::topology::lens, CTF_int::topology::order, peel_torus(), and CTF_int::topology::topology().
Referenced by CTF::World::~World().
folds specified topology into all configurations of lesser dimensionality
[in] | topo | topology to fold |
[in] | glb_comm | global communicator |
Definition at line 537 of file topology.cxx.
References alloc(), cdealloc(), find_topology(), CTF_int::topology::lens, CTF_int::topology::order, and CTF_int::topology::topology().
Referenced by peel_perm_torus().
void CTF_int::permute | ( | int | order, |
int const * | perm, | ||
int * | arr | ||
) |
permute an array
order | number of elements |
perm | permutation array |
arr | array to permute |
Definition at line 205 of file util.cxx.
References alloc_ptr(), and cdealloc().
Referenced by coalesce_bwd(), and ctf.core::MPI_Stop().
void CTF_int::permute_keys | ( | int | order, |
int | num_pair, | ||
int const * | edge_len, | ||
int const * | new_edge_len, | ||
int *const * | permutation, | ||
char * | pairs, | ||
int64_t * | new_num_pair, | ||
algstrct const * | sr | ||
) |
permutes keys
[in] | order | tensor dimension |
[in] | num_pair | number of pairs |
[in] | edge_len | old nonpadded tensor edge lengths |
[in] | new_edge_len | new nonpadded tensor edge lengths |
[in] | permutation | permutation to apply to keys of each pair |
[in,out] | pairs | the keys and values as pairs |
[out] | new_num_pair | number of new pairs, since pairs are ignored if perm[i][j] == -1 |
[in] | sr | algstrct defining data type of array |
Definition at line 10 of file sparse_rw.cxx.
References CTF_int::PairIterator::k(), MIN, CTF_int::algstrct::pair_alloc(), CTF_int::algstrct::pair_dealloc(), CTF_int::algstrct::pair_size(), CTF_int::algstrct::set_pair(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write().
Referenced by CTF_int::tensor::permute().
void CTF_int::permute_target | ( | int | order, |
int const * | perm, | ||
int * | arr | ||
) |
permutes a permutation array
order | number of elements in perm |
perm | permutation array |
arr | permutation array to permute |
Definition at line 222 of file util.cxx.
References alloc_ptr(), and cdealloc().
Referenced by coalesce_bwd(), CTF_int::summation::estimate_time(), and get_len_ordering().
void CTF_int::pow_helper | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
pow function
[in] | A | tensor, param[in] B tensor, param[in,out] C tensor, param[in] index of A, param[in] index of B, param[in] index of C |
Definition at line 26 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::b, and ctf.core::dtype.
template void CTF_int::pow_helper< bool > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< double > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< float > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< int16_t > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< int32_t > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< int64_t > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< int8_t > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
Referenced by conv_type().
template void CTF_int::pow_helper< std::complex< double > > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
template void CTF_int::pow_helper< std::complex< float > > | ( | tensor * | A, |
tensor * | B, | ||
tensor * | C, | ||
char const * | idx_A, | ||
char const * | idx_B, | ||
char const * | idx_C | ||
) |
void CTF_int::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 | ||
) |
Definition at line 261 of file dgtog_calc_cnt.cxx.
References alloc_ptr(), ctf.core::dim, get_glb(), get_loc(), MAX, NS, CTF_int::distribution::order, CTF_int::distribution::pe_lda, CTF_int::distribution::perank, CTF_int::distribution::phase, CTF_int::distribution::phys_phase, SY, sy_packed_size(), TAU_FSTART, TAU_FSTOP, and CTF_int::distribution::virt_phase.
Referenced by dgtog_reshuffle().
void CTF_int::print_all_models | ( | ) |
Definition at line 23 of file model.cxx.
References get_all_models().
Referenced by CTF_int::Model::dump_data(), and CTF::print_timers().
int64_t CTF_int::proc_bytes_available | ( | ) |
gives total memory available on this MPI process
Definition at line 655 of file memcontrol.cxx.
References memcap, proc_bytes_total(), and proc_bytes_used().
Referenced by CTF_int::scaling::execute(), get_len_ordering(), CTF_int::tensor::set_zero(), CTF_int::tensor::write(), and CTF::World::~World().
int64_t CTF_int::proc_bytes_total | ( | ) |
gives total memory size per MPI process
Definition at line 604 of file memcontrol.cxx.
References MIN, and tot_mem_available.
Referenced by proc_bytes_available().
int64_t CTF_int::proc_bytes_used | ( | ) |
gives total memory used on this MPI process
Definition at line 538 of file memcontrol.cxx.
References tot_mem_used.
Referenced by main(), and proc_bytes_available().
int64_t CTF_int::read_data_mpiio | ( | CTF::World const * | dw, |
char const * | fpath, | ||
char *** | datastr | ||
) |
read sparse tensor data from file using MPI-I/O, creating string with one entry per line (different entries on each process)
[in] | dw | MPI world/comm |
[in] | fpath | file name |
[in] | datastr | array of strings to create and read from file |
Definition at line 142 of file graph_io_aux.cxx.
References alloc(), cdealloc(), CTF::World::np, and CTF::World::rank.
void CTF_int::read_loc_pairs | ( | int | order, |
int64_t | nval, | ||
int | num_virt, | ||
int const * | sym, | ||
int const * | edge_len, | ||
int const * | padding, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int * | phase_rank, | ||
int64_t * | nread, | ||
char const * | data, | ||
char ** | pairs, | ||
algstrct const * | sr | ||
) |
read tensor pairs local to processor
[in] | order | tensor dimension |
[in] | nval | number of local values |
[in] | num_virt | new total virtualization factor |
[in] | sym | symmetries of tensor |
[in] | edge_len | tensor edge lengths |
[in] | padding | padding of tensor |
[in] | phase | blocking factor in each dimension |
[in] | phys_phase | number of procs in each dimension |
[in] | virt_phase | virtualization in each dimension |
[in] | phase_rank | virtualized rank in total phase |
[out] | nread | number of local pairs read |
[in] | data | tensor data to read from |
[out] | pairs | local pairs read |
[in] | sr | algstrct context defining values |
Definition at line 1235 of file sparse_rw.cxx.
References alloc_ptr(), assign_keys(), cdealloc(), depad_tsr(), pad_key(), CTF_int::algstrct::pair_alloc(), and CTF_int::algstrct::pair_dealloc().
Referenced by padded_reshuffle(), and CTF_int::tensor::read_local().
void CTF_int::readwrite | ( | int | order, |
int64_t | size, | ||
char const * | alpha, | ||
char const * | beta, | ||
int | nvirt, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_dim, | ||
int * | phase_rank, | ||
char * | vdata, | ||
char * | pairs, | ||
char | rw, | ||
algstrct const * | sr | ||
) |
read or write pairs from / to tensor
[in] | order | tensor dimension |
[in] | size | number of pairs |
[in] | alpha | multiplier for new value |
[in] | beta | multiplier for old value |
[in] | nvirt | num local blocks |
[in] | edge_len | tensor edge lengths |
[in] | sym | symmetries of tensor |
[in] | phase | total phase in each dimension |
[in] | phys_phase | physical distribution phase |
[in] | virt_dim | virtualization in each dimension |
[in] | phase_rank | virtualized rank in total phase |
[in,out] | vdata | data to read from or write to |
[in,out] | pairs | pairs to read or write |
[in] | rw | whether to read 'r' or write 'w' |
[in] | sr | algstrct context defining values |
Definition at line 685 of file sparse_rw.cxx.
References CTF_int::algstrct::add(), alloc_ptr(), ASSERT, cdealloc(), CTF_int::algstrct::copy(), CTF_int::PairIterator::d(), CTF_int::accumulatable::el_size, CTF_int::algstrct::mul(), NS, CTF_int::algstrct::pair_size(), CTF_int::PairIterator::read_val(), TAU_FSTART, TAU_FSTOP, and CTF_int::PairIterator::write_val().
Referenced by wr_pairs_layout().
void CTF_int::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 | ||
) |
Definition at line 7 of file dgtog_bucket.h.
Referenced by dgtog_reshuffle().
void CTF_int::redist_bucket< 0 > | ( | 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 | ||
) |
Definition at line 30 of file dgtog_bucket.h.
Referenced by isendrecv< 0 >().
void CTF_int::redist_bucket_r0 | ( | int *const * | bucket_offset, |
int64_t *const * | data_offset, | ||
int *const * | ivmax_pre, | ||
int | rep_phase0, | ||
int | rep_idx0, | ||
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 | ||
) |
Definition at line 90 of file dgtog_bucket.h.
References CTF_int::algstrct::copy(), and CTF_int::accumulatable::el_size.
Referenced by isendrecv< 0 >().
void CTF_int::reduce_step_post | ( | int | edge_len, |
char * | C, | ||
bool | is_sparse_C, | ||
bool | move_C, | ||
algstrct const * | sr_C, | ||
int64_t | b_C, | ||
int64_t | s_C, | ||
char * | buf_C, | ||
CommData * | cdt_C, | ||
int64_t | ctr_sub_lda_C, | ||
int64_t | ctr_lda_C, | ||
int | nblk_C, | ||
int64_t * | size_blk_C, | ||
int & | new_nblk_C, | ||
int64_t *& | new_size_blk_C, | ||
int64_t * | offsets_C, | ||
int | ib, | ||
char const *& | rec_beta, | ||
char const * | beta, | ||
char *& | up_C, | ||
char *& | new_C, | ||
int | n_new_C_grps, | ||
int & | i_new_C_grp, | ||
char ** | new_C_grps | ||
) |
Definition at line 281 of file spctr_2d_general.cxx.
References CTF_int::algstrct::addmop(), alloc_ptr(), ASSERT, CTF_int::ctr::beta, cdealloc(), CTF_int::CommData::cm, CTF_int::algstrct::copy(), CTF_int::algstrct::csr_reduce(), CTF_int::spctr_2d_general::ctr_lda_C, CTF_int::spctr_2d_general::ctr_sub_lda_C, CTF_int::spctr_2d_general::edge_len, CTF_int::accumulatable::el_size, CTF_int::algstrct::mdtype(), CTF_int::algstrct::mulid(), CTF_int::CommData::np, CTF_int::CommData::rank, CTF_int::CommData::red(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::spctr_2d_general::run().
char* CTF_int::reduce_step_pre | ( | int | edge_len, |
char * | C, | ||
bool | is_sparse_C, | ||
bool | move_C, | ||
algstrct const * | sr_C, | ||
int64_t | b_C, | ||
int64_t | s_C, | ||
char * | buf_C, | ||
CommData * | cdt_C, | ||
int64_t | ctr_sub_lda_C, | ||
int64_t | ctr_lda_C, | ||
int | nblk_C, | ||
int64_t const * | size_blk_C, | ||
int & | new_nblk_C, | ||
int64_t *& | new_size_blk_C, | ||
int64_t * | offsets_C, | ||
int | ib, | ||
char const *& | rec_beta | ||
) |
Definition at line 244 of file spctr_2d_general.cxx.
References CTF_int::algstrct::addid(), alloc_ptr(), CTF_int::spctr_2d_general::ctr_sub_lda_C, CTF_int::spctr_2d_general::edge_len, and CTF_int::accumulatable::el_size.
Referenced by CTF_int::spctr_2d_general::run().
void CTF_int::scal_diag | ( | int | order, |
int64_t | size, | ||
int | nvirt, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | padding, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int const * | cphase_rank, | ||
char * | vdata, | ||
algstrct const * | sr, | ||
int const * | sym_mask | ||
) |
scales each element by 1/(number of entries equivalent to it after permutation of indices for which sym_mask is 1)
[in] | order | tensor dimension |
[in] | size | number of values |
[in] | nvirt | total virtualization factor |
[in] | edge_len | tensor edge lengths with padding |
[in] | sym | symmetries of tensor |
[in] | padding | how much of the edge lengths is padding |
[in] | phase | phase of the tensor on virtualized processor grid |
[in] | phys_phase | phase of the tensor on virtualized processor grid |
[in] | virt_phase | virtual phase in each dimension |
[in] | cphase_rank | physical phase rank |
[in,out] | vdata | array of all local data |
[in] | sr | algstrct defines sizeo of each pair |
[in] | sym_mask | identifies which tensor indices are part of the symmetric group which diagonals we want to scale (i.e. sym_mask [1,1] does A["ii"]= (1./2.)*A["ii"]) |
Definition at line 567 of file pad.cxx.
References alloc_ptr(), ASSERT, calc_idx_arr(), CTF_int::algstrct::cast_double(), cdealloc(), ctf.core::dim, CTF_int::accumulatable::el_size, MIN, NS, CTF_int::algstrct::scal(), SY, TAU_FSTART, and TAU_FSTOP.
Referenced by desymmetrize(), CTF_int::tensor::scale_diagonals(), and symmetrize().
void CTF_int::seq_coo_to_csr | ( | int64_t | nz, |
int | nrow, | ||
dtype * | csr_vs, | ||
int * | csr_ja, | ||
int * | csr_ia, | ||
dtype const * | coo_vs, | ||
int const * | coo_rs, | ||
int const * | coo_cs | ||
) |
Definition at line 17 of file set.h.
References ctf.core::a, ctf.core::b, ctf.core::dtype, and try_mkl_coo_to_csr().
void CTF_int::seq_csr_to_coo | ( | int64_t | nz, |
int | nrow, | ||
dtype const * | csr_vs, | ||
int const * | csr_ja, | ||
int const * | csr_ia, | ||
dtype * | coo_vs, | ||
int * | coo_rs, | ||
int * | coo_cs | ||
) |
Definition at line 85 of file set.h.
References ctf.core::b, ctf.core::copy(), ctf.core::dtype, and try_mkl_csr_to_coo().
char* CTF_int::serialize_sparse_tensor_data | ( | int | order, |
int * | lens, | ||
int64_t | nvals, | ||
CTF::Pair< dtype > * | pairs, | ||
bool | with_vals, | ||
int64_t & | str_len | ||
) |
serialize sparse tensor data to create string
[in] | order | num modes in tensor |
[in] | pmulid | pointer to multiplicative identity, used only if with_vals=false |
[in] | lens | dimensions of tensor |
[in] | nvals | number of entries in lvals |
[in] | pairs | array of tensor index/value pairs to fill |
[in] | with_vals | whether values are included in file |
[out] | length | of string output |
Definition at line 91 of file graph_io_aux.cxx.
References alloc(), and CTF::Pair< dtype >::k.
function that set the imaginary part from complex numbers
[in] | A | tensor, param[in] B tensor stores the imaginary part from tensor A |
Definition at line 79 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::b, ctf.core::dtype, and CTF_int::tensor::order.
template void CTF_int::set_imag< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::set_imag< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
void CTF_int::set_mem_size | ( | int64_t | size | ) |
sets what fraction of the memory capacity CTF can use
Definition at line 110 of file memcontrol.cxx.
Referenced by CTF::World::~World().
void CTF_int::set_memcap | ( | double | cap | ) |
sets what fraction of the memory capacity CTF can use
[in] | cap | memory fraction |
Definition at line 118 of file memcontrol.cxx.
Referenced by CTF::World::~World().
function that set the real part from complex numbers
[in] | A | tensor, param[in] B tensor stores the real part from tensor A |
Definition at line 70 of file ctf_ext.cxx.
References ctf.core::a, ctf.core::b, ctf.core::dtype, and CTF_int::tensor::order.
template void CTF_int::set_real< double > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
template void CTF_int::set_real< float > | ( | tensor * | A, |
tensor * | B | ||
) |
Referenced by conv_type().
void CTF_int::socopy | ( | int64_t | m, |
int64_t | n, | ||
int64_t | lda_a, | ||
int64_t | lda_b, | ||
int64_t const * | sizes_a, | ||
int64_t *& | sizes_b, | ||
int64_t *& | offsets_b | ||
) |
Definition at line 240 of file util.cxx.
References alloc().
Referenced by bcast_step(), and coalesce_bwd().
void CTF_int::sp_read | ( | algstrct const * | sr, |
int64_t | ntsr, | ||
ConstPairIterator | prs_tsr, | ||
char const * | alpha, | ||
int64_t | nread, | ||
PairIterator | prs_read, | ||
char const * | beta | ||
) |
reads elements of a sparse set defining the tensor, into a sparse read set with potentially repeating keys
[in] | sr | algstrct defining data type of array |
[in] | ntsr | number of elements in sparse tensor |
[in] | prs_tsr | pairs of the sparse tensor |
[in] | alpha | scaling factor for data of the sparse tensor |
[in] | nread | number of elements in the read set |
[in,out] | prs_read | pairs of the read set |
[in] | beta | scaling factor for data of the read set |
Definition at line 1311 of file sparse_rw.cxx.
References ctf.core::a, CTF_int::algstrct::add(), CTF_int::algstrct::addid(), ctf.core::b, CTF_int::accumulatable::el_size, CTF_int::algstrct::mul(), CTF_int::ConstPairIterator::read_val(), CTF_int::PairIterator::read_val(), and CTF_int::PairIterator::write_val().
Referenced by wr_pairs_layout().
void CTF_int::sp_write | ( | int | num_virt, |
algstrct const * | sr, | ||
int64_t * | vntsr, | ||
ConstPairIterator | vprs_tsr, | ||
char const * | beta, | ||
int64_t * | vnwrite, | ||
ConstPairIterator | vprs_write, | ||
char const * | alpha, | ||
int64_t * | vnnew, | ||
char *& | pprs_new | ||
) |
writes pairs in a sparse write set to the sparse set of elements defining the tensor, resulting in a set of size between ntsr and ntsr+nwrite
[in] | num_virt | num local blocks |
[in] | sr | algstrct defining data type of array |
[in] | vntsr | number of elements in sparse tensor |
[in] | vprs_tsr | pairs of the sparse tensor |
[in] | beta | scaling factor for data of the sparse tensor |
[in] | vnwrite | number of elements in the write set |
[in] | vprs_write | pairs of the write set |
[in] | alpha | scaling factor for data of the write set |
[out] | vnnew | number of elements in resulting set |
[out] | pprs_new | char array containing the pairs of the resulting set |
Definition at line 1362 of file sparse_rw.cxx.
References ctf.core::a, CTF_int::algstrct::add(), ctf.core::b, CTF_int::accumulatable::el_size, CTF_int::ConstPairIterator::k(), CTF_int::algstrct::mul(), CTF_int::algstrct::pair_alloc(), CTF_int::ConstPairIterator::read_val(), ctf.core::w, CTF_int::PairIterator::write(), and CTF_int::PairIterator::write_val().
Referenced by wr_pairs_layout().
void CTF_int::spA_dnB_dnC_ctrloop | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int64_t const * | lda_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 12 of file sp_seq_ctr.cxx.
References ASSERT, NS, and CTF_int::ConstPairIterator::ptr.
Referenced by spA_dnB_dnC_seq_ctr().
void CTF_int::spA_dnB_dnC_ctrloop< 0 > | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int64_t const * | lda_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 153 of file sp_seq_ctr.cxx.
References ASSERT, CTF_FLOPS_ADD, NS, and spA_dnB_dnC_ctrloop< MAX_ORD >().
void CTF_int::spA_dnB_dnC_ctrloop< MAX_ORD > | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int64_t const * | lda_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Referenced by spA_dnB_dnC_ctrloop< 0 >().
void CTF_int::spA_dnB_dnC_seq_ctr | ( | char const * | alpha, |
char const * | A, | ||
int64_t | size_A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
bivar_function const * | func | ||
) |
Definition at line 358 of file sp_seq_ctr.cxx.
References CTF_int::algstrct::add(), CTF_int::algstrct::addid(), alloc(), ASSERT, cdealloc(), compute_syoffs(), CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, inv_idx(), CTF_int::algstrct::isequal(), MAX_ORD, CTF_int::algstrct::mul(), CTF_int::algstrct::mulid(), CTF_int::algstrct::scal(), CTF_int::algstrct::set(), spA_dnB_dnC_ctrloop(), SWITCH_ORD_CALL, sy_packed_size(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_spctr::run().
void CTF_int::spA_dnB_seq_sum | ( | char const * | alpha, |
char const * | A, | ||
int64_t | size_A, | ||
algstrct const * | sr_A, | ||
char const * | beta, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
univar_function const * | func | ||
) |
performs summation between two sparse tensors assumes A contains key value pairs sorted by key, with index permutation preapplied and with no repeated indices
[in] | alpha | scaling factor of A |
[in] | A | data of right operand |
[in] | size_A | number of nonzero entries in right operand |
[in] | sr_A | algebraic structure of right operand |
[in] | beta | scaling factor of left operand |
[in,out] | B | data of left operand |
[in] | sr_B | algebraic structure of left operand and output |
[in] | order_B | order of tensor B |
[in] | edge_len_B | dimensions of tensor B |
[in] | sym_B | symmetry relations of tensor B |
[in] | func | function (or NULL) to apply to right operand |
Definition at line 95 of file spr_seq_sum.cxx.
References CTF_int::univar_function::acc_f(), CTF_int::algstrct::add(), CTF_int::algstrct::addid(), ASSERT, CTF_int::ConstPairIterator::d(), CTF_int::accumulatable::el_size, CTF_int::algstrct::isequal(), MAX_ORD, CTF_int::algstrct::mul(), CTF_int::algstrct::mulid(), CTF_int::algstrct::scal(), CTF_int::algstrct::set(), spA_dnB_seq_sum_loop(), SWITCH_ORD_CALL, sy_packed_size(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_spsum::run().
void CTF_int::spA_dnB_seq_sum_loop | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
char const * | beta, | ||
char *& | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int64_t | idx_B, | ||
int const * | edge_len_B, | ||
int64_t const * | lda_B, | ||
int const * | sym_B, | ||
univar_function const * | func | ||
) |
void CTF_int::spA_dnB_seq_sum_loop< 0 > | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
char const * | beta, | ||
char *& | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int64_t | idx_B, | ||
int const * | edge_len_B, | ||
int64_t const * | lda_B, | ||
int const * | sym_B, | ||
univar_function const * | func | ||
) |
Definition at line 33 of file spr_seq_sum.cxx.
References NS, and spA_dnB_seq_sum_loop< MAX_ORD >().
template void CTF_int::spA_dnB_seq_sum_loop< MAX_ORD > | ( | char const * | alpha, |
ConstPairIterator & | A, | ||
int64_t & | size_A, | ||
algstrct const * | sr_A, | ||
char const * | beta, | ||
char *& | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int64_t | idx_B, | ||
int const * | edge_len_B, | ||
int64_t const * | lda_B, | ||
int const * | sym_B, | ||
univar_function const * | func | ||
) |
Referenced by spA_dnB_seq_sum_loop< 0 >().
void CTF_int::spA_spB_seq_sum | ( | char const * | alpha, |
char const * | A, | ||
int64_t | size_A, | ||
algstrct const * | sr_A, | ||
char const * | beta, | ||
char * | B, | ||
int64_t | size_B, | ||
char *& | new_B, | ||
int64_t & | new_size_B, | ||
algstrct const * | sr_B, | ||
univar_function const * | func, | ||
int64_t | map_pfx | ||
) |
performs summation between two sparse tensors assumes A and B contain key value pairs sorted by key, with index permutation preapplied and with no repeated indices
[in] | alpha | scaling factor of A |
[in] | A | data of right operand |
[in] | size_A | number of nonzero entries in right operand |
[in] | sr_A | algebraic structure of right operand |
[in] | beta | scaling factor of left operand |
[in] | B | data of left operand |
[in] | size_B | number of nonzero entries in left operand |
[in,out] | new_B | new data of output |
[in,out] | new_size_B | number of nonzero entries in output |
[in] | sr_B | algebraic structure of left operand and output |
[in] | func | function (or NULL) to apply to right operand |
[in] | map_pfx | how many times each element of A should be replicated |
Definition at line 327 of file spr_seq_sum.cxx.
References spspsum().
Referenced by CTF_int::seq_tsr_spsum::run(), and spspsum().
void CTF_int::spcopy | ( | int64_t | m, |
int64_t | n, | ||
int64_t | lda_a, | ||
int64_t | lda_b, | ||
int64_t const * | sizes_a, | ||
int64_t const * | offsets_a, | ||
char const * | a, | ||
int64_t const * | sizes_b, | ||
int64_t const * | offsets_b, | ||
char * | b | ||
) |
Definition at line 260 of file util.cxx.
Referenced by bcast_step(), coalesce_bwd(), and CTF_int::spctr_2d_general::run().
int CTF_int::spctr_2d_gen_build | ( | int | is_used, |
CommData | global_comm, | ||
int | i, | ||
int * | virt_dim, | ||
int & | cg_edge_len, | ||
int & | total_iter, | ||
tensor * | A, | ||
int | i_A, | ||
CommData *& | cg_cdt_A, | ||
int64_t & | cg_spctr_lda_A, | ||
int64_t & | cg_spctr_sub_lda_A, | ||
bool & | cg_move_A, | ||
int * | blk_len_A, | ||
int64_t & | blk_sz_A, | ||
int const * | virt_blk_len_A, | ||
int & | load_phase_A, | ||
tensor * | B, | ||
int | i_B, | ||
CommData *& | cg_cdt_B, | ||
int64_t & | cg_spctr_lda_B, | ||
int64_t & | cg_spctr_sub_lda_B, | ||
bool & | cg_move_B, | ||
int * | blk_len_B, | ||
int64_t & | blk_sz_B, | ||
int const * | virt_blk_len_B, | ||
int & | load_phase_B, | ||
tensor * | C, | ||
int | i_C, | ||
CommData *& | cg_cdt_C, | ||
int64_t & | cg_spctr_lda_C, | ||
int64_t & | cg_spctr_sub_lda_C, | ||
bool & | cg_move_C, | ||
int * | blk_len_C, | ||
int64_t & | blk_sz_C, | ||
int const * | virt_blk_len_C, | ||
int & | load_phase_C | ||
) |
double CTF_int::spredist_est_time | ( | int64_t | size, |
int | np | ||
) |
Definition at line 24 of file untyped_tensor.cxx.
References spredist_mdl.
Referenced by CTF_int::tensor::est_redist_time().
void CTF_int::spsfy_tsr | ( | int | order, |
int64_t | size, | ||
int | nvirt, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_dim, | ||
int * | phase_rank, | ||
char const * | vdata, | ||
char *& | vpairs, | ||
int64_t * | nnz_blk, | ||
algstrct const * | sr, | ||
int64_t const * | edge_lda, | ||
std::function< bool(char const *)> | f | ||
) |
extracts all tensor values (in pair format) that pass a sparsifier function (including padded zeros if they pass the fliter)
[in] | order | tensor dimension |
[in] | size | number of values |
[in] | nvirt | total virtualization factor |
[in] | edge_len | tensor edge lengths (padded) |
[in] | sym | symmetries of tensor |
[in] | phase | total phase of the tensor on virtualized processor grid |
[in] | phys_phase | physical phase of the tensor |
[in] | virt_dim | virtual phase in each dimension |
[in] | phase_rank | physical phase rank multiplied by virtual phase |
[in] | vdata | array of input values |
[out] | vpairs | pairs of keys and inputted values, allocated internally |
[in,out] | nnz_blk | nonzero counts for each virtual block |
[in] | sr | algstrct defining data type of array |
[in] | edge_lda | lda of non-padded edge-lengths |
[in] | f | sparsification filter |
Definition at line 276 of file sparse_rw.cxx.
References alloc(), alloc_ptr(), ASSERT, cdealloc(), CTF_int::accumulatable::el_size, NS, CTF_int::algstrct::pair_alloc(), CTF_int::algstrct::pair_size(), CTF_int::algstrct::set_pair(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::tensor::sparsify().
void CTF_int::spspsum | ( | algstrct const * | sr_A, |
int64_t | nA, | ||
ConstPairIterator | prs_A, | ||
char const * | beta, | ||
algstrct const * | sr_B, | ||
int64_t | nB, | ||
ConstPairIterator | prs_B, | ||
char const * | alpha, | ||
int64_t & | nnew, | ||
char *& | pprs_new, | ||
univar_function const * | func, | ||
int64_t | map_pfx | ||
) |
As pairs in a sparse A set to the sparse set of elements defining the tensor, resulting in a set of size between nB and nB+nA.
[in] | sr_A | algstrct defining data type of array |
[in] | nA | number of elements in sparse tensor |
[in] | prs_A | pairs of the sparse tensor |
[in] | beta | scaling factor for data of the sparse tensor |
[in] | sr_B | algstrct defining data type of array |
[in] | nB | number of elements in the A set |
[in] | prs_B | pairs of the A set |
[in] | alpha | scaling factor for data of the A set |
[out] | nnew | number of elements in resulting set |
[out] | pprs_new | char array containing the pairs of the resulting set |
[in] | func | NULL or pointer to a function to apply elementwise |
[in] | map_pfx | how many times each element of A should be replicated |
Definition at line 183 of file spr_seq_sum.cxx.
References ctf.core::a, CTF_int::univar_function::acc_f(), CTF_int::algstrct::add(), CTF_int::univar_function::apply_f(), ASSERT, ctf.core::b, CTF_int::algstrct::copy_pair(), CTF_int::accumulatable::el_size, CTF_int::univar_function::is_accumulator(), CTF_int::ConstPairIterator::k(), CTF_int::algstrct::mul(), CTF_int::algstrct::pair_alloc(), CTF_int::ConstPairIterator::read_val(), spA_spB_seq_sum(), TAU_FSTART, TAU_FSTOP, ctf.core::w, and CTF_int::PairIterator::write_val().
Referenced by spA_spB_seq_sum().
int CTF_int::stretch_virt | ( | int | order, |
int | stretch_factor, | ||
mapping * | maps | ||
) |
stretch virtualization by a factor
[in] | order | number of maps to stretch |
[in] | stretch_factor | factor to strech by |
[in] | maps | mappings along each dimension to stretch |
Definition at line 542 of file mapping.cxx.
References CTF_int::mapping::child, CTF_int::mapping::has_child, CTF_int::mapping::mapping(), CTF_int::mapping::np, PHYSICAL_MAP, SUCCESS, CTF_int::mapping::type, and VIRTUAL_MAP.
int CTF_int::strip_diag | ( | int | order, |
int | order_tot, | ||
int const * | idx_map, | ||
int64_t | vrt_sz, | ||
mapping const * | edge_map, | ||
topology const * | topo, | ||
algstrct const * | sr, | ||
int * | blk_edge_len, | ||
int64_t * | blk_sz, | ||
strp_tsr ** | stpr | ||
) |
build stack required for stripping out diagonals of tensor
[in] | order | number of dimensions of this tensor |
[in] | order_tot | number of dimensions invovled in contraction/sum |
[in] | idx_map | the index mapping for this contraction/sum |
[in] | vrt_sz | size of virtual block |
[in] | edge_map | mapping of each dimension |
[in] | topo | topology the tensor is mapped to |
[in] | sr | algstrct to be given to all stpr objs |
[in,out] | blk_edge_len | edge lengths of local block after strip |
[in,out] | blk_sz | size of local sub-block block after strip |
[out] | stpr | class that recursively strips tensor |
Definition at line 273 of file strp_tsr.cxx.
References alloc_ptr(), CTF_int::strp_tsr::alloced, ASSERT, CTF_int::strp_tsr::blk_sz, CTF_int::strp_tsr::buffer, CTF_int::mapping::calc_phase(), CTF_int::mapping::calc_phys_phase(), CTF_int::mapping::calc_phys_rank(), cdealloc(), CTF_int::strp_tsr::edge_len, ctf.core::np(), CTF_int::strp_tsr::order, PHYSICAL_MAP, CTF_int::strp_tsr::sr_A, CTF_int::strp_tsr::strip_dim, CTF_int::strp_tsr::strip_idx, and VIRTUAL_MAP.
Referenced by CTF_int::summation::estimate_time(), CTF_int::scaling::execute(), and CTF_int::strp_ctr::strp_ctr().
void CTF_int::subsample | ( | tensor * | A, |
double | probability | ||
) |
extract a sample of the entries (if sparse of the current nonzeros)
[in] | A | tensor to sample |
[in] | probability | keep each entry with probability |
Definition at line 103 of file ctf_ext.cxx.
References get_rand48(), IASSERT, CTF_int::tensor::sparsify(), and SUCCESS.
Referenced by ctf.core::MPI_Stop(), and ctf.core.tensor::sample().
int64_t CTF_int::sum_bool_tsr | ( | tensor * | A | ) |
sum all 1 values in boolean tensor
[in] | A | tensor of boolean values |
Definition at line 92 of file ctf_ext.cxx.
References ctf.core::a, CTF::Scalar< dtype >::get_val(), CTF_int::tensor::order, and CTF_int::tensor::wrld.
Referenced by ctf.core.tensor::__get__(), and ctf.core::MPI_Stop().
void CTF_int::sy_calc_idx_arr | ( | int | order, |
int const * | lens, | ||
int const * | sym, | ||
int64_t | idx, | ||
int * | idx_arr | ||
) |
same as above except assumes sym only NS or SY
Definition at line 121 of file util.cxx.
References ASSERT, ctf.core::dim, NS, and sy_packed_size().
Referenced by order_globally().
int64_t CTF_int::sy_packed_size | ( | int | order, |
const int * | len, | ||
const int * | sym | ||
) |
computes the size of a tensor in SY (NOT HOLLOW) packed symmetric layout
[in] | order | tensor dimension |
[in] | len | tensor edge _elngths |
[in] | sym | tensor symmetries |
Definition at line 10 of file util.cxx.
Referenced by calc_cnt_displs(), compute_syoff(), cyclic_reshuffle(), CTF_int::seq_tsr_spctr::est_membw(), CTF_int::seq_tsr_ctr::est_membw(), CTF_int::tensor::est_time_unfold(), CTF_int::tensor::fold(), get_len_ordering(), glb_cyclic_reshuffle(), glb_ord_pup(), pad_cyclic_pup_virt_buff(), padded_reshuffle(), precompute_offsets(), CTF_int::tensor::set_padding(), spA_dnB_dnC_seq_ctr(), spA_dnB_seq_sum(), sy_calc_idx_arr(), sym_seq_ctr_cust(), sym_seq_ctr_ref(), sym_seq_sum_ref(), and CTF_int::tensor::unfold().
int CTF_int::sym_seq_ctr_cust | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
bivar_function const * | func | ||
) |
performs symmetric contraction with custom elementwise function
Definition at line 566 of file sym_seq_ctr.cxx.
References CTF_int::bivar_function::acc_f(), CTF_int::algstrct::addid(), alloc(), ASSERT, cdealloc(), CHECK_SYM, compute_syoffs(), CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::isequal(), MAX_ORD, CTF_int::algstrct::mul(), CTF_int::algstrct::mulid(), RESET_IDX, CTF_int::algstrct::scal(), CTF_int::algstrct::set(), SWITCH_ORD_CALL, sy_packed_size(), sym_seq_ctr_loop(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_ctr::run().
int CTF_int::sym_seq_ctr_inr | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
iparam const * | prm, | ||
bivar_function const * | func | ||
) |
performs symmetric contraction with blocked gemm
Definition at line 745 of file sym_seq_ctr.cxx.
References CTF_int::algstrct::addid(), alloc(), ASSERT, cdealloc(), CTF_int::bivar_function::cgemm(), CHECK_SYM, CTF_int::bivar_function::coffload_gemm(), CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, gemm(), CTF_int::algstrct::gemm_batch(), GET_MIN_MAX, inv_idx(), CTF_int::algstrct::isequal(), CTF_int::iparam::k, CTF_int::iparam::l, CTF_int::iparam::m, CTF_int::algstrct::mulid(), CTF_int::iparam::n, CTF_int::iparam::offload, CTF_int::algstrct::offload_gemm(), RESET_IDX, CTF_int::algstrct::scal(), CTF_int::algstrct::set(), CTF_int::iparam::sz_C, CTF_int::iparam::tA, TAU_FSTART, TAU_FSTOP, CTF_int::iparam::tB, and CTF_int::iparam::tC.
Referenced by CTF_int::seq_tsr_ctr::run().
void CTF_int::sym_seq_ctr_loop | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 12 of file sym_seq_ctr.cxx.
References NS, and sym_seq_ctr_loop< 0 >().
Referenced by sym_seq_ctr_cust(), and sym_seq_ctr_ref().
void CTF_int::sym_seq_ctr_loop< 0 > | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 137 of file sym_seq_ctr.cxx.
References CTF_FLOPS_ADD, NS, and sym_seq_ctr_loop< MAX_ORD >().
Referenced by sym_seq_ctr_loop().
template void CTF_int::sym_seq_ctr_loop< MAX_ORD > | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C, | ||
uint64_t *const * | offsets_C, | ||
bivar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Referenced by sym_seq_ctr_loop< 0 >().
int CTF_int::sym_seq_ctr_ref | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
char const * | beta, | ||
char * | C, | ||
algstrct const * | sr_C, | ||
int | order_C, | ||
int const * | edge_len_C, | ||
int const * | sym_C, | ||
int const * | idx_map_C | ||
) |
performs symmetric contraction with reference (unblocked) kernel
Definition at line 381 of file sym_seq_ctr.cxx.
References CTF_int::algstrct::add(), CTF_int::algstrct::addid(), alloc(), ASSERT, cdealloc(), CHECK_SYM, compute_syoffs(), CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::isequal(), MAX_ORD, CTF_int::algstrct::mul(), CTF_int::algstrct::mulid(), RESET_IDX, CTF_int::algstrct::scal(), CTF_int::algstrct::set(), SWITCH_ORD_CALL, sy_packed_size(), sym_seq_ctr_loop(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_ctr::run().
int CTF_int::sym_seq_scl_cust | ( | char const * | alpha, |
char * | A, | ||
algstrct const * | sr_A, | ||
int const | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
endomorphism const * | func | ||
) |
performs symmetric scaling using custom func
Definition at line 105 of file sym_seq_scl.cxx.
References alloc(), CTF_int::endomorphism::apply_f(), ASSERT, cdealloc(), CHECK_SYM, CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::mul(), RESET_IDX, sym_seq_sum_cust(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_scl::run(), and CTF_int::endomorphism::~endomorphism().
int CTF_int::sym_seq_scl_ref | ( | char const * | alpha, |
char * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A | ||
) |
performs symmetric scaling using algstrct const * sr_A
Definition at line 40 of file sym_seq_scl.cxx.
References alloc(), ASSERT, cdealloc(), CHECK_SYM, CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::mul(), RESET_IDX, sym_seq_sum_ref(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_scl::run(), and CTF_int::endomorphism::~endomorphism().
int CTF_int::sym_seq_sum_cust | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | beta, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
univar_function const * | func | ||
) |
performs symmetric summation with custom elementwise function
Definition at line 524 of file sym_seq_sum.cxx.
References CTF_int::univar_function::acc_f(), alloc(), ASSERT, cdealloc(), CHECK_SYM, CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::mul(), RESET_IDX, SCAL_B, TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_sum::run(), and sym_seq_scl_cust().
int CTF_int::sym_seq_sum_inr | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | beta, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
int | inr_stride | ||
) |
performs symmetric summation with blocked daxpy
Definition at line 434 of file sym_seq_sum.cxx.
References alloc(), ASSERT, CTF_int::algstrct::axpy(), cdealloc(), CHECK_SYM, CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), RESET_IDX, SCAL_B_inr, TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_sum::run().
void CTF_int::sym_seq_sum_loop | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
univar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 11 of file sym_seq_sum.cxx.
References NS, and sym_seq_sum_loop< 0 >().
Referenced by sym_seq_sum_ref().
void CTF_int::sym_seq_sum_loop< 0 > | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
univar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Definition at line 107 of file sym_seq_sum.cxx.
References CTF_FLOPS_ADD, NS, and sym_seq_sum_loop< MAX_ORD >().
Referenced by sym_seq_sum_loop().
template void CTF_int::sym_seq_sum_loop< MAX_ORD > | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
uint64_t *const * | offsets_A, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B, | ||
uint64_t *const * | offsets_B, | ||
univar_function const * | func, | ||
int const * | idx, | ||
int const * | rev_idx_map, | ||
int | idx_max | ||
) |
Referenced by sym_seq_sum_loop< 0 >().
int CTF_int::sym_seq_sum_ref | ( | char const * | alpha, |
char const * | A, | ||
algstrct const * | sr_A, | ||
int | order_A, | ||
int const * | edge_len_A, | ||
int const * | sym_A, | ||
int const * | idx_map_A, | ||
char const * | beta, | ||
char * | B, | ||
algstrct const * | sr_B, | ||
int | order_B, | ||
int const * | edge_len_B, | ||
int const * | sym_B, | ||
int const * | idx_map_B | ||
) |
performs symmetric contraction with unblocked reference kernel
Definition at line 292 of file sym_seq_sum.cxx.
References CTF_int::algstrct::add(), CTF_int::algstrct::addid(), alloc(), ASSERT, cdealloc(), CHECK_SYM, compute_syoffs(), CTF_FLOPS_ADD, CTF_int::accumulatable::el_size, GET_MIN_MAX, inv_idx(), CTF_int::algstrct::isequal(), MAX_ORD, CTF_int::algstrct::mul(), CTF_int::algstrct::mulid(), RESET_IDX, CTF_int::algstrct::scal(), SCAL_B, CTF_int::algstrct::set(), SWITCH_ORD_CALL, sy_packed_size(), sym_seq_sum_loop(), TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::seq_tsr_sum::run(), and sym_seq_scl_ref().
folds the data of a tensor
[in] | sym_tsr | starting symmetric tensor (where data ends) |
[in] | nonsym_tsr | new tensor with a potentially unfolded symmetry |
Definition at line 237 of file symmetrization.cxx.
References CTF_int::algstrct::addid(), CTF_int::algstrct::addinv(), alloc(), alloc_ptr(), AS, CTF_int::tensor::calc_nvirt(), CTF_int::algstrct::cast_double(), cdealloc(), CTF_int::algstrct::copy(), copy_mapping(), CTF_int::tensor::data, CTF_int::tensor::edge_map, CTF_int::accumulatable::el_size, CTF_int::scaling::execute(), CTF_int::summation::execute(), CTF_int::tensor::is_home, CTF_int::tensor::is_mapped, CTF_int::tensor::is_sparse, MAX, CTF_int::algstrct::mulid(), CTF_int::tensor::name, CTF_int::tensor::nnz_blk, NS, CTF_int::tensor::order, CTF_int::tensor::profile, CTF::World::rank, scal_diag(), CTF_int::tensor::set_new_nnz_glb(), CTF_int::tensor::set_padding(), SH, CTF_int::tensor::size, CTF_int::tensor::sr, CTF::Timer::start(), CTF::Timer::stop(), CTF_int::summation::sum_tensors(), SY, CTF_int::tensor::sym, TAU_FSTART, TAU_FSTOP, CTF_int::tensor::topo, VPRINTF, CTF_int::tensor::wrld, and CTF_int::tensor::zero_out_padding().
Referenced by CTF_int::summation::estimate_time(), and get_len_ordering().
template void CTF_int::tensor::compare_elementwise< std::complex< double > > | ( | tensor * | A, |
tensor * | B | ||
) |
template void CTF_int::tensor::compare_elementwise< std::complex< float > > | ( | tensor * | A, |
tensor * | B | ||
) |
bool CTF_int::try_mkl_coo_to_csr | ( | int64_t | nz, |
int | nrow, | ||
char * | csr_vs, | ||
int * | csr_ja, | ||
int * | csr_ia, | ||
char const * | coo_vs, | ||
int const * | coo_rs, | ||
int const * | coo_cs, | ||
int | el_size | ||
) |
Definition at line 70 of file set.cxx.
Referenced by seq_coo_to_csr().
bool CTF_int::try_mkl_csr_to_coo | ( | int64_t | nz, |
int | nrow, | ||
char const * | csr_vs, | ||
int const * | csr_ja, | ||
int const * | csr_ia, | ||
char * | coo_vs, | ||
int * | coo_rs, | ||
int * | coo_cs, | ||
int | el_size | ||
) |
Definition at line 91 of file set.cxx.
Referenced by seq_csr_to_coo().
int CTF_int::untag_mem | ( | void * | ptr | ) |
stops tracking memory allocated by CTF, so user doesn't have to call free
[in,out] | ptr | pointer to set to address to free |
Definition at line 376 of file memcontrol.cxx.
References ABORT, ERROR, ctf.core::it, and SUCCESS.
void CTF_int::update_all_models | ( | MPI_Comm | comm | ) |
Definition at line 15 of file model.cxx.
References get_all_models().
Referenced by CTF_int::Model::dump_data(), sparse_mp3(), and train_all().
void CTF_int::wr_pairs_layout | ( | int | order, |
int | np, | ||
int64_t | inwrite, | ||
char const * | alpha, | ||
char const * | beta, | ||
char | rw, | ||
int | num_virt, | ||
int const * | sym, | ||
int const * | edge_len, | ||
int const * | padding, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int * | virt_phys_rank, | ||
int const * | bucket_lda, | ||
char * | wr_pairs_buf, | ||
char * | rw_data, | ||
CommData | glb_comm, | ||
algstrct const * | sr, | ||
bool | is_sparse, | ||
int64_t | nnz_loc, | ||
int64_t * | nnz_blk, | ||
char *& | pprs_new, | ||
int64_t & | nnz_loc_new | ||
) |
read or write pairs from / to tensor
[in] | order | tensor dimension |
[in] | np | number of processors |
[in] | inwrite | number of pairs |
[in] | alpha | multiplier for new value |
[in] | beta | multiplier for old value |
[in] | rw | whether to read 'r' or write 'w' |
[in] | num_virt | new total virtualization factor |
[in] | sym | symmetries of tensor |
[in] | edge_len | tensor edge lengths |
[in] | padding | padding of tensor |
[in] | phase | total phase in each dimension |
[in] | phys_phase | physical phase in each dimension |
[in] | virt_phase | virtualization in each dimension |
[in] | virt_phys_rank | virtualized rank in total phase |
[in] | bucket_lda | prefix sum of the processor grid |
[in,out] | wr_pairs_buf | pairs to read or write |
[in,out] | rw_data | data to read from or write to |
[in] | glb_comm | the global communicator |
[in] | sr | algstrct context defining values |
[in] | is_sparse | if true local data (vdata) is sparse, otherwise rest of params irrelevant |
[in] | nnz_loc | number of local elements in sparse tensor |
[in] | nnz_blk | number of local elements in each block |
[out] | pprs_new | new elements of the local sparse tensor (if rw=='w') |
[out] | nnz_loc_new | number of elements of the new local sparse tensor (if rw=='w') |
Definition at line 872 of file sparse_rw.cxx.
References CTF_int::algstrct::addid(), CTF_int::algstrct::addinv(), CTF_int::CommData::all_to_allv(), alloc_ptr(), AS, ASSERT, bucket_by_pe(), bucket_by_virt(), cdealloc(), CTF_int::CommData::cm, cvrt_idx(), DEBUG_PRINTF, CTF_int::accumulatable::el_size, CTF_int::PairIterator::k(), CTF_int::PairIterator::lower_bound(), CTF_int::CommData::np, ctf.core::np(), NS, pad_key(), CTF_int::algstrct::pair_alloc(), CTF_int::algstrct::pair_dealloc(), CTF_int::algstrct::pair_size(), CTF_int::PairIterator::ptr, CTF_int::CommData::rank, CTF_int::PairIterator::read(), readwrite(), SH, sign(), CTF_int::PairIterator::sort(), sp_read(), sp_write(), TAU_FSTART, TAU_FSTOP, CTF_int::PairIterator::write_key(), and CTF_int::PairIterator::write_val().
Referenced by padded_reshuffle(), and CTF_int::tensor::write().
void CTF_int::write_all_models | ( | std::string | file_name | ) |
Definition at line 42 of file model.cxx.
References get_all_models().
Referenced by CTF_int::Model::dump_data(), and train_all().
void CTF_int::write_data_mpiio | ( | CTF::World const * | dw, |
char const * | fpath, | ||
char * | datastr, | ||
int64_t | str_len | ||
) |
write sparse tensor data to file using MPI-I/O, from string with one entry per line (different entries on each process)
[in] | dw | world (comm) |
[in] | fpath | file name |
[in] | datastr | array of strings to write to file |
[in] | str_len | num chars in string |
Definition at line 214 of file graph_io_aux.cxx.
References CTF::World::comm.
void CTF_int::zero_padding | ( | int | order, |
int64_t | size, | ||
int | nvirt, | ||
int const * | edge_len, | ||
int const * | sym, | ||
int const * | padding, | ||
int const * | phase, | ||
int const * | phys_phase, | ||
int const * | virt_phase, | ||
int const * | cphase_rank, | ||
char * | vdata, | ||
algstrct const * | sr | ||
) |
sets to zero all values in padded region of tensor
brief pads a tensor param[in] order tensor dimension param[in] num_pair number of pairs param[in] edge_len tensor edge lengths param[in] sym symmetries of tensor param[in] padding padding of tensor (included in edge_len) param[in] phys_phase phase of the tensor on virtualized processor grid param[in] phase_rank physical phase rank multiplied by virtual phase param[in] virt_phase virtual phase in each dimension param[in] old_data array of input pairs param[out] new_pairs padded pairs param[out] new_size number of new padded pairs param[in] algstrct defines sizeo of each pair
[in] | order | tensor dimension |
[in] | size | number of values |
[in] | nvirt | total virtualization factor |
[in] | edge_len | tensor edge lengths with padding |
[in] | sym | symmetries of tensor |
[in] | padding | how much of the edge lengths is padding |
[in] | phase | phase of the tensor on virtualized processor grid |
[in] | phys_phase | phase of the tensor on virtualized processor grid |
[in] | virt_phase | virtual phase in each dimension |
[in] | cphase_rank | physical phase rank |
[in,out] | vdata | array of all local data |
[in] | sr | algstrct defines sizeo of each pair |
Definition at line 374 of file pad.cxx.
References CTF_int::algstrct::addid(), alloc_ptr(), AS, ASSERT, calc_idx_arr(), cdealloc(), ctf.core::dim, CTF_int::accumulatable::el_size, MIN, NS, CTF_int::algstrct::set(), SH, SY, TAU_FSTART, and TAU_FSTOP.
Referenced by CTF_int::tensor::zero_out_padding().
LinModel<3> CTF_int::allred_mdl(allred_mdl_init,"allred_mdl") |
Referenced by get_rand48().
LinModel<3> CTF_int::allred_mdl_cst(allred_mdl_cst_init,"allred_mdl_cst") |
Referenced by get_rand48().
double CTF_int::allred_mdl_cst_init = {-3.3754E-04, 2.1343E-04, 3.0801E-09} |
Definition at line 35 of file init_models.cxx.
Referenced by get_rand48().
double CTF_int::allred_mdl_init = {8.4416E-07, 6.8651E-06, 3.5845E-08} |
Definition at line 34 of file init_models.cxx.
Referenced by get_rand48().
LinModel<3> CTF_int::alltoall_mdl(alltoall_mdl_init,"alltoall_mdl") |
Referenced by get_rand48().
double CTF_int::alltoall_mdl_init = {1.0000E-06, 1.0000E-06, 5.0000E-10} |
Definition at line 30 of file init_models.cxx.
Referenced by get_rand48().
LinModel<3> CTF_int::alltoallv_mdl(alltoallv_mdl_init,"alltoallv_mdl") |
Referenced by get_rand48().
double CTF_int::alltoallv_mdl_init = {2.7437E-06, 2.2416E-05, 1.0469E-08} |
Definition at line 31 of file init_models.cxx.
Referenced by get_rand48().
LinModel<3> CTF_int::bcast_mdl(bcast_mdl_init,"bcast_mdl") |
Referenced by get_rand48().
double CTF_int::bcast_mdl_init = {1.5045E-06, 1.4485E-05, 3.2876E-09} |
Definition at line 36 of file init_models.cxx.
Referenced by get_rand48().
LinModel<2> CTF_int::blres_mdl(blres_mdl_init,"blres_mdl") |
Referenced by calc_cnt_displs().
double CTF_int::blres_mdl_init = {1.0598E-05, 7.2741E-08} |
Definition at line 29 of file init_models.cxx.
Referenced by calc_cnt_displs().
char* CTF_int::cpy_buffer[CPY_BUFFER_SIZE] |
Definition at line 105 of file memcontrol.cxx.
LinModel<3> CTF_int::csrred_mdl(csrred_mdl_init,"csrred_mdl") |
Referenced by CTF_int::algstrct::csr_reduce(), and CTF_int::algstrct::estimate_csr_red_time().
LinModel<3> CTF_int::csrred_mdl_cst(csrred_mdl_cst_init,"csrred_mdl_cst") |
double CTF_int::csrred_mdl_cst_init = {-1.8323E-04, 1.3076E-04, 2.8732E-09} |
Definition at line 39 of file init_models.cxx.
double CTF_int::csrred_mdl_init = {3.7005E-05, 1.1854E-04, 5.5165E-09} |
Definition at line 38 of file init_models.cxx.
LinModel<3> CTF_int::dgtog_res_mdl(dgtog_res_mdl_init,"dgtog_res_mdl") |
Referenced by dgtog_est_time(), and dgtog_reshuffle().
double CTF_int::dgtog_res_mdl_init = {2.9786E-05, 2.4335E-04, 1.0845E-08} |
Definition at line 28 of file init_models.cxx.
Definition at line 9 of file ring.cxx.
Referenced by get_double_ring().
double CTF_int::download_mdl_init[] |
Definition at line 5 of file ring.cxx.
Referenced by get_float_ring().
int CTF_int::instance_counter = 0 |
Definition at line 75 of file memcontrol.cxx.
Referenced by get_num_instances().
Definition at line 17 of file ring.cxx.
Referenced by get_int64_t_ring().
Definition at line 13 of file ring.cxx.
Referenced by get_int_ring().
LinModel<2> CTF_int::long_contig_transp_mdl(long_contig_transp_mdl_init,"long_contig_transp_mdl") |
Referenced by est_time_transp(), and nosym_transpose().
double CTF_int::long_contig_transp_mdl_init = {2.9158E-10, 3.0501E-09} |
Definition at line 25 of file init_models.cxx.
int CTF_int::max_threads |
Definition at line 74 of file memcontrol.cxx.
Referenced by cdealloc(), cdealloc_cond(), mem_create(), and mem_exit().
int64_t CTF_int::mem_size = 0 |
Definition at line 72 of file memcontrol.cxx.
Referenced by CTF::World::~World().
std::list<mem_loc> CTF_int::mem_stacks[MAX_THREADS] |
Definition at line 90 of file memcontrol.cxx.
int64_t CTF_int::mem_used[MAX_THREADS] |
Definition at line 76 of file memcontrol.cxx.
double CTF_int::memcap = 0.5 |
Definition at line 71 of file memcontrol.cxx.
Referenced by proc_bytes_available().
MPI_Datatype CTF_int::MPI_CTF_BOOL = MPI_CXX_BOOL |
Definition at line 14 of file set.cxx.
Referenced by get_default_mdtype(), and get_default_mdtype< bool >().
MPI_Datatype CTF_int::MPI_CTF_DOUBLE_COMPLEX = MPI_CXX_DOUBLE_COMPLEX |
Definition at line 15 of file set.cxx.
Referenced by cvrt_idx(), get_default_mdtype(), get_default_mdtype< std::complex< double > >(), and get_mpi_dt().
MPI_Datatype CTF_int::MPI_CTF_LONG_DOUBLE_COMPLEX = MPI_CXX_LONG_DOUBLE_COMPLEX |
Definition at line 16 of file set.cxx.
Referenced by get_default_mdtype(), and get_default_mdtype< std::complex< long double > >().
std::list<mem_loc> CTF_int::mst |
Definition at line 102 of file memcontrol.cxx.
Referenced by contract_mst(), and get_mst().
void* CTF_int::mst_buffer = 0 |
Definition at line 94 of file memcontrol.cxx.
int64_t CTF_int::mst_buffer_ptr = 0 |
Definition at line 100 of file memcontrol.cxx.
Referenced by mem_exit(), and mst_alloc_ptr().
int64_t CTF_int::mst_buffer_size = 0 |
Definition at line 96 of file memcontrol.cxx.
int64_t CTF_int::mst_buffer_used = 0 |
Definition at line 98 of file memcontrol.cxx.
Referenced by mst_alloc_ptr().
LinModel<2> CTF_int::non_contig_transp_mdl(non_contig_transp_mdl_init,"non_contig_transp_mdl") |
Referenced by est_time_transp(), and nosym_transpose().
double CTF_int::non_contig_transp_mdl_init = {4.0475E-08, 4.0463E-09} |
Definition at line 27 of file init_models.cxx.
LinModel<2> CTF_int::pin_keys_mdl(pin_keys_mdl_init,"pin_keys_mdl") |
Referenced by CTF_int::spctr_pin_keys::spctr_pin_keys().
double CTF_int::pin_keys_mdl_init = {3.1189E-09, 6.6717E-08} |
Definition at line 18 of file init_models.cxx.
Referenced by CTF_int::spctr_pin_keys::spctr_pin_keys().
LinModel<3> CTF_int::red_mdl(red_mdl_init,"red_mdl") |
Referenced by get_rand48().
LinModel<3> CTF_int::red_mdl_cst(red_mdl_cst_init,"red_mdl_cst") |
Referenced by get_rand48().
double CTF_int::red_mdl_cst_init = {5.7302E-07, 4.7347E-06, 6.0191E-10} |
Definition at line 33 of file init_models.cxx.
Referenced by get_rand48().
double CTF_int::red_mdl_init = {6.2935E-07, 4.6276E-06, 9.2245E-10} |
Definition at line 32 of file init_models.cxx.
Referenced by get_rand48().
std::mersenne_twister_engine<std::uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9, 29, 0x5555555555555555, 17, 0x71d67fffeda60000, 37, 0xfff7eee000000000, 43, 6364136223846793005> CTF_int::rng |
Definition at line 20 of file common.cxx.
Referenced by get_rand48(), and init_rng().
std::set< grid_wrapper > CTF_int::scalapack_grids |
index for ScaLAPACK processor grids
Definition at line 27 of file world.cxx.
Referenced by CTF::Matrix< dtype >::get_desc(), and CTF::World::~World().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_cst(seq_tsr_ctr_mdl_cst_init,"seq_tsr_ctr_mdl_cst") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_cst_init = {5.1626E-06, -6.3215E-11, 3.9638E-09} |
Definition at line 19 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_cst_inr(seq_tsr_ctr_mdl_cst_inr_init,"seq_tsr_ctr_mdl_cst_inr") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_cst_inr_init = {1.3863E-04, 2.0119E-10, 9.8820E-09} |
Definition at line 23 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_cst_off(seq_tsr_ctr_mdl_cst_off_init,"seq_tsr_ctr_mdl_cst_off") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_cst_off_init = {8.4844E-04, -5.9246E-11, 3.5247E-10} |
Definition at line 24 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_inr(seq_tsr_ctr_mdl_inr_init,"seq_tsr_ctr_mdl_inr") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_inr_init = {2.0647E-08, 1.9721E-10, 2.9948E-11} |
Definition at line 21 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_off(seq_tsr_ctr_mdl_off_init,"seq_tsr_ctr_mdl_off") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_off_init = {6.2925E-05, 1.7449E-11, 1.7211E-12} |
Definition at line 22 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_ctr_mdl_ref(seq_tsr_ctr_mdl_ref_init,"seq_tsr_ctr_mdl_ref") |
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
double CTF_int::seq_tsr_ctr_mdl_ref_init = {4.9138E-08, 5.8290E-10, 4.8575E-11} |
Definition at line 20 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_ctr::mem_fp().
LinModel<3> CTF_int::seq_tsr_spctr_cst_k0(seq_tsr_spctr_cst_k0_init,"seq_tsr_spctr_cst_k0") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_k0_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 8 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_k1(seq_tsr_spctr_cst_k1_init,"seq_tsr_spctr_cst_k1") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_k1_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 9 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_k2(seq_tsr_spctr_cst_k2_init,"seq_tsr_spctr_cst_k2") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_k2_init = {-8.8459E-08, 8.1207E-10, -2.8486E-12} |
Definition at line 10 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_k3(seq_tsr_spctr_cst_k3_init,"seq_tsr_spctr_cst_k3") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_k3_init = {1.8504E-08, 2.9154E-11, 2.1973E-11} |
Definition at line 11 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_k4(seq_tsr_spctr_cst_k4_init,"seq_tsr_spctr_cst_k4") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_k4_init = {2.0948E-05, 1.2294E-09, 8.0037E-10} |
Definition at line 12 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_off_k0(seq_tsr_spctr_cst_off_k0_init,"seq_tsr_spctr_cst_off_k0") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_off_k0_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 2 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_off_k1(seq_tsr_spctr_cst_off_k1_init,"seq_tsr_spctr_cst_off_k1") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_off_k1_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 3 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_cst_off_k2(seq_tsr_spctr_cst_off_k2_init,"seq_tsr_spctr_cst_off_k2") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_cst_off_k2_init = {-2.1996E-04, 3.1883E-09, 3.8743E-11} |
Definition at line 4 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_k0(seq_tsr_spctr_k0_init,"seq_tsr_spctr_k0") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_k0_init = {2.2620E-08, -5.7494E-10, 2.2146E-09} |
Definition at line 13 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_k1(seq_tsr_spctr_k1_init,"seq_tsr_spctr_k1") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_k1_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 14 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_k2(seq_tsr_spctr_k2_init,"seq_tsr_spctr_k2") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_k2_init = {3.0917E-08, 5.2181E-11, 4.1634E-12} |
Definition at line 15 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_k3(seq_tsr_spctr_k3_init,"seq_tsr_spctr_k3") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_k3_init = {7.2456E-08, 1.5128E-10, -1.5528E-12} |
Definition at line 16 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_k4(seq_tsr_spctr_k4_init,"seq_tsr_spctr_k4") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_k4_init = {1.6880E-07, 4.9411E-10, 9.2847E-13} |
Definition at line 17 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_off_k0(seq_tsr_spctr_off_k0_init,"seq_tsr_spctr_off_k0") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_off_k0_init = {8.6970E-06, 4.5598E-11, 1.1544E-09} |
Definition at line 5 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_off_k1(seq_tsr_spctr_off_k1_init,"seq_tsr_spctr_off_k1") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_off_k1_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 6 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<3> CTF_int::seq_tsr_spctr_off_k2(seq_tsr_spctr_off_k2_init,"seq_tsr_spctr_off_k2") |
Referenced by CTF_int::seq_tsr_spctr::est_membw().
double CTF_int::seq_tsr_spctr_off_k2_init = {5.3745E-06, 3.6464E-08, 2.2334E-10} |
Definition at line 7 of file init_models.cxx.
Referenced by CTF_int::seq_tsr_spctr::est_membw().
LinModel<2> CTF_int::shrt_contig_transp_mdl(shrt_contig_transp_mdl_init,"shrt_contig_transp_mdl") |
Referenced by est_time_transp(), and nosym_transpose().
double CTF_int::shrt_contig_transp_mdl_init = {1.3427E-08, 4.3168E-09} |
Definition at line 26 of file init_models.cxx.
LinModel<3> CTF_int::spredist_mdl(spredist_mdl_init,"spredist_mdl") |
Referenced by CTF_int::tensor::redistribute(), and spredist_est_time().
double CTF_int::spredist_mdl_init = {1.2744E-04, 1.0278E-03, 7.6837E-08} |
Definition at line 37 of file init_models.cxx.
int64_t CTF_int::tot_mem_available = -1 |
Definition at line 78 of file memcontrol.cxx.
Referenced by proc_bytes_total().
int64_t CTF_int::tot_mem_used |
Definition at line 77 of file memcontrol.cxx.
Referenced by main(), and proc_bytes_used().
int64_t CTF_int::total_flop_count = 0 |
Definition at line 171 of file common.cxx.
Referenced by get_flops().
double CTF_int::upload_mdl_init[] |