Go to the source code of this file.
void FLA_Cntl_finalize_flash | ( | void | ) |
References FLASH_Apply_Q_UT_cntl_finalize(), FLASH_Apply_Q_UT_inc_cntl_finalize(), FLASH_Apply_Q_UT_UD_cntl_finalize(), FLASH_Axpy_cntl_finalize(), FLASH_Chol_cntl_finalize(), FLASH_Copy_cntl_finalize(), FLASH_Gemm_cntl_finalize(), FLASH_Gemv_cntl_finalize(), FLASH_Hemm_cntl_finalize(), FLASH_Her2k_cntl_finalize(), FLASH_Herk_cntl_finalize(), FLASH_LU_nopiv_cntl_finalize(), FLASH_QR_UT_cntl_finalize(), FLASH_QR_UT_inc_cntl_finalize(), FLASH_QR_UT_UD_cntl_finalize(), FLASH_SPDinv_cntl_finalize(), FLASH_Sylv_cntl_finalize(), FLASH_Symm_cntl_finalize(), FLASH_Syr2k_cntl_finalize(), FLASH_Syrk_cntl_finalize(), FLASH_Trinv_cntl_finalize(), FLASH_Trmm_cntl_finalize(), FLASH_Trsm_cntl_finalize(), FLASH_Trsv_cntl_finalize(), and FLASH_Ttmm_cntl_finalize().
Referenced by FLA_Cntl_finalize().
00077 { 00078 // Level-1 BLAS 00079 FLASH_Axpy_cntl_finalize(); 00080 FLASH_Copy_cntl_finalize(); 00081 00082 // Level-2 BLAS 00083 FLASH_Gemv_cntl_finalize(); 00084 FLASH_Trsv_cntl_finalize(); 00085 00086 // Level-3 BLAS 00087 FLASH_Gemm_cntl_finalize(); 00088 FLASH_Hemm_cntl_finalize(); 00089 FLASH_Herk_cntl_finalize(); 00090 FLASH_Her2k_cntl_finalize(); 00091 FLASH_Symm_cntl_finalize(); 00092 FLASH_Syrk_cntl_finalize(); 00093 FLASH_Syr2k_cntl_finalize(); 00094 FLASH_Trmm_cntl_finalize(); 00095 FLASH_Trsm_cntl_finalize(); 00096 00097 // LAPACK-level 00098 FLASH_Chol_cntl_finalize(); 00099 FLASH_LU_nopiv_cntl_finalize(); 00100 FLASH_Trinv_cntl_finalize(); 00101 FLASH_Ttmm_cntl_finalize(); 00102 FLASH_Sylv_cntl_finalize(); 00103 FLASH_QR_UT_cntl_finalize(); 00104 FLASH_QR_UT_UD_cntl_finalize(); 00105 FLASH_Apply_Q_UT_cntl_finalize(); 00106 FLASH_Apply_Q_UT_UD_cntl_finalize(); 00107 00108 // Compound LAPACK operations 00109 FLASH_SPDinv_cntl_finalize(); 00110 FLASH_QR_UT_inc_cntl_finalize(); 00111 FLASH_Apply_Q_UT_inc_cntl_finalize(); 00112 }
void FLA_Cntl_init_flash | ( | void | ) |
References FLASH_Apply_Q_UT_cntl_init(), FLASH_Apply_Q_UT_inc_cntl_init(), FLASH_Apply_Q_UT_UD_cntl_init(), FLASH_Axpy_cntl_init(), FLASH_Chol_cntl_init(), FLASH_Copy_cntl_init(), FLASH_Gemm_cntl_init(), FLASH_Gemv_cntl_init(), FLASH_Hemm_cntl_init(), FLASH_Her2k_cntl_init(), FLASH_Herk_cntl_init(), FLASH_LU_nopiv_cntl_init(), FLASH_QR_UT_cntl_init(), FLASH_QR_UT_inc_cntl_init(), FLASH_QR_UT_UD_cntl_init(), FLASH_SPDinv_cntl_init(), FLASH_Sylv_cntl_init(), FLASH_Symm_cntl_init(), FLASH_Syr2k_cntl_init(), FLASH_Syrk_cntl_init(), FLASH_Trinv_cntl_init(), FLASH_Trmm_cntl_init(), FLASH_Trsm_cntl_init(), FLASH_Trsv_cntl_init(), and FLASH_Ttmm_cntl_init().
Referenced by FLA_Cntl_init().
00036 { 00037 // Level-1 BLAS 00038 FLASH_Axpy_cntl_init(); 00039 FLASH_Copy_cntl_init(); 00040 00041 // Level-2 BLAS 00042 FLASH_Gemv_cntl_init(); 00043 FLASH_Trsv_cntl_init(); 00044 00045 // Level-3 BLAS 00046 // Note gemm must be first since it is used by all other level-3 BLAS. 00047 FLASH_Gemm_cntl_init(); 00048 FLASH_Hemm_cntl_init(); 00049 FLASH_Herk_cntl_init(); 00050 FLASH_Her2k_cntl_init(); 00051 FLASH_Symm_cntl_init(); 00052 FLASH_Syrk_cntl_init(); 00053 FLASH_Syr2k_cntl_init(); 00054 FLASH_Trmm_cntl_init(); 00055 FLASH_Trsm_cntl_init(); 00056 00057 // LAPACK-level 00058 // These require level-3 BLAS operations to be initialized. 00059 FLASH_Chol_cntl_init(); 00060 FLASH_LU_nopiv_cntl_init(); 00061 FLASH_Trinv_cntl_init(); 00062 FLASH_Ttmm_cntl_init(); 00063 FLASH_Sylv_cntl_init(); 00064 FLASH_QR_UT_cntl_init(); 00065 FLASH_QR_UT_UD_cntl_init(); 00066 FLASH_Apply_Q_UT_cntl_init(); 00067 FLASH_Apply_Q_UT_UD_cntl_init(); 00068 00069 // Compound LAPACK operations 00070 // These require previous LAPACK operations to already be initialized. 00071 FLASH_SPDinv_cntl_init(); 00072 FLASH_QR_UT_inc_cntl_init(); 00073 FLASH_Apply_Q_UT_inc_cntl_init(); 00074 }
void FLASH_Apply_Q_UT_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00072 { 00073 FLA_Cntl_obj_free( flash_apqut_cntl_leaf ); 00074 FLA_Cntl_obj_free( flash_apqut_cntl ); 00075 00076 FLA_Blocksize_free( flash_apqut_var2_bsize ); 00077 }
void FLASH_Apply_Q_UT_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqut_obj_create().
Referenced by FLA_Cntl_init_flash().
00040 { 00041 // Set blocksize for hierarchical storage. 00042 flash_apqut_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00043 00044 // Create a control tree to invoke variant 1. 00045 flash_apqut_cntl_leaf = FLA_Cntl_apqut_obj_create( FLA_HIER, 00046 FLA_SUBPROBLEM, 00047 NULL, 00048 NULL, 00049 NULL, 00050 NULL, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL ); 00056 00057 // Create a control tree to invoke variant 2. 00058 flash_apqut_cntl = FLA_Cntl_apqut_obj_create( FLA_HIER, 00059 FLA_BLOCKED_VARIANT2, 00060 flash_apqut_var2_bsize, 00061 flash_apqut_cntl_leaf, 00062 NULL, 00063 NULL, 00064 NULL, 00065 NULL, 00066 NULL, 00067 NULL, 00068 NULL ); 00069 }
void FLASH_Apply_Q_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00055 { 00056 FLA_Cntl_obj_free( flash_apqutinc_cntl ); 00057 00058 FLA_Blocksize_free( flash_apqutinc_var1_bsize ); 00059 }
void FLASH_Apply_Q_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
00042 { 00043 // Set blocksizes for hierarchical storage. 00044 flash_apqutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00045 00046 // Create a control tree to invoke variant 1. 00047 flash_apqutinc_cntl = FLA_Cntl_apqutinc_obj_create( FLA_HIER, 00048 FLA_BLOCKED_VARIANT1, 00049 flash_apqutinc_var1_bsize, 00050 flash_apqut_cntl, 00051 flash_apqutud_cntl ); 00052 }
void FLASH_Apply_Q_UT_UD_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00082 { 00083 FLA_Cntl_obj_free( flash_apqutud_cntl_leaf ); 00084 FLA_Cntl_obj_free( flash_apqutud_cntl_mid ); 00085 FLA_Cntl_obj_free( flash_apqutud_cntl ); 00086 00087 FLA_Blocksize_free( flash_apqutud_var2_bsize ); 00088 FLA_Blocksize_free( flash_apqutud_var3_bsize ); 00089 }
void FLASH_Apply_Q_UT_UD_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_apqutud_obj_create().
Referenced by FLA_Cntl_init_flash().
00042 { 00043 // Set blocksizes for hierarchical storage. 00044 flash_apqutud_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00045 flash_apqutud_var3_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00046 00047 // Create a control tree to invoke variant 1. 00048 flash_apqutud_cntl_leaf = FLA_Cntl_apqutud_obj_create( FLA_HIER, 00049 FLA_SUBPROBLEM, 00050 NULL, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL, 00056 NULL ); 00057 00058 // Create a control tree to invoke variant 2. 00059 flash_apqutud_cntl_mid = FLA_Cntl_apqutud_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT2, 00061 flash_apqutud_var2_bsize, 00062 flash_apqutud_cntl_leaf, 00063 NULL, 00064 NULL, 00065 NULL, 00066 NULL, 00067 NULL ); 00068 00069 // Create a control tree to invoke variant 3. 00070 flash_apqutud_cntl = FLA_Cntl_apqutud_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT3, 00072 flash_apqutud_var3_bsize, 00073 flash_apqutud_cntl_mid, 00074 NULL, 00075 NULL, 00076 NULL, 00077 NULL, 00078 NULL ); 00079 }
void FLASH_Axpy_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00066 { 00067 FLA_Cntl_obj_free( flash_axpy_cntl_blas ); 00068 00069 FLA_Cntl_obj_free( flash_axpy_cntl_tb ); 00070 FLA_Cntl_obj_free( flash_axpy_cntl ); 00071 00072 FLA_Blocksize_free( flash_axpy_bsize ); 00073 }
void FLASH_Axpy_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_axpy_obj_create().
Referenced by FLA_Cntl_init_flash().
00041 { 00042 // Set blocksize for hierarchical storage. 00043 flash_axpy_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00044 00045 // Create a control tree that assumes A and B are small. 00046 flash_axpy_cntl_blas = FLA_Cntl_axpy_obj_create( FLA_HIER, 00047 FLA_SUBPROBLEM, 00048 NULL, 00049 NULL ); 00050 00051 // Create a control tree that marches through A and B vertically. 00052 flash_axpy_cntl_tb = FLA_Cntl_axpy_obj_create( FLA_HIER, 00053 FLA_BLOCKED_VARIANT1, 00054 flash_axpy_bsize, 00055 flash_axpy_cntl_blas ); 00056 00057 // Create a control tree that marches through A and B horizontally, then 00058 // vertically. 00059 flash_axpy_cntl = FLA_Cntl_axpy_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT3, 00061 flash_axpy_bsize, 00062 flash_axpy_cntl_tb ); 00063 }
void FLASH_Chol_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00070 { 00071 FLA_Cntl_obj_free( flash_chol_cntl_lapack ); 00072 FLA_Cntl_obj_free( flash_chol_cntl ); 00073 00074 FLA_Blocksize_free( flash_chol_bsize ); 00075 }
void FLASH_Chol_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_chol_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set blocksize for hierarchical storage. 00046 flash_chol_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A is a b x b block. 00049 flash_chol_cntl_lapack = FLA_Cntl_chol_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL, 00056 NULL ); 00057 00058 // Create a control tree that assumes A is large. 00059 flash_chol_cntl = FLA_Cntl_chol_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT3, 00061 flash_chol_bsize, 00062 flash_chol_cntl_lapack, 00063 flash_syrk_cntl_op, 00064 flash_herk_cntl_op, 00065 flash_trsm_cntl_bp, 00066 NULL ); 00067 }
void FLASH_Copy_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00066 { 00067 FLA_Cntl_obj_free( flash_copy_cntl_blas ); 00068 00069 FLA_Cntl_obj_free( flash_copy_cntl_tb ); 00070 FLA_Cntl_obj_free( flash_copy_cntl ); 00071 00072 FLA_Blocksize_free( flash_copy_bsize ); 00073 }
void FLASH_Copy_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_copy_obj_create().
Referenced by FLA_Cntl_init_flash().
00041 { 00042 // Set blocksize for hierarchical storage. 00043 flash_copy_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00044 00045 // Create a control tree that assumes A and B are small. 00046 flash_copy_cntl_blas = FLA_Cntl_copy_obj_create( FLA_HIER, 00047 FLA_SUBPROBLEM, 00048 NULL, 00049 NULL ); 00050 00051 // Create a control tree that marches through A and B vertically. 00052 flash_copy_cntl_tb = FLA_Cntl_copy_obj_create( FLA_HIER, 00053 FLA_BLOCKED_VARIANT1, 00054 flash_copy_bsize, 00055 flash_copy_cntl_blas ); 00056 00057 // Create a control tree that marches through A and B horizontally, then 00058 // vertically. 00059 flash_copy_cntl = FLA_Cntl_copy_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT3, 00061 flash_copy_bsize, 00062 flash_copy_cntl_tb ); 00063 }
void FLASH_Gemm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00117 { 00118 FLA_Cntl_obj_free( flash_gemm_cntl_blas ); 00119 00120 FLA_Cntl_obj_free( flash_gemm_cntl_pb_bb ); 00121 FLA_Cntl_obj_free( flash_gemm_cntl_bp_bb ); 00122 FLA_Cntl_obj_free( flash_gemm_cntl_ip_bb ); 00123 00124 FLA_Cntl_obj_free( flash_gemm_cntl_mp_ip ); 00125 FLA_Cntl_obj_free( flash_gemm_cntl_op_bp ); 00126 FLA_Cntl_obj_free( flash_gemm_cntl_pm_ip ); 00127 FLA_Cntl_obj_free( flash_gemm_cntl_op_pb ); 00128 FLA_Cntl_obj_free( flash_gemm_cntl_mp_pb ); 00129 FLA_Cntl_obj_free( flash_gemm_cntl_pm_bp ); 00130 00131 FLA_Cntl_obj_free( flash_gemm_cntl_mm_pm ); 00132 FLA_Cntl_obj_free( flash_gemm_cntl_mm_mp ); 00133 FLA_Cntl_obj_free( flash_gemm_cntl_mm_op ); 00134 00135 FLA_Blocksize_free( flash_gemm_bsize ); 00136 }
void FLASH_Gemm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_gemm_obj_create().
Referenced by FLA_Cntl_init_flash().
00051 { 00052 // Set gemm blocksize for hierarchical storage. 00053 flash_gemm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00054 00055 // Create a control tree node that executes a gemm subproblem. 00056 flash_gemm_cntl_blas = FLA_Cntl_gemm_obj_create( FLA_HIER, 00057 FLA_SUBPROBLEM, 00058 NULL, 00059 NULL ); 00060 00061 // Create control trees for situations where one dimension is large. 00062 flash_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_HIER, 00063 FLA_BLOCKED_VARIANT1, 00064 flash_gemm_bsize, 00065 flash_gemm_cntl_blas ); 00066 flash_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_HIER, 00067 FLA_BLOCKED_VARIANT3, 00068 flash_gemm_bsize, 00069 flash_gemm_cntl_blas ); 00070 flash_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT5, 00072 flash_gemm_bsize, 00073 flash_gemm_cntl_blas ); 00074 00075 // Create control trees for situations where two dimensions are large. 00076 flash_gemm_cntl_mp_ip = FLA_Cntl_gemm_obj_create( FLA_HIER, 00077 FLA_BLOCKED_VARIANT1, 00078 flash_gemm_bsize, 00079 flash_gemm_cntl_ip_bb ); 00080 flash_gemm_cntl_op_bp = FLA_Cntl_gemm_obj_create( FLA_HIER, 00081 FLA_BLOCKED_VARIANT1, 00082 flash_gemm_bsize, 00083 flash_gemm_cntl_bp_bb ); 00084 flash_gemm_cntl_pm_ip = FLA_Cntl_gemm_obj_create( FLA_HIER, 00085 FLA_BLOCKED_VARIANT3, 00086 flash_gemm_bsize, 00087 flash_gemm_cntl_ip_bb ); 00088 flash_gemm_cntl_op_pb = FLA_Cntl_gemm_obj_create( FLA_HIER, 00089 FLA_BLOCKED_VARIANT3, 00090 flash_gemm_bsize, 00091 flash_gemm_cntl_pb_bb ); 00092 flash_gemm_cntl_mp_pb = FLA_Cntl_gemm_obj_create( FLA_HIER, 00093 FLA_BLOCKED_VARIANT5, 00094 flash_gemm_bsize, 00095 flash_gemm_cntl_pb_bb ); 00096 flash_gemm_cntl_pm_bp = FLA_Cntl_gemm_obj_create( FLA_HIER, 00097 FLA_BLOCKED_VARIANT5, 00098 flash_gemm_bsize, 00099 flash_gemm_cntl_bp_bb ); 00100 00101 // Create control trees for situations where all dimensions are large. 00102 flash_gemm_cntl_mm_pm = FLA_Cntl_gemm_obj_create( FLA_HIER, 00103 FLA_BLOCKED_VARIANT1, 00104 flash_gemm_bsize, 00105 flash_gemm_cntl_pm_ip ); 00106 flash_gemm_cntl_mm_mp = FLA_Cntl_gemm_obj_create( FLA_HIER, 00107 FLA_BLOCKED_VARIANT3, 00108 flash_gemm_bsize, 00109 flash_gemm_cntl_mp_ip ); 00110 flash_gemm_cntl_mm_op = FLA_Cntl_gemm_obj_create( FLA_HIER, 00111 FLA_BLOCKED_VARIANT5, 00112 flash_gemm_bsize, 00113 flash_gemm_cntl_op_bp ); 00114 }
void FLASH_Gemv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00075 { 00076 FLA_Cntl_obj_free( flash_gemv_cntl_blas ); 00077 00078 FLA_Cntl_obj_free( flash_gemv_cntl_cp_bv ); 00079 FLA_Cntl_obj_free( flash_gemv_cntl_rp_bv ); 00080 00081 FLA_Cntl_obj_free( flash_gemv_cntl_fm_rp ); 00082 FLA_Cntl_obj_free( flash_gemv_cntl_fm_cp ); 00083 00084 FLA_Blocksize_free( flash_gemv_bsize ); 00085 }
void FLASH_Gemv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_gemv_obj_create().
Referenced by FLA_Cntl_init_flash().
00043 { 00044 // Set gemv blocksize for hierarchical storage. 00045 flash_gemv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00046 00047 // Create a control tree node that executes a gemv subproblem. 00048 flash_gemv_cntl_blas = FLA_Cntl_gemv_obj_create( FLA_HIER, 00049 FLA_SUBPROBLEM, 00050 NULL, 00051 NULL ); 00052 00053 // Create control trees for situations where one dimension is large. 00054 flash_gemv_cntl_cp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER, 00055 FLA_BLOCKED_VARIANT1, 00056 flash_gemv_bsize, 00057 flash_gemv_cntl_blas ); 00058 flash_gemv_cntl_rp_bv = FLA_Cntl_gemv_obj_create( FLA_HIER, 00059 FLA_BLOCKED_VARIANT5, 00060 flash_gemv_bsize, 00061 flash_gemv_cntl_blas ); 00062 00063 // Create control trees for situations where both dimensions are large. 00064 flash_gemv_cntl_fm_rp = FLA_Cntl_gemv_obj_create( FLA_HIER, 00065 FLA_BLOCKED_VARIANT1, 00066 flash_gemv_bsize, 00067 flash_gemv_cntl_rp_bv ); 00068 flash_gemv_cntl_fm_cp = FLA_Cntl_gemv_obj_create( FLA_HIER, 00069 FLA_BLOCKED_VARIANT5, 00070 flash_gemv_bsize, 00071 flash_gemv_cntl_cp_bv ); 00072 }
void FLASH_Hemm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00082 { 00083 FLA_Cntl_obj_free( flash_hemm_cntl_blas ); 00084 00085 FLA_Cntl_obj_free( flash_hemm_cntl_bp ); 00086 FLA_Cntl_obj_free( flash_hemm_cntl_mp ); 00087 FLA_Cntl_obj_free( flash_hemm_cntl_mm ); 00088 00089 FLA_Blocksize_free( flash_hemm_bsize ); 00090 }
void FLASH_Hemm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_hemm_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set hemm blocksize for hierarchical storage. 00046 flash_hemm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_hemm_cntl_blas = FLA_Cntl_hemm_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL ); 00055 00056 // Create a control tree that assumes A is a block and B is a panel. 00057 flash_hemm_cntl_bp = FLA_Cntl_hemm_obj_create( FLA_HIER, 00058 FLA_BLOCKED_VARIANT9, 00059 flash_hemm_bsize, 00060 flash_hemm_cntl_blas, 00061 NULL, 00062 NULL ); 00063 00064 // Create a control tree that assumes A is large and B is a panel. 00065 flash_hemm_cntl_mp = FLA_Cntl_hemm_obj_create( FLA_HIER, 00066 FLA_BLOCKED_VARIANT4, 00067 flash_hemm_bsize, 00068 flash_hemm_cntl_blas, 00069 flash_gemm_cntl_op_bp, 00070 flash_gemm_cntl_op_bp ); 00071 00072 // Create a control tree that assumes A and B are both large. 00073 flash_hemm_cntl_mm = FLA_Cntl_hemm_obj_create( FLA_HIER, 00074 FLA_BLOCKED_VARIANT9, 00075 flash_hemm_bsize, 00076 flash_hemm_cntl_mp, 00077 NULL, 00078 NULL ); 00079 }
void FLASH_Her2k_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00082 { 00083 FLA_Cntl_obj_free( flash_her2k_cntl_blas ); 00084 00085 FLA_Cntl_obj_free( flash_her2k_cntl_ip ); 00086 FLA_Cntl_obj_free( flash_her2k_cntl_op ); 00087 FLA_Cntl_obj_free( flash_her2k_cntl_sq ); 00088 00089 FLA_Blocksize_free( flash_her2k_bsize ); 00090 }
void FLASH_Her2k_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_her2k_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set her2k blocksize for hierarchical storage. 00046 flash_her2k_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_her2k_cntl_blas = FLA_Cntl_her2k_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL ); 00055 00056 // Create a control tree that assumes A and B form an inner panel product. 00057 flash_her2k_cntl_ip = FLA_Cntl_her2k_obj_create( FLA_HIER, 00058 FLA_BLOCKED_VARIANT9, 00059 flash_her2k_bsize, 00060 flash_her2k_cntl_blas, 00061 NULL, 00062 NULL ); 00063 00064 // Create a control tree that assumes A and B form an outer panel product. 00065 flash_her2k_cntl_op = FLA_Cntl_her2k_obj_create( FLA_HIER, 00066 FLA_BLOCKED_VARIANT4, 00067 flash_her2k_bsize, 00068 flash_her2k_cntl_blas, 00069 flash_gemm_cntl_pb_bb, 00070 flash_gemm_cntl_pb_bb ); 00071 00072 // Create a control tree that assumes A and B are both large. 00073 flash_her2k_cntl_sq = FLA_Cntl_her2k_obj_create( FLA_HIER, 00074 FLA_BLOCKED_VARIANT9, 00075 flash_her2k_bsize, 00076 flash_her2k_cntl_op, 00077 NULL, 00078 NULL ); 00079 }
void FLASH_Herk_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00078 { 00079 FLA_Cntl_obj_free( flash_herk_cntl_blas ); 00080 00081 FLA_Cntl_obj_free( flash_herk_cntl_ip ); 00082 FLA_Cntl_obj_free( flash_herk_cntl_op ); 00083 FLA_Cntl_obj_free( flash_herk_cntl_sq ); 00084 00085 FLA_Blocksize_free( flash_herk_bsize ); 00086 }
void FLASH_Herk_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_herk_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set herk blocksize for hierarchical storage. 00046 flash_herk_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A is a b x b block. 00049 flash_herk_cntl_blas = FLA_Cntl_herk_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL ); 00054 00055 // Create a control tree that assumes A * A' forms an inner panel product. 00056 flash_herk_cntl_ip = FLA_Cntl_herk_obj_create( FLA_HIER, 00057 FLA_BLOCKED_VARIANT5, 00058 flash_herk_bsize, 00059 flash_herk_cntl_blas, 00060 NULL ); 00061 00062 // Create a control tree that assumes A * A' forms an outer panel product. 00063 flash_herk_cntl_op = FLA_Cntl_herk_obj_create( FLA_HIER, 00064 FLA_BLOCKED_VARIANT2, 00065 flash_herk_bsize, 00066 flash_herk_cntl_blas, 00067 flash_gemm_cntl_pb_bb ); 00068 00069 // Create a control tree that assumes A is large. 00070 flash_herk_cntl_sq = FLA_Cntl_herk_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT5, 00072 flash_herk_bsize, 00073 flash_herk_cntl_op, 00074 NULL ); 00075 }
void FLASH_Hess_cntl_finalize | ( | void | ) |
void FLASH_Hess_cntl_init | ( | void | ) |
void FLASH_LQ_cntl_finalize | ( | void | ) |
void FLASH_LQ_cntl_init | ( | void | ) |
void FLASH_LQ_UT_cntl_finalize | ( | void | ) |
void FLASH_LQ_UT_cntl_init | ( | void | ) |
void FLASH_LU_nopiv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00071 { 00072 FLA_Cntl_obj_free( flash_lu_nopiv_cntl_lapack ); 00073 FLA_Cntl_obj_free( flash_lu_nopiv_cntl ); 00074 00075 FLA_Blocksize_free( flash_lu_nopiv_bsize ); 00076 }
void FLASH_LU_nopiv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_lu_obj_create().
Referenced by FLA_Cntl_init_flash().
00043 { 00044 // Set blocksize for hierarchical storage. 00045 flash_lu_nopiv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00046 00047 // Create a control tree that assumes A is a b x b block. 00048 flash_lu_nopiv_cntl_lapack = FLA_Cntl_lu_obj_create( FLA_HIER, 00049 FLA_SUBPROBLEM, 00050 NULL, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL, 00056 NULL ); 00057 00058 // Create a control tree that assumes A is large. 00059 flash_lu_nopiv_cntl = FLA_Cntl_lu_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT5, 00061 flash_lu_nopiv_bsize, 00062 flash_lu_nopiv_cntl_lapack, 00063 flash_gemm_cntl_op_bp, 00064 NULL, 00065 NULL, 00066 flash_trsm_cntl_bp, 00067 flash_trsm_cntl_bp ); 00068 }
void FLASH_QR_UT_cntl_finalize | ( | void | ) |
References FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00058 { 00059 FLA_Cntl_obj_free( flash_qrut_cntl_leaf ); 00060 }
void FLASH_QR_UT_cntl_init | ( | void | ) |
References FLA_Cntl_qrut_obj_create().
Referenced by FLA_Cntl_init_flash().
00039 { 00040 // Create a control tree to compute the subproblem. 00041 flash_qrut_cntl_leaf = FLA_Cntl_qrut_obj_create( FLA_HIER, 00042 FLA_SUBPROBLEM, 00043 NULL, 00044 NULL, 00045 NULL, 00046 NULL, 00047 NULL, 00048 NULL, 00049 NULL, 00050 NULL, 00051 NULL ); 00052 00053 // Alias the leaf control tree. 00054 flash_qrut_cntl = flash_qrut_cntl_leaf; 00055 }
void FLASH_QR_UT_inc_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00059 { 00060 FLA_Cntl_obj_free( flash_qrutinc_cntl ); 00061 00062 FLA_Blocksize_free( flash_qrutinc_var1_bsize ); 00063 }
void FLASH_QR_UT_inc_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_qrutinc_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set blocksizes for hierarchical storage. 00046 flash_qrutinc_var1_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree to invoke variant 1. 00049 flash_qrutinc_cntl = FLA_Cntl_qrutinc_obj_create( FLA_HIER, 00050 FLA_BLOCKED_VARIANT1, 00051 flash_qrutinc_var1_bsize, 00052 flash_qrut_cntl, 00053 flash_apqut_cntl, 00054 flash_qrutud_cntl, 00055 flash_apqutud_cntl ); 00056 }
void FLASH_QR_UT_UD_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00068 { 00069 FLA_Cntl_obj_free( flash_qrutud_cntl_leaf ); 00070 FLA_Cntl_obj_free( flash_qrutud_cntl ); 00071 00072 FLA_Blocksize_free( flash_qrutud_var2_bsize ); 00073 }
void FLASH_QR_UT_UD_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_qrutud_obj_create().
Referenced by FLA_Cntl_init_flash().
00040 { 00041 // Set blocksize for hierarchical storage. 00042 flash_qrutud_var2_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00043 00044 // Create a control tree to invoke variant 1. 00045 flash_qrutud_cntl_leaf = FLA_Cntl_qrutud_obj_create( FLA_HIER, 00046 FLA_SUBPROBLEM, 00047 NULL, 00048 NULL, 00049 NULL, 00050 NULL, 00051 NULL, 00052 NULL, 00053 NULL ); 00054 00055 // Create a control tree to invoke variant 2. 00056 flash_qrutud_cntl = FLA_Cntl_qrutud_obj_create( FLA_HIER, 00057 FLA_BLOCKED_VARIANT2, 00058 flash_qrutud_var2_bsize, 00059 flash_qrutud_cntl_leaf, 00060 NULL, 00061 NULL, 00062 NULL, 00063 NULL, 00064 NULL ); 00065 }
void FLASH_SPDinv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00060 { 00061 FLA_Cntl_obj_free( flash_spdinv_cntl ); 00062 00063 FLA_Blocksize_free( flash_spdinv_size_cutoff ); 00064 }
void FLASH_SPDinv_cntl_init | ( | void | ) |
References FLA_Cntl_spdinv_obj_create(), and FLA_Query_blocksizes().
Referenced by FLA_Cntl_init_flash().
00043 { 00044 // Rather than embed a blocksize, we store the cutoff matrix size for 00045 // switching from external routines to internal FLAME variants. 00046 flash_spdinv_size_cutoff = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); 00047 00048 // Initialize a control tree node that calls the top-level Cholesky 00049 // factorization, Trinagular inversion, and Triangular-transpose matrix 00050 // multiply control trees. 00051 flash_spdinv_cntl = FLA_Cntl_spdinv_obj_create( FLA_HIER, 00052 FLA_BLOCKED_VARIANT1, 00053 flash_spdinv_size_cutoff, 00054 flash_chol_cntl, 00055 flash_trinv_cntl, 00056 flash_ttmm_cntl ); 00057 }
void FLASH_Sylv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00098 { 00099 FLA_Cntl_obj_free( flash_sylv_cntl_lapack ); 00100 FLA_Cntl_obj_free( flash_sylv_cntl_mb ); 00101 FLA_Cntl_obj_free( flash_sylv_cntl ); 00102 00103 FLA_Blocksize_free( flash_sylv_bsize ); 00104 }
void FLASH_Sylv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_sylv_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set blocksize for hierarchical storage. 00046 flash_sylv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_sylv_cntl_lapack = FLA_Cntl_sylv_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL, 00056 NULL, 00057 NULL, 00058 NULL, 00059 NULL, 00060 NULL, 00061 NULL, 00062 NULL ); 00063 00064 // Create a control tree that assumes A is a matrix and B is a block. 00065 flash_sylv_cntl_mb = FLA_Cntl_sylv_obj_create( FLA_HIER, 00066 FLA_BLOCKED_VARIANT17, 00067 flash_sylv_bsize, 00068 flash_sylv_cntl_lapack, 00069 NULL, 00070 NULL, 00071 flash_gemm_cntl_ip_bb, 00072 NULL, 00073 NULL, 00074 NULL, 00075 NULL, 00076 NULL, 00077 NULL, 00078 NULL ); 00079 00080 // Create a control tree that assumes A is a matrix and B is a matrix. 00081 flash_sylv_cntl = FLA_Cntl_sylv_obj_create( FLA_HIER, 00082 FLA_BLOCKED_VARIANT15, 00083 flash_sylv_bsize, 00084 flash_sylv_cntl_mb, 00085 NULL, 00086 NULL, 00087 flash_gemm_cntl_pm_bp, 00088 NULL, 00089 NULL, 00090 NULL, 00091 NULL, 00092 NULL, 00093 NULL, 00094 NULL ); 00095 }
void FLASH_Symm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00082 { 00083 FLA_Cntl_obj_free( flash_symm_cntl_blas ); 00084 00085 FLA_Cntl_obj_free( flash_symm_cntl_bp ); 00086 FLA_Cntl_obj_free( flash_symm_cntl_mp ); 00087 FLA_Cntl_obj_free( flash_symm_cntl_mm ); 00088 00089 FLA_Blocksize_free( flash_symm_bsize ); 00090 }
void FLASH_Symm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_symm_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set symm blocksize for hierarchical storage. 00046 flash_symm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_symm_cntl_blas = FLA_Cntl_symm_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL ); 00055 00056 // Create a control tree that assumes A is a block and B is a panel. 00057 flash_symm_cntl_bp = FLA_Cntl_symm_obj_create( FLA_HIER, 00058 FLA_BLOCKED_VARIANT9, 00059 flash_symm_bsize, 00060 flash_symm_cntl_blas, 00061 NULL, 00062 NULL ); 00063 00064 // Create a control tree that assumes A is large and B is a panel. 00065 flash_symm_cntl_mp = FLA_Cntl_symm_obj_create( FLA_HIER, 00066 FLA_BLOCKED_VARIANT4, 00067 flash_symm_bsize, 00068 flash_symm_cntl_blas, 00069 flash_gemm_cntl_op_bp, 00070 flash_gemm_cntl_op_bp ); 00071 00072 // Create a control tree that assumes A and B are both large. 00073 flash_symm_cntl_mm = FLA_Cntl_symm_obj_create( FLA_HIER, 00074 FLA_BLOCKED_VARIANT9, 00075 flash_symm_bsize, 00076 flash_symm_cntl_mp, 00077 NULL, 00078 NULL ); 00079 }
void FLASH_Syr2k_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00082 { 00083 FLA_Cntl_obj_free( flash_syr2k_cntl_blas ); 00084 00085 FLA_Cntl_obj_free( flash_syr2k_cntl_ip ); 00086 FLA_Cntl_obj_free( flash_syr2k_cntl_op ); 00087 FLA_Cntl_obj_free( flash_syr2k_cntl_sq ); 00088 00089 FLA_Blocksize_free( flash_syr2k_bsize ); 00090 }
void FLASH_Syr2k_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_syr2k_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set syr2k blocksize for hierarchical storage. 00046 flash_syr2k_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_syr2k_cntl_blas = FLA_Cntl_syr2k_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL ); 00055 00056 // Create a control tree that assumes A and B form an inner panel product. 00057 flash_syr2k_cntl_ip = FLA_Cntl_syr2k_obj_create( FLA_HIER, 00058 FLA_BLOCKED_VARIANT9, 00059 flash_syr2k_bsize, 00060 flash_syr2k_cntl_blas, 00061 NULL, 00062 NULL ); 00063 00064 // Create a control tree that assumes A and B form an outer panel product. 00065 flash_syr2k_cntl_op = FLA_Cntl_syr2k_obj_create( FLA_HIER, 00066 FLA_BLOCKED_VARIANT4, 00067 flash_syr2k_bsize, 00068 flash_syr2k_cntl_blas, 00069 flash_gemm_cntl_pb_bb, 00070 flash_gemm_cntl_pb_bb ); 00071 00072 // Create a control tree that assumes A and B are both large. 00073 flash_syr2k_cntl_sq = FLA_Cntl_syr2k_obj_create( FLA_HIER, 00074 FLA_BLOCKED_VARIANT9, 00075 flash_syr2k_bsize, 00076 flash_syr2k_cntl_op, 00077 NULL, 00078 NULL ); 00079 }
void FLASH_Syrk_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00078 { 00079 FLA_Cntl_obj_free( flash_syrk_cntl_blas ); 00080 00081 FLA_Cntl_obj_free( flash_syrk_cntl_ip ); 00082 FLA_Cntl_obj_free( flash_syrk_cntl_op ); 00083 FLA_Cntl_obj_free( flash_syrk_cntl_sq ); 00084 00085 FLA_Blocksize_free( flash_syrk_bsize ); 00086 }
void FLASH_Syrk_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_syrk_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set syrk blocksize for hierarchical storage. 00046 flash_syrk_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A is a b x b block. 00049 flash_syrk_cntl_blas = FLA_Cntl_syrk_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL ); 00054 00055 // Create a control tree that assumes A * A' forms an inner panel product. 00056 flash_syrk_cntl_ip = FLA_Cntl_syrk_obj_create( FLA_HIER, 00057 FLA_BLOCKED_VARIANT5, 00058 flash_syrk_bsize, 00059 flash_syrk_cntl_blas, 00060 NULL ); 00061 00062 // Create a control tree that assumes A * A' forms an outer panel product. 00063 flash_syrk_cntl_op = FLA_Cntl_syrk_obj_create( FLA_HIER, 00064 FLA_BLOCKED_VARIANT2, 00065 flash_syrk_bsize, 00066 flash_syrk_cntl_blas, 00067 flash_gemm_cntl_pb_bb ); 00068 00069 // Create a control tree that assumes A is large. 00070 flash_syrk_cntl_sq = FLA_Cntl_syrk_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT5, 00072 flash_syrk_bsize, 00073 flash_syrk_cntl_op, 00074 NULL ); 00075 }
void FLASH_Transpose_cntl_finalize | ( | void | ) |
void FLASH_Transpose_cntl_init | ( | void | ) |
void FLASH_Trinv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00069 { 00070 FLA_Cntl_obj_free( flash_trinv_cntl_lapack ); 00071 FLA_Cntl_obj_free( flash_trinv_cntl ); 00072 00073 FLA_Blocksize_free( flash_trinv_bsize ); 00074 }
void FLASH_Trinv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trinv_obj_create().
Referenced by FLA_Cntl_init_flash().
00043 { 00044 // Set blocksize for hierarchical storage. 00045 flash_trinv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00046 00047 // Create a control tree that assumes A is a b x b block. 00048 flash_trinv_cntl_lapack = FLA_Cntl_trinv_obj_create( FLA_HIER, 00049 FLA_SUBPROBLEM, 00050 NULL, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL ); 00056 00057 // Create a control tree that assumes A is large. 00058 flash_trinv_cntl = FLA_Cntl_trinv_obj_create( FLA_HIER, 00059 FLA_BLOCKED_VARIANT3, 00060 flash_trinv_bsize, 00061 flash_trinv_cntl_lapack, 00062 NULL, 00063 flash_trsm_cntl_bp, 00064 flash_trsm_cntl_bp, 00065 flash_gemm_cntl_op_bp ); 00066 }
void FLASH_Trmm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00078 { 00079 FLA_Cntl_obj_free( flash_trmm_cntl_blas ); 00080 00081 FLA_Cntl_obj_free( flash_trmm_cntl_bp ); 00082 FLA_Cntl_obj_free( flash_trmm_cntl_mp ); 00083 FLA_Cntl_obj_free( flash_trmm_cntl_mm ); 00084 00085 FLA_Blocksize_free( flash_trmm_bsize ); 00086 }
void FLASH_Trmm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trmm_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set trmm blocksize for hierarchical storage. 00046 flash_trmm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_trmm_cntl_blas = FLA_Cntl_trmm_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL ); 00054 00055 // Create a control tree that assumes A is a block and B is a panel. 00056 flash_trmm_cntl_bp = FLA_Cntl_trmm_obj_create( FLA_HIER, 00057 FLA_BLOCKED_VARIANT3, 00058 flash_trmm_bsize, 00059 flash_trmm_cntl_blas, 00060 NULL ); 00061 00062 // Create a control tree that assumes A is large and B is a panel. 00063 flash_trmm_cntl_mp = FLA_Cntl_trmm_obj_create( FLA_HIER, 00064 FLA_BLOCKED_VARIANT2, 00065 flash_trmm_bsize, 00066 flash_trmm_cntl_blas, 00067 flash_gemm_cntl_op_bp ); 00068 00069 // Create a control tree that assumes A and B are both large. 00070 flash_trmm_cntl_mm = FLA_Cntl_trmm_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT3, 00072 flash_trmm_bsize, 00073 flash_trmm_cntl_mp, 00074 NULL ); 00075 }
void FLASH_Trsm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00078 { 00079 FLA_Cntl_obj_free( flash_trsm_cntl_blas ); 00080 00081 FLA_Cntl_obj_free( flash_trsm_cntl_bp ); 00082 FLA_Cntl_obj_free( flash_trsm_cntl_mp ); 00083 FLA_Cntl_obj_free( flash_trsm_cntl_mm ); 00084 00085 FLA_Blocksize_free( flash_trsm_bsize ); 00086 }
void FLASH_Trsm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trsm_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set trsm blocksize for hierarchical storage. 00046 flash_trsm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A and B are b x b blocks. 00049 flash_trsm_cntl_blas = FLA_Cntl_trsm_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL ); 00054 00055 // Create a control tree that assumes A is a block and B is a panel. 00056 flash_trsm_cntl_bp = FLA_Cntl_trsm_obj_create( FLA_HIER, 00057 FLA_BLOCKED_VARIANT3, 00058 flash_trsm_bsize, 00059 flash_trsm_cntl_blas, 00060 NULL ); 00061 00062 // Create a control tree that assumes A is large and B is a panel. 00063 flash_trsm_cntl_mp = FLA_Cntl_trsm_obj_create( FLA_HIER, 00064 FLA_BLOCKED_VARIANT2, 00065 flash_trsm_bsize, 00066 flash_trsm_cntl_blas, 00067 flash_gemm_cntl_op_bp ); 00068 00069 // Create a control tree that assumes A and B are both large. 00070 flash_trsm_cntl_mm = FLA_Cntl_trsm_obj_create( FLA_HIER, 00071 FLA_BLOCKED_VARIANT3, 00072 flash_trsm_bsize, 00073 flash_trsm_cntl_mp, 00074 NULL ); 00075 }
void FLASH_Trsv_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00062 { 00063 FLA_Cntl_obj_free( flash_trsv_cntl_blas ); 00064 00065 FLA_Cntl_obj_free( flash_trsv_cntl ); 00066 00067 FLA_Blocksize_free( flash_trsv_bsize ); 00068 }
void FLASH_Trsv_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_trsv_obj_create().
Referenced by FLA_Cntl_init_flash().
00042 { 00043 // Set trsv blocksize for hierarchical storage. 00044 flash_trsv_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00045 00046 // Create a control tree that assumes A is a b x b block. 00047 flash_trsv_cntl_blas = FLA_Cntl_trsv_obj_create( FLA_HIER, 00048 FLA_SUBPROBLEM, 00049 NULL, 00050 NULL, 00051 NULL ); 00052 00053 // Create a control tree that assumes A is large. 00054 flash_trsv_cntl = FLA_Cntl_trsv_obj_create( FLA_HIER, 00055 FLA_BLOCKED_VARIANT2, 00056 flash_trsv_bsize, 00057 flash_trsv_cntl_blas, 00058 flash_gemv_cntl_cp_bv ); 00059 }
void FLASH_Ttmm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flash().
00070 { 00071 FLA_Cntl_obj_free( flash_ttmm_cntl_lapack ); 00072 FLA_Cntl_obj_free( flash_ttmm_cntl ); 00073 00074 FLA_Blocksize_free( flash_ttmm_bsize ); 00075 }
void FLASH_Ttmm_cntl_init | ( | void | ) |
References FLA_Blocksize_create(), and FLA_Cntl_ttmm_obj_create().
Referenced by FLA_Cntl_init_flash().
00044 { 00045 // Set blocksize for hierarchical storage. 00046 flash_ttmm_bsize = FLA_Blocksize_create( 1, 1, 1, 1 ); 00047 00048 // Create a control tree that assumes A is a b x b block. 00049 flash_ttmm_cntl_lapack = FLA_Cntl_ttmm_obj_create( FLA_HIER, 00050 FLA_SUBPROBLEM, 00051 NULL, 00052 NULL, 00053 NULL, 00054 NULL, 00055 NULL, 00056 NULL ); 00057 00058 // Create a control tree that assumes A is large. 00059 flash_ttmm_cntl = FLA_Cntl_ttmm_obj_create( FLA_HIER, 00060 FLA_BLOCKED_VARIANT1, 00061 flash_ttmm_bsize, 00062 flash_ttmm_cntl_lapack, 00063 flash_syrk_cntl_op, 00064 flash_herk_cntl_op, 00065 flash_trmm_cntl_bp, 00066 NULL ); 00067 }