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 );

}
Example #3
0
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 );
}
Example #4
0
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 );

}
Example #5
0
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 );
}