3 #ifndef __SPCTR_TSR_H__ 4 #define __SPCTR_TSR_H__ 29 virtual double est_time_fp(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C){
return 0.0; }
39 virtual double est_time_rec(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C){
return 0.0; }
45 virtual int64_t
spmem_rec(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C){
return 0; };
48 void run(
char * A,
char * B,
char * C) { printf(
"CTF ERROR: PROVIDE SPARSITY ARGS TO RUN\n"); assert(0); };
49 virtual void run(
char * A,
int nblk_A, int64_t
const * size_blk_A,
50 char * B,
int nblk_B, int64_t
const * size_blk_B,
51 char * C,
int nblk_C, int64_t * size_blk_C,
84 void run(
char * A,
int nblk_A, int64_t
const * size_blk_A,
85 char * B,
int nblk_B, int64_t
const * size_blk_B,
86 char * C,
int nblk_C, int64_t * size_blk_C,
91 double est_fp(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
92 int64_t est_spmem_rec(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
93 uint64_t est_membw(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
94 double est_time_fp(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
95 double est_time_rec(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
109 iparam const * inner_params,
110 int * virt_blk_len_A,
111 int * virt_blk_len_B,
112 int * virt_blk_len_C,
137 void run(
char * A,
int nblk_A, int64_t
const * size_blk_A,
138 char * B,
int nblk_B, int64_t
const * size_blk_B,
139 char * C,
int nblk_C, int64_t * size_blk_C,
142 int64_t
spmem_rec(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
144 double est_time_rec(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
175 void run(
char * A,
int nblk_A, int64_t
const * size_blk_A,
176 char * B,
int nblk_B, int64_t
const * size_blk_B,
177 char * C,
int nblk_C, int64_t * size_blk_C,
180 int64_t spmem_fp(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
181 int64_t
spmem_rec(
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
184 double est_time_fp(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
185 double est_time_rec(
int nlyr,
double nnz_frac_A,
double nnz_frac_B,
double nnz_frac_C);
bivar_function const * func
virtual int64_t spmem_rec(double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the number of bytes need by each processor in this kernel and its recursive calls ...
virtual void run(char *A, int nblk_A, int64_t const *size_blk_A, char *B, int nblk_B, int64_t const *size_blk_B, char *C, int nblk_C, int64_t *size_blk_C, char *&new_C)
virtual double est_time_rec(int nlyr, double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the execution time this kernel and its recursive calls are estimated to take ...
untyped internal class for triply-typed bivariate function
double est_time_fp(int nlyr)
class for execution distributed contraction of tensors
int cdealloc(void *ptr)
free abstraction
virtual double est_time_fp(int nlyr, double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the execution time the local part this kernel is estimated to take
double est_time_rec(int nlyr)
void run(char *A, char *B, char *C)