low bound
| 1174 | |
| 1175 | // low bound |
| 1176 | mluOpStatus_t MLUOP_WIN_API calParallelNumLowBound(mluOpHandle_t handle, |
| 1177 | mluOpFFTPlan_t fft_plan, |
| 1178 | int *facbuf, const int stage, |
| 1179 | int ¶llel_num_lb, |
| 1180 | const int is_row_major) { |
| 1181 | const size_t nram_space_size = |
| 1182 | (handle->nram_size + REM_FOR_STACK - 32 * 1024 - FFT_MAXFACTORS * 4); |
| 1183 | size_t workspace_size = 0; |
| 1184 | size_t reservespace_size = 0; |
| 1185 | const int max_radix = 64; |
| 1186 | size_t TYPE_SIZE = 0; |
| 1187 | parallel_num_lb = 0; |
| 1188 | size_t nram_space_need = 0; |
| 1189 | size_t nram_space_need_tw = 0; |
| 1190 | size_t nram_space_need_dftmtx = |
| 1191 | (stage == 1) ? max_radix * max_radix * 2 * 2 * 4 |
| 1192 | : max_radix * max_radix * 2 * 4; // complex |
| 1193 | // int nram_space_need_dftmtx_align = 0; |
| 1194 | size_t space_need_matmul = 0; |
| 1195 | size_t space_need_matmul_tmp = 0; |
| 1196 | int small_stage_num = facbuf[0]; |
| 1197 | int _n = facbuf[1]; |
| 1198 | int radix = 0; |
| 1199 | int section_num = 0; |
| 1200 | int butterfly_num = 0; |
| 1201 | int para_num = 0; |
| 1202 | int K_num = 0; |
| 1203 | int align_M = 0; |
| 1204 | int align_K = 0; |
| 1205 | int align_N = 0; |
| 1206 | |
| 1207 | mluOpStatus_t status; |
| 1208 | |
| 1209 | switch (fft_plan->fft_type) { |
| 1210 | // r2c |
| 1211 | case CNFFT_COMPLEX_HALF2HALF: |
| 1212 | case CNFFT_COMPLEX_FLOAT2FLOAT: |
| 1213 | case CNFFT_HALF2COMPLEX_HALF: |
| 1214 | case CNFFT_FLOAT2COMPLEX_FLOAT: { |
| 1215 | TYPE_SIZE = 4; |
| 1216 | K_num = 64 / TYPE_SIZE; |
| 1217 | |
| 1218 | if (stage == 1) { |
| 1219 | nram_space_need = 0; |
| 1220 | // nram_para_load_ping |
| 1221 | nram_space_need += _n * 2 * TYPE_SIZE; // complex |
| 1222 | // nram_para_load_pong |
| 1223 | nram_space_need += _n * 2 * TYPE_SIZE; // complex |
| 1224 | // nram_para_store_ping |
| 1225 | nram_space_need += _n * 2 * TYPE_SIZE; // complex |
| 1226 | // nram_para_store_pong |
| 1227 | nram_space_need += _n * 2 * TYPE_SIZE; // complex |
| 1228 | |
| 1229 | nram_space_need += _n * 5 * TYPE_SIZE; // complex |
| 1230 | } else { |
| 1231 | nram_space_need = 0; |
| 1232 | // nram_para_load_ping |
| 1233 | nram_space_need += _n * 2 * TYPE_SIZE; // complex |
nothing calls this directly
no outgoing calls
no test coverage detected