Commit Graph

22 Commits

Author SHA1 Message Date
Marc Sarraute 157696e1ec Remove backtrace and tp=px from default NVHPC flags in CMake 2024-09-06 17:30:41 +02:00
Marc Torrent 187c7bd533 Cmake: autodetect some important MPI features 2024-07-18 18:16:15 +02:00
Marc Torrent 2c454015e4 Autodetect ZDOT bugfix - autotools & cmake 2024-07-18 16:04:30 +02:00
Marc Torrent 919eb35f57 Add enable_zddot_bugfix to cmake 2024-07-02 17:30:55 -04:00
Marc Torrent c15597c2a6 Suppress -mtune when -march is specified (march=>mtune); this is problematic with clang v<15 2024-05-15 23:17:14 +02:00
Marc Sarraute 8f8345b34a Manage GPU markers with compilation flag rather than input param
GPU markers, such as NVTX (NVIDIA) or ROCtx (AMD) are meant to be used
for profiling purposes, along specific profiling tools (Nsight Systems,
Radeon profiler, Perfetto UI...).
As such, they are mostly used for development or benchmarking purposes
and aren't of any use for the end-user of ABINIT.

This commit changes the way one enables GPU Markers:
- input parameter "gpu_use_nvtx" is removed
- configure option "with_gpu_markers/--with-gpu-markers" is added
- CMake option "-DABINIT_ENABLE_GPU_MARKERS" is added

The way GPU markers were handled in ABINIT code doesn't change as this
feature was already hidden and protected by define HAVE_GPU_MARKERS.
2024-03-25 17:01:20 +01:00
Marc Sarraute 3eb24713d3 [cmake] Fix bad string formatting, preventing conversion to list 2024-02-22 17:05:15 +01:00
Marc Sarraute eb5ea80a5b [cmake] Fix syntax error 2024-02-22 17:05:01 +01:00
Marc Torrent e77815dba7 Finally, revert... it is not possible to use MPI_IN_PLACE as s variable. So deactivate IN_PLACE when MPI is buggy 2024-01-11 18:07:10 +02:00
Marc Torrent dc93724db0 Continue to fix these buggy MPI interfaces 2024-01-11 03:14:50 +02:00
Marc Torrent 1c32add201 Typo corrected 2024-01-08 21:32:07 +02:00
Marc Torrent d3567098a0 Add automatic detection of mpi_in_place 2024-01-08 21:29:55 +02:00
Marc Torrent 420ed8ab0f Cleaning: management of openMP offload not implementing properly structured types 2023-12-15 23:42:12 +01:00
Marc Sarraute 12f7e84425 Setup rocFFT at linalg_init
We perform this init step here for the same reason as rocBLAS, that is
to not spend abnormal time on the first step when FFT is call for the
first time.
2023-11-14 19:10:16 +01:00
Marc Sarraute 72ca782322 [amdhip] CMake: add support for AMD HIP, Cray and LLVM
Roughly tested when "porting" on Adastra environment.
2023-11-14 19:08:20 +01:00
Marc Sarraute 263390046b Replace HAVE_GPU_NVTX_V3 with HAVE_GPU_MARKERS to generalize with other markers 2023-11-14 19:08:19 +01:00
Marc Sarraute d932a5283d cmake: replace "-fast" flag from CXX flags when using NVHPC
CMake takes this flag in Release configuration and Kokkos uses it
through nvcc_wrapper that pass it to g++ which doesn't recognize this
flag and trigger an error.
"-fast" is usually "-O2" + extra flags so replacing it with "-O2" should
affect performance to much.
2023-11-14 17:09:11 +01:00
Marc Sarraute c622908085 Add a new subdir 16_kokkos_toolbox containing iso_c_bindings
Kokkos and YAKL are now initialized in initcuda
2023-11-14 17:09:10 +01:00
Marc Sarraute 96c2d3f4bf Move Kokkos stuff in dedicated directory 2023-11-14 17:09:10 +01:00
Marc Sarraute 1edbcd7cc7 Add support for OpenMP GPU offload flags in CMake
For now, OpenMP GPU offload is always enabled if compiler succeeds the
test for checking OpenMP 5 compliance.

CMake doesn't have support for OpenMP target flags yet, hence I
copy-pasted a function that handles the job for many compilers through
only NVHPC is actually ABINIT-proofed for now.
2023-11-14 17:09:10 +01:00
Marc Sarraute 5b0d69c334 Update CMake rules so it compiles with Abinit v9.11 2023-11-14 17:09:09 +01:00
Pierre Kestener 336ba35fa9 Cmake starting point for shared/common. 2023-11-14 17:09:09 +01:00