remove CMAKE_TUNE_FLAGS
This commit is contained in:
@ -102,31 +102,31 @@ include(CheckIncludeFileCXX)
|
|||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qrestrict")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} /Qrestrict")
|
||||||
endif()
|
endif()
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
||||||
set(CMAKE_TUNE_DEFAULT "/QxCOMMON-AVX512")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} /QxCOMMON-AVX512")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_TUNE_DEFAULT "/QxHost")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} /QxHost")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -restrict")
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
||||||
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -xCOMMON-AVX512")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_TUNE_DEFAULT "-xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=11074 -diag-disable=11076 -diag-disable=2196")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=11074 -diag-disable=11076 -diag-disable=2196")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# silence excessive warnings for new Intel Compilers
|
# silence excessive warnings for new Intel Compilers
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
||||||
set(CMAKE_TUNE_DEFAULT "-fp-model precise -Wno-tautological-constant-compare -Wno-unused-command-line-argument")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -fp-model precise -Wno-tautological-constant-compare -Wno-unused-command-line-argument")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# silence excessive warnings for PGI/NVHPC compilers
|
# silence excessive warnings for PGI/NVHPC compilers
|
||||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "PGI"))
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "PGI"))
|
||||||
set(CMAKE_TUNE_DEFAULT "-Minform=severe")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -Minform=severe")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# this hack is required to compile fmt lib with CrayClang version 15.0.2
|
# this hack is required to compile fmt lib with CrayClang version 15.0.2
|
||||||
@ -134,17 +134,17 @@ endif()
|
|||||||
if(CMAKE_VERSION VERSION_LESS 3.28)
|
if(CMAKE_VERSION VERSION_LESS 3.28)
|
||||||
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
|
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
|
||||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
|
||||||
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -DFMT_STATIC_THOUSANDS_SEPARATOR")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
|
||||||
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}} -DFMT_STATIC_THOUSANDS_SEPARATOR")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# silence nvcc warnings
|
# silence nvcc warnings
|
||||||
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
|
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
|
||||||
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT}" "-Xcudafe --diag_suppress=unrecognized_pragma,--diag_suppress=128")
|
set(CMAKE_CXX_FLAGS_${BTYPE} "${CMAKE_CXX_FLAGS_${BTYPE}}" "-Xcudafe --diag_suppress=unrecognized_pragma,--diag_suppress=128")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# we *require* C++11 without extensions but prefer C++17.
|
# we *require* C++11 without extensions but prefer C++17.
|
||||||
@ -628,10 +628,6 @@ if(WITH_SWIG)
|
|||||||
add_subdirectory(${LAMMPS_SWIG_DIR} swig)
|
add_subdirectory(${LAMMPS_SWIG_DIR} swig)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler and machine specific optimization flags (compilation only)")
|
|
||||||
separate_arguments(CMAKE_TUNE_FLAGS)
|
|
||||||
target_compile_options(lammps PRIVATE ${CMAKE_TUNE_FLAGS})
|
|
||||||
target_compile_options(lmp PRIVATE ${CMAKE_TUNE_FLAGS})
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# Basic system tests (standard libraries, headers, functions, types) #
|
# Basic system tests (standard libraries, headers, functions, types) #
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|||||||
@ -14,10 +14,6 @@ endif()
|
|||||||
|
|
||||||
add_library(colvars STATIC ${COLVARS_SOURCES})
|
add_library(colvars STATIC ${COLVARS_SOURCES})
|
||||||
target_compile_definitions(colvars PRIVATE -DCOLVARS_LAMMPS)
|
target_compile_definitions(colvars PRIVATE -DCOLVARS_LAMMPS)
|
||||||
separate_arguments(CMAKE_TUNE_FLAGS)
|
|
||||||
foreach(_FLAG ${CMAKE_TUNE_FLAGS})
|
|
||||||
target_compile_options(colvars PRIVATE ${_FLAG})
|
|
||||||
endforeach()
|
|
||||||
set_target_properties(colvars PROPERTIES OUTPUT_NAME lammps_colvars${LAMMPS_MACHINE})
|
set_target_properties(colvars PROPERTIES OUTPUT_NAME lammps_colvars${LAMMPS_MACHINE})
|
||||||
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||||
# The line below is needed to locate math_eigen_impl.h
|
# The line below is needed to locate math_eigen_impl.h
|
||||||
|
|||||||
@ -10,7 +10,13 @@ set(Kokkos_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS ON CACHE BOOL "" FORCE)
|
|||||||
set(BUILD_OMP ON CACHE BOOL "" FORCE)
|
set(BUILD_OMP ON CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER hipcc CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER hipcc CACHE STRING "" FORCE)
|
||||||
set(CMAKE_TUNE_FLAGS "-munsafe-fp-atomics" CACHE STRING "" FORCE)
|
if (CMAKE_CXX_FLAGS)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
# If KSPACE is also enabled, use CUFFT for FFTs
|
# If KSPACE is also enabled, use CUFFT for FFTs
|
||||||
set(FFT_KOKKOS "HIPFFT" CACHE STRING "" FORCE)
|
set(FFT_KOKKOS "HIPFFT" CACHE STRING "" FORCE)
|
||||||
|
|||||||
@ -21,9 +21,16 @@ set(CMAKE_C_COMPILER icx CACHE STRING "" FORCE)
|
|||||||
set(CMAKE_Fortran_COMPILER "" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_COMPILER "" CACHE STRING "" FORCE)
|
||||||
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
||||||
# Silence everything
|
|
||||||
set(CMAKE_CXX_FLAGS "-w" CACHE STRING "" FORCE)
|
# set(_intel_sycl_flags " -w -fsycl -flink-huge-device-code -fsycl-targets=spir64_gen "
|
||||||
|
set(_intel_sycl_flags " -w -fsycl -fsycl-device-code-split=per_kernel -fsycl-targets=spir64_gen "
|
||||||
|
if (CMAKE_CXX_FLAGS)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
#set(CMAKE_EXE_LINKER_FLAGS "-fsycl -flink-huge-device-code -fsycl-targets=spir64_gen " CACHE STRING "" FORCE)
|
#set(CMAKE_EXE_LINKER_FLAGS "-fsycl -flink-huge-device-code -fsycl-targets=spir64_gen " CACHE STRING "" FORCE)
|
||||||
#set(CMAKE_TUNE_FLAGS "-O3 -fsycl -fsycl-device-code-split=per_kernel -fsycl-targets=spir64_gen" CACHE STRING "" FORCE)
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsycl -flink-huge-device-code " CACHE STRING "" FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-fsycl -flink-huge-device-code " CACHE STRING "" FORCE)
|
|
||||||
set(CMAKE_TUNE_FLAGS "-O3 -fsycl -fsycl-device-code-split=per_kernel " CACHE STRING "" FORCE)
|
|
||||||
|
|||||||
@ -14,5 +14,13 @@ set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
|
|||||||
set(CMAKE_CXX_COMPILER clang++ CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER clang++ CACHE STRING "" FORCE)
|
||||||
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "-Xsycl-target-frontend -O3" CACHE STRING "" FORCE)
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xsycl-target-frontend -O3 " CACHE STRING "" FORCE)
|
||||||
set(CMAKE_TUNE_FLAGS "-fgpu-inline-threshold=100000 -Xsycl-target-frontend -O3 -Xsycl-target-frontend -ffp-contract=on -Wno-unknown-cuda-version" CACHE STRING "" FORCE)
|
|
||||||
|
set(_intel_sycl_flags "-fgpu-inline-threshold=100000 -Xsycl-target-frontend -O3 -Xsycl-target-frontend -ffp-contract=on -Wno-unknown-cuda-version")
|
||||||
|
if (CMAKE_CXX_FLAGS)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
|
||||||
|
|||||||
@ -91,7 +91,13 @@ endif()
|
|||||||
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
|
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
|
||||||
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
|
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
|
||||||
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
|
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_TUNE_FLAGS "-Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
if (CMAKE_CXX_FLAGS)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
|
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
|
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
|
||||||
set(BUILD_TOOLS ON CACHE BOOL "" FORCE)
|
set(BUILD_TOOLS ON CACHE BOOL "" FORCE)
|
||||||
|
|||||||
@ -5,4 +5,10 @@ set(CMAKE_C_COMPILER "icx" CACHE STRING "" FORCE)
|
|||||||
set(CMAKE_Fortran_COMPILER "ifx" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_COMPILER "ifx" CACHE STRING "" FORCE)
|
||||||
set(INTEL_LRT_MODE "C++11" CACHE STRING "" FORCE)
|
set(INTEL_LRT_MODE "C++11" CACHE STRING "" FORCE)
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
set(CMAKE_TUNE_FLAGS -Wno-unused-command-line-argument)
|
if (CMAKE_CXX_FLAGS)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)
|
||||||
|
|||||||
@ -212,11 +212,7 @@ LAMMPS.
|
|||||||
You can tell CMake to look for a specific compiler with setting
|
You can tell CMake to look for a specific compiler with setting
|
||||||
CMake variables (listed below) during configuration. For a few
|
CMake variables (listed below) during configuration. For a few
|
||||||
common choices, there are also presets in the ``cmake/presets``
|
common choices, there are also presets in the ``cmake/presets``
|
||||||
folder. For convenience, there is a ``CMAKE_TUNE_FLAGS`` variable
|
folder. You may also specify the corresponding ``CMAKE_*_FLAGS``
|
||||||
that can be set to apply global compiler options (applied to
|
|
||||||
compilation only), to be used for adding compiler or host specific
|
|
||||||
optimization flags in addition to the "flags" variables listed
|
|
||||||
below. You may also specify the corresponding ``CMAKE_*_FLAGS``
|
|
||||||
variables individually, if you want to experiment with alternate
|
variables individually, if you want to experiment with alternate
|
||||||
optimization flags. You should specify all 3 compilers, so that
|
optimization flags. You should specify all 3 compilers, so that
|
||||||
the (few) LAMMPS source files written in C or Fortran are built
|
the (few) LAMMPS source files written in C or Fortran are built
|
||||||
@ -266,10 +262,6 @@ LAMMPS.
|
|||||||
``-C ../cmake/presets/pgi.cmake`` will switch the compiler to the PGI compilers,
|
``-C ../cmake/presets/pgi.cmake`` will switch the compiler to the PGI compilers,
|
||||||
and ``-C ../cmake/presets/nvhpc.cmake`` will switch to the NVHPC compilers.
|
and ``-C ../cmake/presets/nvhpc.cmake`` will switch to the NVHPC compilers.
|
||||||
|
|
||||||
Furthermore, you can set ``CMAKE_TUNE_FLAGS`` to specifically add
|
|
||||||
compiler flags to tune for optimal performance on given hosts.
|
|
||||||
This variable is empty by default.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
When the cmake command completes, it prints a summary to the
|
When the cmake command completes, it prints a summary to the
|
||||||
|
|||||||
@ -18,7 +18,6 @@ explains how to do this for building both with CMake and make.
|
|||||||
* `Memory allocation alignment`_
|
* `Memory allocation alignment`_
|
||||||
* `Workaround for long long integers`_
|
* `Workaround for long long integers`_
|
||||||
* `Exception handling when using LAMMPS as a library`_ to capture errors
|
* `Exception handling when using LAMMPS as a library`_ to capture errors
|
||||||
* `Trigger selected floating-point exceptions`_
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -659,40 +658,3 @@ code has to be set up to *catch* exceptions thrown from within LAMMPS.
|
|||||||
throw an exception and thus other MPI ranks may get stuck waiting for
|
throw an exception and thus other MPI ranks may get stuck waiting for
|
||||||
messages from the ones with errors.
|
messages from the ones with errors.
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
.. _trap_fpe:
|
|
||||||
|
|
||||||
Trigger selected floating-point exceptions
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
Many kinds of CPUs have the capability to detect when a calculation
|
|
||||||
results in an invalid math operation, like a division by zero or calling
|
|
||||||
the square root with a negative argument. The default behavior on
|
|
||||||
most operating systems is to continue and have values for ``NaN`` (= not
|
|
||||||
a number) or ``Inf`` (= infinity). This allows software to detect and
|
|
||||||
recover from such conditions. This behavior can be changed, however,
|
|
||||||
often through use of compiler flags. On Linux systems (or more general
|
|
||||||
on systems using the GNU C library), these so-called floating-point traps
|
|
||||||
can also be selectively enabled through library calls. LAMMPS supports
|
|
||||||
that by setting the ``-DLAMMPS_TRAP_FPE`` pre-processor define. As it is
|
|
||||||
done in the ``main()`` function, this applies only to the standalone
|
|
||||||
executable, not the library.
|
|
||||||
|
|
||||||
.. tabs::
|
|
||||||
|
|
||||||
.. tab:: CMake build
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
-D CMAKE_TUNE_FLAGS=-DLAMMPS_TRAP_FPE
|
|
||||||
|
|
||||||
.. tab:: Traditional make
|
|
||||||
|
|
||||||
.. code-block:: make
|
|
||||||
|
|
||||||
LMP_INC = -DLAMMPS_TRAP_FPE <other LMP_INC settings>
|
|
||||||
|
|
||||||
After compilation with this flag set, the LAMMPS executable will stop
|
|
||||||
and produce a core dump when a division by zero, overflow, illegal math
|
|
||||||
function argument or other invalid floating point operation is encountered.
|
|
||||||
|
|||||||
@ -285,7 +285,7 @@ when used before the CMake directory, there may be a space between the
|
|||||||
can have boolean values (on/off, yes/no, or 1/0 are all valid) or are
|
can have boolean values (on/off, yes/no, or 1/0 are all valid) or are
|
||||||
strings representing a choice, or a path, or are free format. If the
|
strings representing a choice, or a path, or are free format. If the
|
||||||
string would contain whitespace, it must be put in quotes, for example
|
string would contain whitespace, it must be put in quotes, for example
|
||||||
``-D CMAKE_TUNE_FLAGS="-ftree-vectorize -ffast-math"``.
|
``-D CMAKE_CXX_FLAGS="-O3 -Wall -ftree-vectorize -ffast-math"``.
|
||||||
|
|
||||||
CMake variables fall into two categories: 1) common CMake variables that
|
CMake variables fall into two categories: 1) common CMake variables that
|
||||||
are used by default for any CMake configuration setup and 2) project
|
are used by default for any CMake configuration setup and 2) project
|
||||||
@ -341,8 +341,6 @@ Some common LAMMPS specific variables
|
|||||||
- compile some additional executables from the ``tools`` folder (default: ``off``)
|
- compile some additional executables from the ``tools`` folder (default: ``off``)
|
||||||
* - ``BUILD_DOC``
|
* - ``BUILD_DOC``
|
||||||
- include building the HTML format documentation for packaging/installing (default: ``off``)
|
- include building the HTML format documentation for packaging/installing (default: ``off``)
|
||||||
* - ``CMAKE_TUNE_FLAGS``
|
|
||||||
- common compiler flags, for optimization or instrumentation (default:)
|
|
||||||
* - ``LAMMPS_MACHINE``
|
* - ``LAMMPS_MACHINE``
|
||||||
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
|
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
|
||||||
* - ``FFT``
|
* - ``FFT``
|
||||||
|
|||||||
Reference in New Issue
Block a user