00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef FLASH_QUEUE_MACRO_DEFS_H
00034 #define FLASH_QUEUE_MACRO_DEFS_H
00035
00036
00037 #ifdef FLA_ENABLE_SUPERMATRIX
00038
00039
00040 #define FLASH_OBJ_PTR_ID( A ) ( A ).base->id
00041
00042
00043 #define FLASH_QUEUE_AFFINITY_NONE 0
00044 #define FLASH_QUEUE_AFFINITY_2D_BLOCK_CYCLIC 1
00045 #define FLASH_QUEUE_AFFINITY_ROUND_ROBIN 2
00046
00047
00048
00049
00050 #define ENQUEUE_FLASH_LU_piv( A, p, cntl ) \
00051 FLASH_Queue_push( (void *) FLA_LU_piv_task, \
00052 (void *) cntl, \
00053 "LU ", \
00054 0, 1, 0, 1, \
00055 p, A )
00056
00057 #define ENQUEUE_FLASH_LU_piv_copy( A, p, U, cntl ) \
00058 FLASH_Queue_push( (void *) FLA_LU_piv_copy_task, \
00059 (void *) cntl, \
00060 "LU ", \
00061 0, 1, 0, 2, \
00062 p, A, U )
00063
00064 #define ENQUEUE_FLASH_Trsm_piv( A, C, p, cntl ) \
00065 FLASH_Queue_push( (void *) FLA_Trsm_piv_task, \
00066 (void *) cntl, \
00067 "Trsm ", \
00068 0, 1, 1, 1, \
00069 p, A, C )
00070
00071 #define ENQUEUE_FLASH_SA_LU( U, D, p, L, nb_alg, cntl ) \
00072 FLASH_Queue_push( (void *) FLA_SA_LU_task, \
00073 (void *) cntl, \
00074 "SA_LU", \
00075 1, 2, 0, 2, \
00076 nb_alg, \
00077 p, L, D, U )
00078
00079 #define ENQUEUE_FLASH_SA_FS( L, D, p, C, E, nb_alg, cntl ) \
00080 FLASH_Queue_push( (void *) FLA_SA_FS_task, \
00081 (void *) cntl, \
00082 "SA_FS", \
00083 1, 2, 1, 2, \
00084 nb_alg, \
00085 L, p, D, E, C )
00086
00087 #define ENQUEUE_FLASH_LU_nopiv( A, cntl ) \
00088 FLASH_Queue_push( (void *) FLA_LU_nopiv_task, \
00089 (void *) cntl, \
00090 "LU ", \
00091 0, 0, 0, 1, \
00092 A )
00093
00094 #define ENQUEUE_FLASH_Trinv( uplo, diag, A, cntl ) \
00095 FLASH_Queue_push( (void *) FLA_Trinv_task, \
00096 (void *) cntl, \
00097 "Trinv", \
00098 2, 0, 0, 1, \
00099 uplo, diag, \
00100 A )
00101
00102 #define ENQUEUE_FLASH_Ttmm( uplo, A, cntl ) \
00103 FLASH_Queue_push( (void *) FLA_Ttmm_task, \
00104 (void *) cntl, \
00105 "Ttmm ", \
00106 1, 0, 0, 1, \
00107 uplo, \
00108 A )
00109
00110 #define ENQUEUE_FLASH_Chol( uplo, A, cntl ) \
00111 FLASH_Queue_push( (void *) FLA_Chol_task, \
00112 (void *) cntl, \
00113 "Chol ", \
00114 1, 0, 0, 1, \
00115 uplo, \
00116 A )
00117
00118 #define ENQUEUE_FLASH_Sylv( transA, transB, isgn, A, B, C, scale, cntl ) \
00119 FLASH_Queue_push( (void *) FLA_Sylv_task, \
00120 (void *) cntl, \
00121 "Sylv ", \
00122 2, 2, 2, 1, \
00123 transA, transB, \
00124 isgn, scale, \
00125 A, B, C )
00126
00127 #define ENQUEUE_FLASH_QR_UT( A, T, cntl ) \
00128 FLASH_Queue_push( (void *) FLA_QR_UT_task, \
00129 (void *) cntl, \
00130 "QR ", \
00131 0, 1, 0, 1, \
00132 T, A )
00133
00134 #define ENQUEUE_FLASH_QR_UT_copy( A, T, U, cntl ) \
00135 FLASH_Queue_push( (void *) FLA_QR_UT_copy_task, \
00136 (void *) cntl, \
00137 "QR ", \
00138 0, 1, 0, 2, \
00139 T, A, U )
00140
00141 #define ENQUEUE_FLASH_QR_UT_UD( B, D, T, cntl ) \
00142 FLASH_Queue_push( (void *) FLA_QR_UT_UD_task, \
00143 (void *) cntl, \
00144 "QR_ud", \
00145 0, 1, 0, 2, \
00146 T, D, B )
00147
00148 #define ENQUEUE_FLASH_Apply_Q_UT( side, trans, storev, A, T, W, B, cntl ) \
00149 FLASH_Queue_push( (void *) FLA_Apply_Q_UT_task, \
00150 (void *) cntl, \
00151 "Ap_Q ", \
00152 3, 1, 1, 2, \
00153 side, trans, storev, \
00154 T, A, B, W )
00155
00156 #define ENQUEUE_FLASH_Apply_Q_UT_UD( side, trans, storev, D, T, W, C, E, cntl ) \
00157 FLASH_Queue_push( (void *) FLA_Apply_Q_UT_UD_task, \
00158 (void *) cntl, \
00159 "Ap_ud", \
00160 3, 1, 1, 3, \
00161 side, trans, storev, \
00162 T, D, E, C, W )
00163
00164
00165
00166 #define ENQUEUE_FLASH_Gemm( transA, transB, alpha, A, B, beta, C, cntl ) \
00167 FLASH_Queue_push( (void *) FLA_Gemm_task, \
00168 (void *) cntl, \
00169 "Gemm ", \
00170 2, 2, 2, 1, \
00171 transA, transB, \
00172 alpha, beta, \
00173 A, B, C )
00174
00175 #define ENQUEUE_FLASH_Hemm( side, uplo, alpha, A, B, beta, C, cntl ) \
00176 FLASH_Queue_push( (void *) FLA_Hemm_task, \
00177 (void *) cntl, \
00178 "Hemm ", \
00179 2, 2, 2, 1, \
00180 side, uplo, \
00181 alpha, beta, \
00182 A, B, C )
00183
00184 #define ENQUEUE_FLASH_Herk( uplo, transA, alpha, A, beta, C, cntl ) \
00185 FLASH_Queue_push( (void *) FLA_Herk_task, \
00186 (void *) cntl, \
00187 "Herk ", \
00188 2, 2, 1, 1, \
00189 uplo, transA, \
00190 alpha, beta, \
00191 A, C )
00192
00193 #define ENQUEUE_FLASH_Her2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
00194 FLASH_Queue_push( (void *) FLA_Her2k_task, \
00195 (void *) cntl, \
00196 "Her2k", \
00197 2, 2, 2, 1, \
00198 uplo, transA, \
00199 alpha, beta, \
00200 A, B, C )
00201
00202 #define ENQUEUE_FLASH_Symm( side, uplo, alpha, A, B, beta, C, cntl ) \
00203 FLASH_Queue_push( (void *) FLA_Symm_task, \
00204 (void *) cntl, \
00205 "Symm ", \
00206 2, 2, 2, 1, \
00207 side, uplo, \
00208 alpha, beta, \
00209 A, B, C )
00210
00211 #define ENQUEUE_FLASH_Syrk( uplo, transA, alpha, A, beta, C, cntl ) \
00212 FLASH_Queue_push( (void *) FLA_Syrk_task, \
00213 (void *) cntl, \
00214 "Syrk ", \
00215 2, 2, 1, 1, \
00216 uplo, transA, \
00217 alpha, beta, \
00218 A, C )
00219
00220 #define ENQUEUE_FLASH_Syr2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
00221 FLASH_Queue_push( (void *) FLA_Syr2k_task, \
00222 (void *) cntl, \
00223 "Syr2k", \
00224 2, 2, 2, 1, \
00225 uplo, transA, \
00226 alpha, beta, \
00227 A, B, C )
00228
00229 #define ENQUEUE_FLASH_Trmm( side, uplo, trans, diag, alpha, A, C, cntl ) \
00230 FLASH_Queue_push( (void *) FLA_Trmm_task, \
00231 (void *) cntl, \
00232 "Trmm ", \
00233 4, 1, 1, 1, \
00234 side, uplo, trans, diag, \
00235 alpha, \
00236 A, C )
00237
00238 #define ENQUEUE_FLASH_Trsm( side, uplo, trans, diag, alpha, A, C, cntl ) \
00239 FLASH_Queue_push( (void *) FLA_Trsm_task, \
00240 (void *) cntl, \
00241 "Trsm ", \
00242 4, 1, 1, 1, \
00243 side, uplo, trans, diag, \
00244 alpha, \
00245 A, C )
00246
00247
00248
00249 #define ENQUEUE_FLASH_Gemv( transA, alpha, A, x, beta, y, cntl ) \
00250 FLASH_Queue_push( (void *) FLA_Gemv_task, \
00251 (void *) cntl, \
00252 "Gemv ", \
00253 1, 2, 2, 1, \
00254 transA, \
00255 alpha, beta, \
00256 A, x, y )
00257
00258 #define ENQUEUE_FLASH_Trsv( uplo, trans, diag, A, x, cntl ) \
00259 FLASH_Queue_push( (void *) FLA_Trsv_task, \
00260 (void *) cntl, \
00261 "Trsv ", \
00262 3, 0, 1, 1, \
00263 uplo, trans, diag, \
00264 A, x )
00265
00266
00267
00268 #define ENQUEUE_FLASH_Axpy( alpha, A, B, cntl ) \
00269 FLASH_Queue_push( (void *) FLA_Axpy_task, \
00270 (void *) cntl, \
00271 "Axpy ", \
00272 0, 1, 1, 1, \
00273 alpha, \
00274 A, B )
00275
00276 #define ENQUEUE_FLASH_Copy( A, B, cntl ) \
00277 FLASH_Queue_push( (void *) FLA_Copy_task, \
00278 (void *) cntl, \
00279 "Copy ", \
00280 0, 0, 1, 1, \
00281 A, B )
00282
00283
00284
00285 #define ENQUEUE_FLASH_Obj_free( A, cntl ) \
00286 FLASH_Queue_push( (void *) FLA_Obj_free_task, \
00287 (void *) cntl, \
00288 "Free ", \
00289 0, 0, 0, 1, \
00290 A )
00291
00292 #else
00293
00294
00295
00296 #define ENQUEUE_FLASH_LU_piv( A, p, cntl ) \
00297 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00298
00299 #define ENQUEUE_FLASH_LU_piv_copy( A, p, U, cntl ) \
00300 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00301
00302 #define ENQUEUE_FLASH_Trsm_piv( A, C, p, cntl ) \
00303 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00304
00305 #define ENQUEUE_FLASH_SA_LU( U, D, p, L, nb_alg, cntl ) \
00306 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00307
00308 #define ENQUEUE_FLASH_SA_FS( L, D, p, C, E, nb_alg, cntl ) \
00309 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00310
00311 #define ENQUEUE_FLASH_LU_nopiv( A, cntl ) \
00312 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00313
00314 #define ENQUEUE_FLASH_Trinv( uplo, diag, A, cntl ) \
00315 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00316
00317 #define ENQUEUE_FLASH_Ttmm( uplo, A, cntl ) \
00318 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00319
00320 #define ENQUEUE_FLASH_Chol( uplo, A, cntl ) \
00321 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00322
00323 #define ENQUEUE_FLASH_Sylv( transA, transB, isgn, A, B, C, scale, cntl ) \
00324 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00325
00326 #define ENQUEUE_FLASH_QR_UT( A, T, cntl ) \
00327 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00328
00329 #define ENQUEUE_FLASH_QR_UT_copy( A, T, U, cntl ) \
00330 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00331
00332 #define ENQUEUE_FLASH_QR_UT_UD( B, D, T, cntl ) \
00333 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00334
00335 #define ENQUEUE_FLASH_Apply_Q_UT( side, trans, storev, A, T, W, B, cntl ) \
00336 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00337
00338 #define ENQUEUE_FLASH_Apply_Q_UT_UD( side, trans, storev, D, T, W, C, E, cntl ) \
00339 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00340
00341
00342
00343 #define ENQUEUE_FLASH_Gemm( transA, transB, alpha, A, B, beta, C, cntl ) \
00344 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00345
00346 #define ENQUEUE_FLASH_Hemm( side, uplo, alpha, A, B, beta, C, cntl ) \
00347 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00348
00349 #define ENQUEUE_FLASH_Herk( uplo, transA, alpha, A, beta, C, cntl ) \
00350 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00351
00352 #define ENQUEUE_FLASH_Her2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
00353 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00354
00355 #define ENQUEUE_FLASH_Symm( side, uplo, alpha, A, B, beta, C, cntl ) \
00356 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00357
00358 #define ENQUEUE_FLASH_Syrk( uplo, transA, alpha, A, beta, C, cntl ) \
00359 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00360
00361 #define ENQUEUE_FLASH_Syr2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
00362 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00363
00364 #define ENQUEUE_FLASH_Trmm( side, uplo, trans, diag, alpha, A, C, cntl ) \
00365 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00366
00367 #define ENQUEUE_FLASH_Trsm( side, uplo, trans, diag, alpha, A, C, cntl ) \
00368 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00369
00370
00371
00372 #define ENQUEUE_FLASH_Gemv( transA, alpha, A, x, beta, y, cntl ) \
00373 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00374
00375 #define ENQUEUE_FLASH_Trsv( uplo, trans, diag, A, x, cntl ) \
00376 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00377
00378
00379
00380 #define ENQUEUE_FLASH_Axpy( alpha, A, B, cntl ) \
00381 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00382
00383 #define ENQUEUE_FLASH_Copy( A, B, cntl ) \
00384 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00385
00386
00387
00388 #define ENQUEUE_FLASH_Obj_free( A, cntl ) \
00389 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
00390
00391
00392 #endif // FLA_ENABLE_SUPERMATRIX
00393
00394
00395 #endif // FLASH_QUEUE_MACRO_DEFS_H