diff options
Diffstat (limited to 'mg2d.c')
-rw-r--r-- | mg2d.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -24,6 +24,7 @@ #include <string.h> #include "common.h" +#include "cpu.h" #include "ell_relax.h" #include "log.h" #include "mg2d.h" @@ -54,6 +55,8 @@ struct MG2DInternal { MG2DLevel *root; + int cpuflags; + int64_t time_solve; int64_t count_solve; @@ -343,6 +346,7 @@ static int mg_levels_init(MG2DContext *ctx) cur->solver->step[0] = prev->solver->step[0] * ((double)(prev->solver->domain_size[0] - 1) / (cur->solver->domain_size[0] - 1)); cur->solver->step[1] = prev->solver->step[1] * ((double)(prev->solver->domain_size[1] - 1) / (cur->solver->domain_size[1] - 1)); } + cur->solver->cpuflags = priv->cpuflags; cur->solver->fd_stencil = ctx->fd_stencil; @@ -497,6 +501,8 @@ MG2DContext *mg2d_solver_alloc(size_t domain_size) priv->logger.log = log_callback; priv->logger.opaque = ctx; + priv->cpuflags = mg2di_cpu_flags_get(); + for (int i = 0; i < ARRAY_ELEMS(ctx->boundaries); i++) { const size_t boundary_len_max = domain_size + 2 * (FD_STENCIL_MAX - 1); |