Skip to content
Snippets Groups Projects
Commit 6b4c9e09 authored by rarbore2's avatar rarbore2
Browse files

attempt unroll+tile for cfd

parent ed030c23
No related branches found
No related tags found
1 merge request!228Schedule CFD
Pipeline #202116 failed
...@@ -14,7 +14,7 @@ fn cfd_bench(c: &mut Criterion) { ...@@ -14,7 +14,7 @@ fn cfd_bench(c: &mut Criterion) {
let mut euler_bench = |name, data_file, iterations| { let mut euler_bench = |name, data_file, iterations| {
let mut r = runner!(euler); let mut r = runner!(euler);
let block_size = 16; let block_size = 256;
let FarFieldConditions { let FarFieldConditions {
ff_variable, ff_variable,
ff_fc_momentum_x, ff_fc_momentum_x,
...@@ -92,7 +92,7 @@ fn cfd_bench(c: &mut Criterion) { ...@@ -92,7 +92,7 @@ fn cfd_bench(c: &mut Criterion) {
let mut pre_euler_bench = |name, data_file, iterations| { let mut pre_euler_bench = |name, data_file, iterations| {
let mut r = runner!(pre_euler); let mut r = runner!(pre_euler);
let block_size = 16; let block_size = 256;
let FarFieldConditions { let FarFieldConditions {
ff_variable, ff_variable,
ff_fc_momentum_x, ff_fc_momentum_x,
......
...@@ -25,7 +25,8 @@ fixpoint { ...@@ -25,7 +25,8 @@ fixpoint {
fork-guard-elim(*); fork-guard-elim(*);
} }
simpl!(*); simpl!(*);
unforkify(compute_flux@inner_loop); //unforkify(compute_flux@inner_loop);
fork-unroll(compute_flux);
if !feature("seq") { if !feature("seq") {
fork-tile[32, 0, false, false](compute_step_factor); fork-tile[32, 0, false, false](compute_step_factor);
...@@ -41,6 +42,7 @@ if !feature("seq") { ...@@ -41,6 +42,7 @@ if !feature("seq") {
fork-coalesce(compute_flux, compute_flux_body); fork-coalesce(compute_flux, compute_flux_body);
simpl!(compute_flux, compute_flux_body); simpl!(compute_flux, compute_flux_body);
compute_flux = compute_flux_body; compute_flux = compute_flux_body;
fork-tile[8, 0, false, true](compute_flux);
fork-tile[32, 0, false, false](time_step); fork-tile[32, 0, false, false](time_step);
let split = fork-split(time_step); let split = fork-split(time_step);
......
...@@ -25,7 +25,8 @@ fixpoint { ...@@ -25,7 +25,8 @@ fixpoint {
} }
simpl!(*); simpl!(*);
no-memset(compute_step_factor@res, compute_flux_contributions@res, compute_flux@res, copy_vars@res); no-memset(compute_step_factor@res, compute_flux_contributions@res, compute_flux@res, copy_vars@res);
unforkify(compute_flux@inner_loop); //unforkify(compute_flux@inner_loop);
fork-unroll(compute_flux);
if !feature("seq") { if !feature("seq") {
fork-tile[32, 0, false, false](compute_step_factor); fork-tile[32, 0, false, false](compute_step_factor);
...@@ -48,6 +49,7 @@ if !feature("seq") { ...@@ -48,6 +49,7 @@ if !feature("seq") {
fork-coalesce(compute_flux, compute_flux_body); fork-coalesce(compute_flux, compute_flux_body);
simpl!(compute_flux, compute_flux_body); simpl!(compute_flux, compute_flux_body);
compute_flux = compute_flux_body; compute_flux = compute_flux_body;
fork-tile[8, 0, false, true](compute_flux);
fork-tile[32, 0, false, false](time_step); fork-tile[32, 0, false, false](time_step);
let split = fork-split(time_step); let split = fork-split(time_step);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment