void FLA_Apply_Q_UT_cntl_init() { // Set the outer blocksize to the default value for conventional storage, // and the inner blocksize to the same value but scaled down. fla_apqut_var2_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); fla_apqut_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); FLA_Blocksize_scale( fla_apqut_var1_bsize, FLA_QR_INNER_TO_OUTER_B_RATIO ); // Create a control tree to invoke variant 1. fla_apqut_cntl_leaf = FLA_Cntl_apqut_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT1, fla_apqut_var1_bsize, NULL, fla_trmm_cntl_blas, fla_trmm_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_trsm_cntl_blas, fla_copyt_cntl_blas, fla_axpyt_cntl_blas ); /* // Create a control tree to invoke variant 2. fla_apqut_cntl = FLA_Cntl_apqut_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT2, fla_apqut_var2_bsize, fla_apqut_cntl_leaf, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); */ }
void FLA_QR2_UT_cntl_init() { // Set the blocksize to the default value for conventional storage, // but scaled down. fla_qr2ut_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); FLA_Blocksize_scale( fla_qr2ut_var1_bsize, FLA_QR_INNER_TO_OUTER_B_RATIO ); // Create a control tree to invoke unblocked variant 1. fla_qr2ut_cntl_unb = FLA_Cntl_qr2ut_obj_create( FLA_FLAT, FLA_UNB_OPT_VARIANT1, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); // Create a control tree for small-to-medium sequential problems and // as the means to compute on FLASH blocks. fla_qr2ut_cntl_leaf = FLA_Cntl_qr2ut_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT1, fla_qr2ut_var1_bsize, fla_qr2ut_cntl_unb, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_trsm_cntl_blas, fla_copy_cntl_blas, fla_axpy_cntl_blas ); }
void FLA_Sylv_cntl_init() { // Set blocksize with default value for conventional storage. fla_sylv_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); // Create a control tree to invoke LAPACK. fla_sylv_cntl_leaf = FLA_Cntl_sylv_obj_create( FLA_FLAT, #ifdef FLA_ENABLE_EXTERNAL_LAPACK_FOR_SUBPROBLEMS FLA_BLOCKED_EXTERN, #else FLA_UNB_OPT_VARIANT1, #endif NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); // Create a control tree to invoke variant 15. fla_sylv_cntl_mb = FLA_Cntl_sylv_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT15, fla_sylv_bsize, fla_sylv_cntl_leaf, NULL, NULL, fla_gemm_cntl_blas, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); // Create a control tree to invoke variant 17. fla_sylv_cntl = FLA_Cntl_sylv_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT17, fla_sylv_bsize, fla_sylv_cntl_mb, NULL, NULL, fla_gemm_cntl_blas, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); }
void FLA_Hemm_cntl_init() { // Set blocksizes with default values for conventional storage. fla_hemm_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); fla_hemm_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); // Create a control tree that assumes A and B are b x b blocks. fla_hemm_cntl_blas = FLA_Cntl_hemm_obj_create( FLA_FLAT, FLA_SUBPROBLEM, NULL, NULL, NULL, NULL, NULL ); // Create a control tree that assumes A is a block and B is a panel. fla_hemm_cntl_bp = FLA_Cntl_hemm_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT9, fla_hemm_var9_bsize, fla_scal_cntl_blas, fla_hemm_cntl_blas, NULL, NULL ); // Create a control tree that assumes A is large and B is a panel. fla_hemm_cntl_mp = FLA_Cntl_hemm_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT1, fla_hemm_var1_bsize, fla_scal_cntl_blas, fla_hemm_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas ); // Create a control tree that assumes A and B are both large. fla_hemm_cntl_mm = FLA_Cntl_hemm_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT9, fla_hemm_var9_bsize, fla_scal_cntl_blas, fla_hemm_cntl_mp, NULL, NULL ); }
void FLA_Her2k_cntl_init() { // Set blocksizes with default values for conventional storage. fla_her2k_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); fla_her2k_var9_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); // Create a control tree that assumes A and B are b x b blocks. fla_her2k_cntl_blas = FLA_Cntl_her2k_obj_create( FLA_FLAT, FLA_SUBPROBLEM, NULL, NULL, NULL, NULL, NULL ); // Create a control tree that assumes A and B form an inner panel product. fla_her2k_cntl_ip = FLA_Cntl_her2k_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT9, fla_her2k_var9_bsize, fla_scalr_cntl_blas, fla_her2k_cntl_blas, NULL, NULL ); // Create a control tree that assumes A and B form an outer panel product. fla_her2k_cntl_op = FLA_Cntl_her2k_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT3, fla_her2k_var3_bsize, fla_scalr_cntl_blas, fla_her2k_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas ); // Create a control tree that assumes A and B are both large. fla_her2k_cntl_mm = FLA_Cntl_her2k_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT9, fla_her2k_var9_bsize, fla_scalr_cntl_blas, fla_her2k_cntl_op, NULL, NULL ); }
void FLA_LU_piv_cntl_init() { // Set blocksizes with default values for conventional storage. fla_lu_piv_var5_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); fla_lu_piv_var5_bsize_in = FLA_Blocksize_create_copy( fla_lu_piv_var5_bsize ); FLA_Blocksize_scale( fla_lu_piv_var5_bsize_in, fla_lu_piv_var5_in_to_ou_bsize_ratio ); // Create a control tree to invoke LAPACK. fla_lu_piv_cntl_leaf = FLA_Cntl_lu_obj_create( FLA_FLAT, #ifdef FLA_ENABLE_EXTERNAL_LAPACK_FOR_SUBPROBLEMS FLA_BLOCKED_EXTERN, #else FLA_UNB_OPT_VARIANT4, #endif NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); // Create a control tree for small subproblems. fla_lu_piv_cntl_in = FLA_Cntl_lu_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT5, fla_lu_piv_var5_bsize_in, fla_lu_piv_cntl_leaf, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_trsm_cntl_blas, fla_trsm_cntl_blas, fla_appiv_cntl_leaf, fla_appiv_cntl_leaf ); // Create a control tree for larger problems with one level of recursion. fla_lu_piv_cntl2 = FLA_Cntl_lu_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT5, fla_lu_piv_var5_bsize, fla_lu_piv_cntl_in, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_trsm_cntl_blas, fla_trsm_cntl_blas, fla_appiv_cntl_leaf, fla_appiv_cntl_leaf ); // Create a control tree for large problems with no extra recursion. fla_lu_piv_cntl = FLA_Cntl_lu_obj_create( FLA_FLAT, FLA_BLOCKED_VARIANT5, fla_lu_piv_var5_bsize, fla_lu_piv_cntl_leaf, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_gemm_cntl_blas, fla_trsm_cntl_blas, fla_trsm_cntl_blas, fla_appiv_cntl_leaf, fla_appiv_cntl_leaf ); }