void rdwisdom(void) { FILE *f; double tim; int success = 0; if (havewisdom) return; #ifdef HAVE_SMP BENCH_ASSERT(FFTW(init_threads)()); FFTW(plan_with_nthreads)(nthreads); #endif if (!usewisdom) return; timer_start(USER_TIMER); if ((f = fopen(wisdat, "r"))) { if (!import_wisdom(f)) fprintf(stderr, "bench: ERROR reading wisdom\n"); else success = 1; fclose(f); } tim = timer_stop(USER_TIMER); if (success) { if (verbose > 1) printf("READ WISDOM (%g seconds): ", tim); if (verbose > 3) export_wisdom(stdout); if (verbose > 1) printf("\n"); } havewisdom = 1; }
void wrwisdom(void) { FILE *f; double tim; if (!havewisdom) return; timer_start(USER_TIMER); if ((f = fopen(wisdat, "w"))) { export_wisdom(f); fclose(f); } tim = timer_stop(USER_TIMER); if (verbose > 1) printf("write wisdom took %g seconds\n", tim); }
void rdwisdom(void) { FILE *f; double tim; int success = 0; if (havewisdom) return; #ifdef HAVE_SMP if (threads_ok) { BENCH_ASSERT(FFTW(init_threads)()); FFTW(plan_with_nthreads)(nthreads); FFTW(make_planner_thread_safe)(); #ifdef _OPENMP omp_set_num_threads(nthreads); #endif } else if (nthreads > 1 && verbose > 1) { fprintf(stderr, "bench: WARNING - nthreads = %d, but threads not supported\n", nthreads); nthreads = 1; } #endif if (!usewisdom) return; timer_start(USER_TIMER); if ((f = fopen(wisdat, "r"))) { if (!import_wisdom(f)) fprintf(stderr, "bench: ERROR reading wisdom\n"); else success = 1; fclose(f); } tim = timer_stop(USER_TIMER); if (success) { if (verbose > 1) printf("READ WISDOM (%g seconds): ", tim); if (verbose > 3) export_wisdom(stdout); if (verbose > 1) printf("\n"); } havewisdom = 1; }