diff --git a/.gitignore b/.gitignore index ba3b13f..ec5d49a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.csv *.gif *.mp4 +!simulation.mp4 !reference/*.csv !analysis/*.csv diff --git a/70_report.pdf b/70_report.pdf index 1e81586..a7355fb 100644 Binary files a/70_report.pdf and b/70_report.pdf differ diff --git a/README.md b/README.md index 6397c34..3fd4fe3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This repository contains the C++ simulation code and Python visualization code u ## Results -The logs of our benchmarks are stored inside the [`measurements`](./measurements/) folder. However, the log files contain incorrect flop counts since our benchmarking code assumed the same baseline flop count for all versions. Thus, we manually recalculated the flop count for each version and created helper functions for the correct flop counts inside the [`flopcounts`](./flopcounts/) folder. **The final, correct results are stored inside [`analysis/results_x86.csv`](./analysis/results_x86.csv).** [`variant_inlining_8.cpp`](./variants/variant_inlining_8.cpp) is our best non-vectorized version, while [`variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_improved_moreilp.cpp`](./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_improved_moreilp.cpp) is our best vectorized version. The measurements for the best non-vectorized version compiled with flags specifically disabling vectorization are stored at [`4.log`](./measurements/variant_inlining_8/x86/4.log), [`5.log`](./measurements/variant_inlining_8/x86/5.log), and [`6.log`](measurements/variant_inlining_8/x86/6.log). Additionally, the markdown files we have inside [`docs`](./docs/) are outdated and incomplete. Thus, **the final report [`70_report.pdf`](./70_report.pdf) should be used as the sole reference for all of our optimizations**. +The logs of our benchmarks are stored inside the [`measurements`](./measurements/) folder. However, the log files contain incorrect flop counts since our benchmarking code assumed the same baseline flop count for all versions. Thus, we manually recalculated the flop count for each version and created helper functions for the correct flop counts inside the [`flopcounts`](./flopcounts/) folder. **The final, correct results are stored inside [`analysis/results_x86.csv`](./analysis/results_x86.csv).** [`variant_inlining_8.cpp`](./variants/variant_inlining_8.cpp) is our best non-vectorized version, while [`variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_improved_moreilp.cpp`](./variants/variant_float_inlining_SoA_AVX512_polyexp_moreavx_ilp_2_rsqrt_morersqrt_improved_moreilp.cpp) is our best vectorized version. The measurements for the best non-vectorized version compiled with flags specifically disabling vectorization are stored at [`4.log`](./measurements/variant_inlining_8/x86/4.log), [`5.log`](./measurements/variant_inlining_8/x86/5.log), and [`6.log`](measurements/variant_inlining_8/x86/6.log). Additionally, the markdown files we have inside [`docs`](./docs/) are incomplete and outdated. Thus, **the final report [`70_report.pdf`](./70_report.pdf) should be used as the sole reference for all of our optimizations**. ## Requirements diff --git a/analysis/plots.py b/analysis/plots.py index 5a1c6ed..a3f4451 100644 --- a/analysis/plots.py +++ b/analysis/plots.py @@ -3,7 +3,6 @@ import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.patheffects as pe -#import seaborn as sns # tried it, the default look was worse df = pd.read_csv("analysis/results_x86.csv") diff --git a/simulation.mp4 b/simulation.mp4 new file mode 100644 index 0000000..7aa0126 Binary files /dev/null and b/simulation.mp4 differ