Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
nosym_transp.h
Go to the documentation of this file.
1 /*Copyright (c) 2011, Edgar Solomonik, all rights reserved.*/
2 
3 #ifndef __NOSYM_TRANSP_H__
4 #define __NOSYM_TRANSP_H__
5 
6 #include "../tensor/algstrct.h"
7 
8 namespace CTF_int {
9  class tensor;
10 
21  void nosym_transpose(int order,
22  int const * new_order,
23  int const * edge_len,
24  char * data,
25  int dir,
26  algstrct const * sr);
37  double est_time_transp(int order,
38  int const * new_order,
39  int const * edge_len,
40  int dir,
41  algstrct const * sr);
42 
43  void nosym_transpose(tensor * A,
44  int all_fdim_A,
45  int const * all_flen_A,
46  int const * new_order,
47  int dir);
61  void nosym_transpose(int order,
62  int const * new_order,
63  int const * edge_len,
64  char const * data,
65  int dir,
66  int max_ntd,
67  char ** tswap_data,
68  int64_t * chunk_size,
69  algstrct const * sr);
70 
77  bool hptt_is_applicable(int order, int const * new_order, int elementSize);
78 
87  void nosym_transpose_hptt(int order,
88  int const * edge_len,
89  int dir,
90  tensor * &A);
91 }
92 #endif
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)
bool hptt_is_applicable(int order, int const *new_order, int elementSize)
Checks if the HPTT library is applicable.
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 ...
void nosym_transpose(tensor *A, int all_fdim_A, int const *all_flen_A, int const *new_order, int dir)