MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magma_morse.h
Go to the documentation of this file.
1 
17 /***************************************************************************/
20 #ifndef _MAGMA_MORSE_H_
21 #define _MAGMA_MORSE_H_
22 
23 #if defined(MORSE_USE_CUDA)
24 #include <magma.h>
25 #endif
26 #include <plasma.h>
27 
28 typedef int MAGMA_enum;
29 typedef int MAGMA_bool;
30 
31 #if !defined(__STARPU_DATA_H__)
32 struct starpu_data_state_t;
33 typedef struct starpu_data_state_t * starpu_data_handle;
34 #endif
35 
36 typedef struct magma_desc_s {
37  PLASMA_desc desc;
39  union {
41  } schedopt;
42 } magma_desc_t;
43 
44 struct magma_context_s;
46 
50 typedef struct magma_request_s {
51  MAGMA_enum status; // MAGMA_SUCCESS or appropriate error code
53 
54 #define MAGMA_REQUEST_INITIALIZER {MAGMA_SUCCESS}
55 
61 typedef struct magma_sequence_s {
62  MAGMA_bool status; /* MAGMA_SUCCESS or appropriate error code */
63  magma_request_t *request; /* failed request */
64  union {
65  Quark_Sequence *quark_sequence; /* QUARK sequence associated with MAGMA sequence */
66  } schedopt;
68 
69 #include "morse.h"
70 
74 #define MAGMA_FALSE 0
75 #define MAGMA_TRUE 1
76 
77 #define MAGMA_CPU ((1ULL)<<1)
78 #define MAGMA_CUDA ((1ULL)<<3)
79 
83 #define MAGMA_WARNINGS 1
84 #define MAGMA_ERRORS 2
85 #define MAGMA_AUTOTUNING 3
86 #define MAGMA_PROFILING_MODE 4
87 #define MAGMA_PARALLEL_MODE 5
88 
92 #define MAGMA_CONCURRENCY 1
93 #define MAGMA_TILE_SIZE 2
94 #define MAGMA_INNER_BLOCK_SIZE 3
95 #define MAGMA_HOUSEHOLDER_MODE 5
96 #define MAGMA_HOUSEHOLDER_SIZE 6
97 #define MAGMA_TRANSLATION_MODE 7
98 
99 #define MAGMA_FLAT_HOUSEHOLDER 1
100 #define MAGMA_TREE_HOUSEHOLDER 2
101 
102 #define MAGMA_INPLACE 1
103 #define MAGMA_OUTOFPLACE 2
104 
108 #define MAGMA_SUCCESS 0
109 #define MAGMA_ERR_NOT_INITIALIZED -101
110 #define MAGMA_ERR_REINITIALIZED -102
111 #define MAGMA_ERR_NOT_SUPPORTED -103
112 #define MAGMA_ERR_ILLEGAL_VALUE -104
113 #define MAGMA_ERR_NOT_FOUND -105
114 #define MAGMA_ERR_OUT_OF_RESOURCES -106
115 #define MAGMA_ERR_INTERNAL_LIMIT -107
116 #define MAGMA_ERR_UNALLOCATED -108
117 #define MAGMA_ERR_FILESYSTEM -109
118 #define MAGMA_ERR_UNEXPECTED -110
119 #define MAGMA_ERR_SEQUENCE_FLUSHED -111
120 
121 int MAGMA_Init(int nworkers, int ncudas);
122 int MAGMA_InitPar(int nworkers, int ncudas, int nthreads_per_worker);
123 int MAGMA_Finalize(void);
124 
125 /* Descriptor */
126 int MAGMA_Desc_Create(magma_desc_t **desc, void *mat, MAGMA_enum dtyp,
127  int mb, int nb, int bsiz, int lm, int ln,
128  int i, int j, int m, int n);
129 int MAGMA_Desc_Destroy(magma_desc_t **desc);
132 
133 /*int MAGMA_Dealloc_Handle_Tile(magma_desc_t **desc);*/
134 
135 int MAGMA_Enable (MAGMA_enum option);
136 int MAGMA_Disable(MAGMA_enum option);
137 int MAGMA_Set(MAGMA_enum param, int value);
138 int MAGMA_Get(MAGMA_enum param, int *value);
139 
140 /*void MAGMA_profile_display(void);*/
141 
142 #include "magma_morse_z.h"
143 #include "magma_morse_c.h"
144 #include "magma_morse_d.h"
145 #include "magma_morse_s.h"
146 
147 #endif /* __MAGMA_MORSE_H__ */