FLASH_Queue_macro_defs.h

Go to the documentation of this file.
00001 /*
00002    libflame
00003    An object-based infrastructure for developing high-performance
00004    dense linear algebra libraries.
00005 
00006    Copyright (C) 2009, The University of Texas
00007 
00008    libflame is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU Lesser General Public License as
00010    published by the Free Software Foundation; either version 2.1 of
00011    the License, or (at your option) any later version.
00012 
00013    libflame is distributed in the hope that it will be useful, but
00014    WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016    Lesser General Public License for more details.
00017 
00018    You should have received a copy of the GNU Lesser General Public
00019    License along with libflame; if you did not receive a copy, see
00020    http://www.gnu.org/licenses/.
00021 
00022    For more information, please contact us at flame@cs.utexas.edu or
00023    send mail to:
00024 
00025    Field G. Van Zee and/or
00026    Robert A. van de Geijn
00027    The University of Texas at Austin
00028    Department of Computer Sciences
00029    1 University Station C0500
00030    Austin TX 78712
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 // FLASH_Data_aff
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 // LAPACK-level
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 // Level-3 BLAS
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 // Level-2 BLAS
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 // Level-1 BLAS
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 // Base
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 // LAPACK-level
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 // Level-3 BLAS
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 // Level-2 BLAS
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 // Level-1 BLAS
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 // Base
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

Generated on Mon Jul 6 05:45:48 2009 for libflame by  doxygen 1.5.9