void FLA_Gemm_cntl_finalize | ( | void | ) |
References FLA_Blocksize_free(), and FLA_Cntl_obj_free().
Referenced by FLA_Cntl_finalize_flamec().
00185 { 00186 FLA_Cntl_obj_free( fla_gemm_cntl_blas ); 00187 00188 FLA_Cntl_obj_free( fla_gemm_cntl_pb_bb ); 00189 FLA_Cntl_obj_free( fla_gemm_cntl_bp_bb ); 00190 FLA_Cntl_obj_free( fla_gemm_cntl_ip_bb ); 00191 00192 FLA_Cntl_obj_free( fla_gemm_cntl_mp_ip ); 00193 FLA_Cntl_obj_free( fla_gemm_cntl_mp_ip_bb ); 00194 FLA_Cntl_obj_free( fla_gemm_cntl_op_bp ); 00195 FLA_Cntl_obj_free( fla_gemm_cntl_op_bp_bb ); 00196 FLA_Cntl_obj_free( fla_gemm_cntl_pm_ip ); 00197 FLA_Cntl_obj_free( fla_gemm_cntl_pm_ip_bb ); 00198 FLA_Cntl_obj_free( fla_gemm_cntl_op_pb ); 00199 FLA_Cntl_obj_free( fla_gemm_cntl_op_pb_bb ); 00200 FLA_Cntl_obj_free( fla_gemm_cntl_mp_pb ); 00201 FLA_Cntl_obj_free( fla_gemm_cntl_mp_pb_bb ); 00202 FLA_Cntl_obj_free( fla_gemm_cntl_pm_bp ); 00203 FLA_Cntl_obj_free( fla_gemm_cntl_pm_bp_bb ); 00204 00205 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm ); 00206 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm_ip ); 00207 FLA_Cntl_obj_free( fla_gemm_cntl_mm_pm_ip_bb ); 00208 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp ); 00209 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp_ip ); 00210 FLA_Cntl_obj_free( fla_gemm_cntl_mm_mp_ip_bb ); 00211 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op ); 00212 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op_bp ); 00213 FLA_Cntl_obj_free( fla_gemm_cntl_mm_op_bp_bb ); 00214 00215 FLA_Blocksize_free( fla_gemm_var1_bsize ); 00216 FLA_Blocksize_free( fla_gemm_var3_bsize ); 00217 FLA_Blocksize_free( fla_gemm_var5_bsize ); 00218 }
void FLA_Gemm_cntl_init | ( | void | ) |
References FLA_Cntl_gemm_obj_create(), and FLA_Query_blocksizes().
Referenced by FLA_Cntl_init_flamec().
00069 { 00070 // Set blocksizes with default values for conventional storage. 00071 fla_gemm_var1_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); 00072 fla_gemm_var3_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); 00073 fla_gemm_var5_bsize = FLA_Query_blocksizes( FLA_DIMENSION_MIN ); 00074 00075 // Create a control tree node that executes a gemm subproblem. 00076 fla_gemm_cntl_blas = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00077 FLA_SUBPROBLEM, 00078 NULL, 00079 NULL ); 00080 00081 // Create control trees for situations where one dimension is large. 00082 fla_gemm_cntl_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00083 FLA_BLOCKED_VARIANT1, 00084 fla_gemm_var1_bsize, 00085 fla_gemm_cntl_blas ); 00086 fla_gemm_cntl_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00087 FLA_BLOCKED_VARIANT3, 00088 fla_gemm_var3_bsize, 00089 fla_gemm_cntl_blas ); 00090 fla_gemm_cntl_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00091 FLA_BLOCKED_VARIANT5, 00092 fla_gemm_var5_bsize, 00093 fla_gemm_cntl_blas ); 00094 00095 // Create control trees for situations where two dimensions are large. 00096 fla_gemm_cntl_mp_ip = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00097 FLA_BLOCKED_VARIANT1, 00098 fla_gemm_var1_bsize, 00099 fla_gemm_cntl_blas ); 00100 fla_gemm_cntl_mp_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00101 FLA_BLOCKED_VARIANT1, 00102 fla_gemm_var1_bsize, 00103 fla_gemm_cntl_ip_bb ); 00104 fla_gemm_cntl_op_bp = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00105 FLA_BLOCKED_VARIANT1, 00106 fla_gemm_var1_bsize, 00107 fla_gemm_cntl_blas ); 00108 fla_gemm_cntl_op_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00109 FLA_BLOCKED_VARIANT1, 00110 fla_gemm_var1_bsize, 00111 fla_gemm_cntl_bp_bb ); 00112 fla_gemm_cntl_pm_ip = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00113 FLA_BLOCKED_VARIANT3, 00114 fla_gemm_var3_bsize, 00115 fla_gemm_cntl_blas ); 00116 fla_gemm_cntl_pm_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00117 FLA_BLOCKED_VARIANT3, 00118 fla_gemm_var3_bsize, 00119 fla_gemm_cntl_ip_bb ); 00120 fla_gemm_cntl_op_pb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00121 FLA_BLOCKED_VARIANT3, 00122 fla_gemm_var3_bsize, 00123 fla_gemm_cntl_blas ); 00124 fla_gemm_cntl_op_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00125 FLA_BLOCKED_VARIANT3, 00126 fla_gemm_var3_bsize, 00127 fla_gemm_cntl_pb_bb ); 00128 fla_gemm_cntl_mp_pb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00129 FLA_BLOCKED_VARIANT5, 00130 fla_gemm_var5_bsize, 00131 fla_gemm_cntl_blas ); 00132 fla_gemm_cntl_mp_pb_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00133 FLA_BLOCKED_VARIANT5, 00134 fla_gemm_var5_bsize, 00135 fla_gemm_cntl_pb_bb ); 00136 fla_gemm_cntl_pm_bp = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00137 FLA_BLOCKED_VARIANT5, 00138 fla_gemm_var5_bsize, 00139 fla_gemm_cntl_blas ); 00140 fla_gemm_cntl_pm_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00141 FLA_BLOCKED_VARIANT5, 00142 fla_gemm_var5_bsize, 00143 fla_gemm_cntl_bp_bb ); 00144 00145 // Create control trees for situations where all dimensions are large. 00146 fla_gemm_cntl_mm_pm = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00147 FLA_BLOCKED_VARIANT1, 00148 fla_gemm_var1_bsize, 00149 fla_gemm_cntl_blas ); 00150 fla_gemm_cntl_mm_pm_ip = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00151 FLA_BLOCKED_VARIANT1, 00152 fla_gemm_var1_bsize, 00153 fla_gemm_cntl_pm_ip ); 00154 fla_gemm_cntl_mm_pm_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00155 FLA_BLOCKED_VARIANT1, 00156 fla_gemm_var1_bsize, 00157 fla_gemm_cntl_pm_ip_bb ); 00158 fla_gemm_cntl_mm_mp = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00159 FLA_BLOCKED_VARIANT3, 00160 fla_gemm_var3_bsize, 00161 fla_gemm_cntl_blas ); 00162 fla_gemm_cntl_mm_mp_ip = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00163 FLA_BLOCKED_VARIANT3, 00164 fla_gemm_var3_bsize, 00165 fla_gemm_cntl_mp_ip ); 00166 fla_gemm_cntl_mm_mp_ip_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00167 FLA_BLOCKED_VARIANT3, 00168 fla_gemm_var3_bsize, 00169 fla_gemm_cntl_mp_ip_bb ); 00170 fla_gemm_cntl_mm_op = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00171 FLA_BLOCKED_VARIANT5, 00172 fla_gemm_var5_bsize, 00173 fla_gemm_cntl_blas ); 00174 fla_gemm_cntl_mm_op_bp = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00175 FLA_BLOCKED_VARIANT5, 00176 fla_gemm_var5_bsize, 00177 fla_gemm_cntl_op_bp ); 00178 fla_gemm_cntl_mm_op_bp_bb = FLA_Cntl_gemm_obj_create( FLA_FLAT, 00179 FLA_BLOCKED_VARIANT5, 00180 fla_gemm_var5_bsize, 00181 fla_gemm_cntl_op_bp_bb ); 00182 }