154 nbstart = pastix_atomic_inc_32b( &(kernels_trace_started) );
160#if defined(PASTIX_WITH_EZTRACE)
167 ! ( trace_status & PastixTraceInitialised ) ) {
168 char *level = pastix_getenv(
"PASTIX_EZTRACE_LEVEL");
170 pastix_eztrace_level = atoi(level);
171 pastix_cleanenv(level);
175 pastix_setenv(
"EZTRACE_TRACE_DIR", pastix_data->
dir_global, 1 );
186 trace_status |= PastixTraceInitialised;
191#if defined(PASTIX_GENERATE_MODEL)
204 nbtrsm = cblkmin2d + (cblknbr - cblkmin2d) * solvmtx->
cblkmaxblk;
210 nbgemm = solvmtx->
bloknbr - cblknbr;
215 cblk = solvmtx->
cblktab+cblkmin2d;
216 for(cblknum = cblkmin2d; cblknum < cblknbr; cblknum++, cblk++ ) {
220 nbgemm += nbodb * nbodb;
223 nbgemm += (nbodb * (nbodb-1)) / 2;
227 total_number_of_tasks = nbfact + nbtrsm + nbgemm;
228 model_entries = malloc( total_number_of_tasks *
sizeof(pastix_model_entry_t) );
229 model_size = total_number_of_tasks;
233 memset( (
void*)
kernels_flops, 0, PastixKernelLvl1Nbr *
sizeof(
double) );
238 kernels_trace_started = 1;
264 nbstart = pastix_atomic_dec_32b( &(kernels_trace_started) );
267 assert( nbstart >= 0 );
270 assert( nbstart == 0 );
272#if defined(PASTIX_WITH_EZTRACE)
276 if ( ( trace_status & PastixTraceInitialised ) ) {
282#if defined(PASTIX_GENERATE_MODEL)
284 char *prec_names[4] = {
285 "s - single real",
"d - double real",
286 "c - single complex",
"z - double complex"
288 pastix_model_entry_t *entry = model_entries;
292 f = fopen(
"model.csv",
"w" );
299 fprintf(f,
"# GPU Model data\n");
302 fprintf(f,
"# CPU Model data\n");
305 fprintf( f,
"# Precision: %d - %s\n", pastix_data->
bcsc->flttype - 2, prec_names[ pastix_data->
bcsc->flttype - 2 ] );
306 fprintf( f,
"Kernel;M;N;K;Time\n" );
308 for(i=0; i <= model_entries_nbr; i++, entry++ ) {
309 switch( entry->ktype ) {
329 pastix_attr_fallthrough;
331 fprintf( f,
"%d;%d;%d;%d;%e\n",
332 entry->ktype, entry->m, entry->n, entry->k, entry->time );
338 free( model_entries );
341 model_entries = NULL;
342 model_entries_nbr = -1;
351#if defined(PASTIX_SUPERNODE_STATS)
354 " Details of the number of operations:\n"
355 " - POTRF(A11) + TRSM(A11, A21): %6.2lf %cFlops\n"
356 " - HERK(A21, A22) : %6.2lf %cFlops\n"
357 " - POTRF(A22) : %6.2lf %cFlops\n"
358 " Total : %6.2lf %cFlops\n",
367 kernels_trace_started = 0;