From 168b3375d74a31a188a7866915aa09e0a3e2241d Mon Sep 17 00:00:00 2001 From: Antony Chan Date: Sat, 23 May 2026 14:08:12 -0700 Subject: [PATCH 1/2] Enable autovectorization for single-thread algorithms When the build system detects the native build environment, i.e. compile and run PSF simulation on the same machine, enable compiler option `-fmarch=native` so that the compiler can detect the CPU's vectorization capabilities. Reference: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html --- microsc-psf/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/microsc-psf/meson.build b/microsc-psf/meson.build index 7ad8750..7e3e5aa 100644 --- a/microsc-psf/meson.build +++ b/microsc-psf/meson.build @@ -1,5 +1,7 @@ microsc_psf_inc = include_directories('inc') +enable_autovectorization = meson.is_cross_build() ? '' : '-march=native' + if get_option('use_eigen') warning('Solving linear least squares with Eigen3, not Lapack') @@ -10,6 +12,7 @@ if get_option('use_eigen') eigen_solver_lib = static_library('eigen_solver', sources: 'src/linsolver.cpp', include_directories: include_directories('inc'), + cpp_args: enable_autovectorization, dependencies: [ dependency('eigen', fallback: ['eigen', 'eigen_dep']), armadillo_dep, @@ -39,6 +42,7 @@ microsc_psf_lib = static_library('microsc-psf', cpp_args: [ '-D' + bessel_source, use_lapack_args, + enable_autovectorization, ], include_directories: [ microsc_psf_inc, From 2b9f37c1fd1c9800a8e86a8f728167c1f1b5e246 Mon Sep 17 00:00:00 2001 From: Antony Chan Date: Tue, 26 May 2026 21:34:23 -0700 Subject: [PATCH 2/2] Revert "Enable autovectorization for single-thread algorithms" This reverts commit 168b3375d74a31a188a7866915aa09e0a3e2241d. --- microsc-psf/meson.build | 4 ---- 1 file changed, 4 deletions(-) diff --git a/microsc-psf/meson.build b/microsc-psf/meson.build index 7e3e5aa..7ad8750 100644 --- a/microsc-psf/meson.build +++ b/microsc-psf/meson.build @@ -1,7 +1,5 @@ microsc_psf_inc = include_directories('inc') -enable_autovectorization = meson.is_cross_build() ? '' : '-march=native' - if get_option('use_eigen') warning('Solving linear least squares with Eigen3, not Lapack') @@ -12,7 +10,6 @@ if get_option('use_eigen') eigen_solver_lib = static_library('eigen_solver', sources: 'src/linsolver.cpp', include_directories: include_directories('inc'), - cpp_args: enable_autovectorization, dependencies: [ dependency('eigen', fallback: ['eigen', 'eigen_dep']), armadillo_dep, @@ -42,7 +39,6 @@ microsc_psf_lib = static_library('microsc-psf', cpp_args: [ '-D' + bessel_source, use_lapack_args, - enable_autovectorization, ], include_directories: [ microsc_psf_inc,