MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
zlocality.c
Go to the documentation of this file.
1 
17 #include "morse_starpu.h"
18 
19 void morse_zlocality_allrestrict( uint32_t where )
20 {
21 #ifdef MORSE_USE_CUDA
22  cl_zgemm_restrict_where( where );
23  cl_ztrsm_restrict_where( where );
24  /* cl_ztrmm_restrict_where( where ); */
25  /* cl_zhemm_restrict_where( where ); */
26  /* cl_zsymm_restrict_where( where ); */
27  cl_zherk_restrict_where( where );
28  /* cl_zsyrk_restrict_where( where ); */
29  /* cl_zher2k_restrict_where( where ); */
30  /* cl_zsyr2k_restrict_where( where ); */
31 
32  cl_zlacpy_restrict_where( where );
33  /* cl_zplghe_restrict_where( where ); */
34  /* cl_zplgsy_restrict_where( where ); */
35  /* cl_zplrnt_restrict_where( where ); */
36  /* cl_zlange_restrict_where( where ); */
37  /* cl_zlanhe_restrict_where( where ); */
38  /* cl_zlansy_restrict_where( where ); */
39 
40  cl_zpotrf_restrict_where( where );
41 
42  cl_zgetrl_restrict_where( where );
43  cl_zgessm_restrict_where( where );
44  cl_ztstrf_restrict_where( where );
45  cl_zssssm_restrict_where( where );
46 
47  /* cl_zgeqrt_restrict_where( where ); */
48  /* cl_zunmqr_restrict_where( where ); */
49  /* cl_ztsqrt_restrict_where( where ); */
50  /* cl_ztsmqr_restrict_where( where ); */
51  /* cl_zttqrt_restrict_where( where ); */
52  /* cl_zttmqr_restrict_where( where ); */
53 
54  /* cl_zgelqt_restrict_where( where ); */
55  /* cl_zunmlq_restrict_where( where ); */
56  /* cl_ztslqt_restrict_where( where ); */
57  /* cl_ztsmlq_restrict_where( where ); */
58  /* cl_zttlqt_restrict_where( where ); */
59  /* cl_zttmlq_restrict_where( where ); */
60 #endif
61 }
62 
63 void morse_zlocality_onerestrict( morse_kernel_t kernel, uint32_t where )
64 {
65 #ifdef MORSE_USE_CUDA
66  switch( kernel ) {
67  case MORSE_GEMM: cl_zgemm_restrict_where( where ); break;
68  case MORSE_TRSM: cl_ztrsm_restrict_where( where ); break;
69  /* case MORSE_TRMM: cl_ztrmm_restrict_where( where ); break; */
70  /* case MORSE_HEMM: cl_zhemm_restrict_where( where ); break; */
71  /* case MORSE_SYMM: cl_zsymm_restrict_where( where ); break; */
72  case MORSE_HERK: cl_zherk_restrict_where( where ); break;
73  /* case MORSE_SYRK: cl_zsyrk_restrict_where( where ); break; */
74  /* case MORSE_HER2K: cl_zher2k_restrict_where( where ); break; */
75  /* case MORSE_SYR2K: cl_zsyr2k_restrict_where( where ); break; */
76 
77  case MORSE_LACPY: cl_zlacpy_restrict_where( where ); break;
78  /* case MORSE_PLGHE: cl_zplghe_restrict_where( where ); break; */
79  /* case MORSE_PLGSY: cl_zplgsy_restrict_where( where ); break; */
80  /* case MORSE_PLRNT: cl_zplrnt_restrict_where( where ); break; */
81  /* case MORSE_LANGE: cl_zlange_restrict_where( where ); break; */
82  /* case MORSE_LANHE: cl_zlanhe_restrict_where( where ); break; */
83  /* case MORSE_LANSY: cl_zlansy_restrict_where( where ); break; */
84 
85  case MORSE_POTRF: cl_zpotrf_restrict_where( where ); break;
86 
87  case MORSE_GETRL: cl_zgetrl_restrict_where( where ); break;
88  case MORSE_GESSM: cl_zgessm_restrict_where( where ); break;
89  case MORSE_TSTRF: cl_ztstrf_restrict_where( where ); break;
90  case MORSE_SSSSM: cl_zssssm_restrict_where( where ); break;
91 
92  /* case MORSE_GEQRT: cl_zgeqrt_restrict_where( where ); break; */
93  /* case MORSE_UNMQR: cl_zunmqr_restrict_where( where ); break; */
94  /* case MORSE_TSQRT: cl_ztsqrt_restrict_where( where ); break; */
95  /* case MORSE_TSMQR: cl_ztsmqr_restrict_where( where ); break; */
96  /* case MORSE_TTQRT: cl_zttqrt_restrict_where( where ); break; */
97  /* case MORSE_TTMQR: cl_zttmqr_restrict_where( where ); break; */
98 
99  /* case MORSE_GELQT: cl_zgelqt_restrict_where( where ); break; */
100  /* case MORSE_UNMLQ: cl_zunmlq_restrict_where( where ); break; */
101  /* case MORSE_TSLQT: cl_ztslqt_restrict_where( where ); break; */
102  /* case MORSE_TSMLQ: cl_ztsmlq_restrict_where( where ); break; */
103  /* case MORSE_TTLQT: cl_zttlqt_restrict_where( where ); break; */
104  /* case MORSE_TTMLQ: cl_zttmlq_restrict_where( where ); break; */
105  default:
106  return;
107  }
108 #endif
109 }
110 
112 {
113 #ifdef MORSE_USE_CUDA
114  cl_zgemm_restore_where();
115  cl_ztrsm_restore_where();
116  /* cl_ztrmm_restore_where(); */
117  /* cl_zhemm_restore_where(); */
118  /* cl_zsymm_restore_where(); */
119  cl_zherk_restore_where();
120  /* cl_zsyrk_restore_where(); */
121  /* cl_zher2k_restore_where(); */
122  /* cl_zsyr2k_restore_where(); */
123 
124  cl_zlacpy_restore_where();
125  /* cl_zplghe_restore_where(); */
126  /* cl_zplgsy_restore_where(); */
127  /* cl_zplrnt_restore_where(); */
128  /* cl_zlange_restore_where(); */
129  /* cl_zlanhe_restore_where(); */
130  /* cl_zlansy_restore_where(); */
131 
132  cl_zpotrf_restore_where();
133 
134  cl_zgetrl_restore_where();
135  cl_zgessm_restore_where();
136  cl_ztstrf_restore_where();
137  cl_zssssm_restore_where();
138 
139  /* cl_zgeqrt_restore_where(); */
140  /* cl_zunmqr_restore_where(); */
141  /* cl_ztsqrt_restore_where(); */
142  /* cl_ztsmqr_restore_where(); */
143  /* cl_zttqrt_restore_where(); */
144  /* cl_zttmqr_restore_where(); */
145 
146  /* cl_zgelqt_restore_where(); */
147  /* cl_zunmlq_restore_where(); */
148  /* cl_ztslqt_restore_where(); */
149  /* cl_ztsmlq_restore_where(); */
150  /* cl_zttlqt_restore_where(); */
151  /* cl_zttmlq_restore_where(); */
152 #endif
153 }
154 
156 {
157 #ifdef MORSE_USE_CUDA
158  switch( kernel ) {
159  case MORSE_GEMM: cl_zgemm_restore_where(); break;
160  case MORSE_TRSM: cl_ztrsm_restore_where(); break;
161  /* case MORSE_TRMM: cl_ztrmm_restore_where(); break; */
162  /* case MORSE_HEMM: cl_zhemm_restore_where(); break; */
163  /* case MORSE_SYMM: cl_zsymm_restore_where(); break; */
164  case MORSE_HERK: cl_zherk_restore_where(); break;
165  /* case MORSE_SYRK: cl_zsyrk_restore_where(); break; */
166  /* case MORSE_HER2K: cl_zher2k_restore_where(); break; */
167  /* case MORSE_SYR2K: cl_zsyr2k_restore_where(); break; */
168 
169  case MORSE_LACPY: cl_zlacpy_restore_where(); break;
170  /* case MORSE_PLGHE: cl_zplghe_restore_where(); break; */
171  /* case MORSE_PLGSY: cl_zplgsy_restore_where(); break; */
172  /* case MORSE_PLRNT: cl_zplrnt_restore_where(); break; */
173  /* case MORSE_LANGE: cl_zlange_restore_where(); break; */
174  /* case MORSE_LANHE: cl_zlanhe_restore_where(); break; */
175  /* case MORSE_LANSY: cl_zlansy_restore_where(); break; */
176 
177  case MORSE_POTRF: cl_zpotrf_restore_where(); break;
178 
179  case MORSE_GETRL: cl_zgetrl_restore_where(); break;
180  case MORSE_GESSM: cl_zgessm_restore_where(); break;
181  case MORSE_TSTRF: cl_ztstrf_restore_where(); break;
182  case MORSE_SSSSM: cl_zssssm_restore_where(); break;
183 
184  /* case MORSE_GEQRT: cl_zgeqrt_restore_where(); break; */
185  /* case MORSE_UNMQR: cl_zunmqr_restore_where(); break; */
186  /* case MORSE_TSQRT: cl_ztsqrt_restore_where(); break; */
187  /* case MORSE_TSMQR: cl_ztsmqr_restore_where(); break; */
188  /* case MORSE_TTQRT: cl_zttqrt_restore_where(); break; */
189  /* case MORSE_TTMQR: cl_zttmqr_restore_where(); break; */
190 
191  /* case MORSE_GELQT: cl_zgelqt_restore_where(); break; */
192  /* case MORSE_UNMLQ: cl_zunmlq_restore_where(); break; */
193  /* case MORSE_TSLQT: cl_ztslqt_restore_where(); break; */
194  /* case MORSE_TSMLQ: cl_ztsmlq_restore_where(); break; */
195  /* case MORSE_TTLQT: cl_zttlqt_restore_where(); break; */
196  /* case MORSE_TTMLQ: cl_zttmlq_restore_where(); break; */
197  default:
198  return;
199  }
200 #endif
201 }
202