Andrey Alekseenko [Thu, 4 Nov 2021 17:37:42 +0000 (18:37 +0100)]
SYCL: Avoid using no_init read accessor in rocFFT
Currently, hipSYCL ends up ignoring no_init property in this case.
But the SYCL standard does not permit such combination.
Szilárd Páll [Fri, 5 Nov 2021 15:59:01 +0000 (15:59 +0000)]
Split simulationWork.useGpuBufferOps into separate x and f flags
The x two "buffer ops" tasks have entirely different roles and it has
been a potential source of confusion to refer to these with a single
workload flag.
Refs #3915
Mark Abraham [Tue, 2 Nov 2021 12:57:07 +0000 (13:57 +0100)]
Permit tests to specify the refdata filename
When the same test data is re-used for multiple test cases it is
wasteful to serialize that data many times. This functionality permits
test cases to choose their own refdata file name, perhaps derived from
the actual test name. This means the tests can run efficiently, don't
needlessly proliferate lots of data, and express directly in the code
that multiple test cases produce the same data.
Refs #4255
Szilárd Páll [Thu, 4 Nov 2021 18:14:01 +0000 (18:14 +0000)]
Make stepWorkload.useGpuXBufferOps flag consistent
On search steps we do not use x buffer ops, so the workload flag should
correctly reflect that.
Also slightly refactored a conditional block to clarify the scope of
workload flags.
Note that as a side-effect of this change, coordinate H2D copy will be
delayed from the beginning of do_force() to just before update on search
steps when there are no force tasks that require it (i.e. without PME).
While this is not ideal for performance, the code is easier to reason
about.
Refs #3915 #3913 #4268
Andrey Alekseenko [Thu, 4 Nov 2021 11:28:53 +0000 (11:28 +0000)]
Remove unused environment variables from docs
M. Eric Irrgang [Fri, 29 Oct 2021 13:54:06 +0000 (16:54 +0300)]
Fix typo.
A typo in a hard-coded filename could prevent gmxapi.simulation.mdrun
from automatically recovering from checkpoint when the low-level API is
used to specify working directories.
Berk Hess [Thu, 4 Nov 2021 10:16:48 +0000 (10:16 +0000)]
Clean up index handing in make_bondeds_zone
Andrey Alekseenko [Wed, 3 Nov 2021 20:08:15 +0000 (20:08 +0000)]
Unify handling of GMX_ENABLE_GPU_TIMING and GMX_DISABLE_GPU_TIMING
Magnus Lundborg [Wed, 3 Nov 2021 15:07:41 +0000 (16:07 +0100)]
Update mdrun message to reflect that Cuda CC>=3.5 is supported.
Fixes: #4132
Magnus Lundborg [Thu, 28 Oct 2021 08:42:53 +0000 (10:42 +0200)]
Add TNG to trjconv doc and more details about TNG selections.
Refs #2785.
Andrey Alekseenko [Wed, 3 Nov 2021 09:50:16 +0000 (09:50 +0000)]
Disable fastmath with OpenCL on Intel devices
Refs #3898
Mark Abraham [Wed, 3 Nov 2021 09:04:16 +0000 (09:04 +0000)]
Use CMake to propagate versions and hashes to gitlab jobs
Andrey Alekseenko [Tue, 2 Nov 2021 12:33:13 +0000 (13:33 +0100)]
Fix CUDA clang-tidy complaints
Mark Abraham [Tue, 2 Nov 2021 12:41:46 +0000 (13:41 +0100)]
Improve MessageStringCollector
Now we can e.g. return one from a function so that more complex use
cases can be handled.
Andrey Alekseenko [Tue, 2 Nov 2021 12:53:09 +0000 (13:53 +0100)]
Avoid allocating SYCL buffer on each call to PME solve
Refs #4153
Andrey Alekseenko [Wed, 3 Nov 2021 06:47:25 +0000 (06:47 +0000)]
Fix random typos
Joe Jordan [Wed, 3 Nov 2021 06:24:23 +0000 (06:24 +0000)]
Remove unused thole polarization rfac parameter
Andrey Alekseenko [Tue, 2 Nov 2021 12:20:21 +0000 (13:20 +0100)]
SYCL: Use acc.bind(cgh) instead of cgh.require(acc)
A few other minor changes to SYCL version of DeviceBuffer.
This is a prerequisite for adding support for USM.
Refs #3847, #3965.
Mark Abraham [Tue, 2 Nov 2021 12:05:00 +0000 (13:05 +0100)]
Echo the path to and version of CMake for CI builds
This will help devs understand and reproduce problems, as well as
confirm that the intentions of the test configurations are honored.
Replaced one use of "cmake" with "$CMAKE" to standardize
Berk Hess [Tue, 2 Nov 2021 08:26:31 +0000 (08:26 +0000)]
Add second LINCS atom update task
Mark Abraham [Mon, 1 Nov 2021 07:58:18 +0000 (08:58 +0100)]
Add missing MPI_Barrier to MpiTest
Fixes #4261
Eliane Briand [Mon, 1 Nov 2021 13:42:21 +0000 (13:42 +0000)]
Add DSSP v4 support to do_dssp
Szilárd Páll [Mon, 1 Nov 2021 13:23:44 +0000 (13:23 +0000)]
Fix hipSYCL build with CUDA target
Andrey Alekseenko [Fri, 29 Oct 2021 14:10:14 +0000 (16:10 +0200)]
Silence clang-tidy warnings
Andrey Alekseenko [Wed, 27 Oct 2021 13:28:55 +0000 (15:28 +0200)]
Set up event consumption counter in DomDecMpiTests
Also:
- Add a comment about the barrier introduced in
5d43901b (MR !2109).
- Use DeviceStream::synchronize instead of marking an event and
immediately waiting for it.
Refs #3988, #4156.
Magnus Lundborg [Fri, 29 Oct 2021 18:36:42 +0000 (18:36 +0000)]
Allow TNG to TNG file conversion without time per frame info
Alan Gray [Fri, 29 Oct 2021 18:06:10 +0000 (18:06 +0000)]
Simplify GPU force reduction conditionals
Berk Hess [Fri, 29 Oct 2021 14:50:28 +0000 (14:50 +0000)]
Reimplement constant acceleration groups
Mark Abraham [Fri, 29 Oct 2021 11:44:45 +0000 (11:44 +0000)]
Generalize constraints on MPI rank counts for tests
When the number of ranks is unsuitable the test is skipped.
In some cases minor changes are made so that useful tests run on wider ranges of rank counts.
Closes #3785
Berk Hess [Thu, 28 Oct 2021 13:50:39 +0000 (13:50 +0000)]
Document and clean up do_numbering()
Berk Hess [Wed, 27 Oct 2021 14:48:55 +0000 (16:48 +0200)]
Update copyright year for tests/grompp.cpp
Andrey Alekseenko [Wed, 27 Oct 2021 14:16:47 +0000 (16:16 +0200)]
Disable GPU buffer ops when using MTS
Workaround for #4254
Berk Hess [Wed, 27 Oct 2021 14:42:33 +0000 (16:42 +0200)]
Add Oliver Fleetwood as a contributor
Szilárd Páll [Tue, 26 Oct 2021 21:52:34 +0000 (23:52 +0200)]
Unify coordinate copy handling across GPU platforms
Instead of handling the OpenCL host to device copy as a special case
where this operation is issued in the PME stream, as the "Update" stream
is anyway created unconditionally it makes sense to simplify codepaths
at the negligible cost of an extra GPU-side synchronization.
This allows unifying the coordinate handling in stateGpu as well as in
PME spread (with combined PP+PME) which removes some complexity and makes
it easier to reason about event consumption, reducing the need for balancing
workarounds.
The change also introduces a data member in StatePropagatorDataGpu to
indicate whether it is use on a separate PME rank, case in which marking
of the coordinate H2D event can be skipped as no event dependency is
required.
Refs #3988
Oliver Fleetwood [Wed, 27 Oct 2021 14:37:29 +0000 (14:37 +0000)]
Add preprocessing and integration test for transformation coordinate
We have general checks for preprocessing in readir.cpp. This ensures that all relevant mdp options are validated properly.
The mathematical expression, however, is evaluated in the grompp integration test.
Then we have the mdrun integration test, which is based on the existing pull test for
a 3D umbrealla potential. Basically, we use the exact same setup and expect the same output, but apply the force on a transformation coordinate instead of a regular coordinate, only with a slightly lower numerical accuracy.
M. Eric Irrgang [Mon, 25 Oct 2021 15:39:58 +0000 (18:39 +0300)]
Use CMake project versioning convention.
* Set CMP0048 policy to NEW behavior.
* Set MAJOR and MINOR version in the main project() command. Update
`cmake/gmxVersionInfo.cmake` to set from PROJECT_VERSION_MAJOR and
PROJECT_VERSION_MINOR.
Fixes #3725
M. Eric Irrgang [Fri, 22 Oct 2021 10:35:40 +0000 (13:35 +0300)]
Mark gmxapi 0.3b1.
Joe Jordan [Wed, 27 Oct 2021 10:15:13 +0000 (10:15 +0000)]
Fix norm calculation in gmx_spatial
Casting early to a double should avoid underflow in later multiplication.
An assert that the norm is non-negative is added.
Fixes #4184
Paul Bauer [Tue, 26 Oct 2021 18:45:42 +0000 (20:45 +0200)]
Fix link for dssp download
The old link was outdated (got a mail complaining about it).
Joe Jordan [Wed, 27 Oct 2021 08:44:31 +0000 (08:44 +0000)]
Throw on failure in gmx_file_rename
Kevin Boyd [Tue, 26 Oct 2021 18:13:12 +0000 (18:13 +0000)]
Add -maxtau option to gmx msd
ejjordan [Tue, 26 Oct 2021 14:38:47 +0000 (16:38 +0200)]
Document clang11 in developer docs
Instead of the no longer used clang7.
Fixes #4173
Mark Abraham [Tue, 26 Oct 2021 15:00:26 +0000 (15:00 +0000)]
Remove short-circuit logic for OpenMP setup
This is only called once during mdrun setup, and it is not a problem
to call it multiple times. (Thread safety is assured separately.)
It's necessary to call it multiple times, e.g. from test binaries or
API-driven simulations.
Having removed the short-circuit logic, there was no use for the
member variable that recorded whether initialization had taken place,
so it is removed.
Closes #4152
Joe Jordan [Tue, 26 Oct 2021 14:35:09 +0000 (14:35 +0000)]
Use correct c0 parameter in Me2PO4 in OPLSAA
Fixes #4075
ejjordan [Tue, 26 Oct 2021 13:42:20 +0000 (15:42 +0200)]
Add parser tests dependency to tests
This is necessary for make check to work properly.
Fixes #4233
Alan Gray [Wed, 22 Sep 2021 14:51:07 +0000 (07:51 -0700)]
Insert barrier after each GPU halo test
Artem Zhmurov [Tue, 26 Oct 2021 07:31:14 +0000 (10:31 +0300)]
Fix the cobined bending-torsion potential entry in reference manual
1. The k_phi was referenced with wrong key
2. Only k_phi has units, so they should not be at the end of the line
Introduced in
b08db8bb4c46e76e067ce09a2e8d43390e445575
Mark Abraham [Tue, 26 Oct 2021 03:01:07 +0000 (05:01 +0200)]
Minor improvements to gmx wham output
Mark Abraham [Tue, 26 Oct 2021 08:51:59 +0000 (08:51 +0000)]
Remove/replace many mentions of Jenkins
Joe Jordan [Tue, 26 Oct 2021 07:08:57 +0000 (07:08 +0000)]
Add missing parameter to dihedral docs
Andrey Alekseenko [Sat, 23 Oct 2021 11:20:34 +0000 (13:20 +0200)]
Silence Clang's constant-logical-operand warning
Roland Schulz [Sun, 24 Oct 2021 23:40:00 +0000 (16:40 -0700)]
Fix #3300
Kevin Boyd [Sun, 24 Oct 2021 23:40:40 +0000 (16:40 -0700)]
Update release notes for gmx msd and clear some TODOs
Fixes #3869
Andrey Alekseenko [Thu, 21 Oct 2021 14:20:38 +0000 (16:20 +0200)]
Get rid of sycl::buffer::reinterpret
It is not fully supported with hipSYCL, and, while it does work in
practice, we better avoid it.
Refs #4063
Mark Abraham [Fri, 22 Oct 2021 09:26:18 +0000 (11:26 +0200)]
Add utility dependency to libmdrun_test_infrastructure
This provides the correct MPI dependency, otherwise MPI_Barrier is not
necessarily found when linking targets that depend on this one.
Fixes #4232
Mark Abraham [Fri, 22 Oct 2021 08:24:26 +0000 (10:24 +0200)]
Make linker errors fail the CI builds
Andrey Alekseenko [Thu, 7 Oct 2021 10:30:22 +0000 (12:30 +0200)]
Activate GPU update support in SYCL build
Set proper flags and conditionals when deciding GPU workload.
Refs #3929, #3930, #3932.
Mark Abraham [Fri, 22 Oct 2021 05:37:14 +0000 (07:37 +0200)]
Fix cuda clang-tidy issues
ejjordan [Thu, 21 Oct 2021 21:21:41 +0000 (23:21 +0200)]
Improve doxygen in some nblib listed forces files
This adds doxygen to some functions and makes the
documentation more consistent in some cases.
Also some functions are changed from being marked
[[maybe_unused]] to not having parameter values in
cases where that is possible.
Magnus Lundborg [Thu, 21 Oct 2021 20:14:50 +0000 (22:14 +0200)]
Avoid comparing Simd types to real 0 when making masks in NB FEP kernel.
Refs #4230
ejjordan [Fri, 22 Oct 2021 04:13:06 +0000 (06:13 +0200)]
Fix nblib pairlist update function
Previously the function put_atoms_in_box was called only by the
nblib integrator, or when constructing a system via a SimulationState
object. In the case of the integrator, this is a needless performance
degradation. When using an nb force calculator without
first putting atoms in the box, this could lead to a cryptic
error from nbnxm grid search failure. Both of these issues are
rectified with this change, which also adds a member to the
non-bonded force calculator to hold the requested number of OMP
threads to use in a call to put_atoms_in_box_omp, which is faster
than the non OMP version.
Sebastian Kehl [Thu, 21 Oct 2021 15:24:49 +0000 (17:24 +0200)]
Fix use of simd-masks in gapsys softcore.
Don't rely on bools to be implicitly cast to the correct BoolType
mask but enforce this more explicitly.
Dmitry Morozov [Thu, 21 Oct 2021 18:55:47 +0000 (18:55 +0000)]
Added pkg-config detection of libcp2k #3172
Andrey Alekseenko [Tue, 19 Oct 2021 16:34:43 +0000 (18:34 +0200)]
Balance event consumption for GPU update code path
- Explicit consumption of events when needed.
- In some cases, reset the event in case the conditionals
for the consumption are too complex.
- Added helper functions to StatePropagatorDataGpu.
- A special handling for force reduction when it has no atoms.
Refs #3988, #4106, #4227.
Mark Abraham [Thu, 21 Oct 2021 17:09:33 +0000 (17:09 +0000)]
Support clang 13 in CI
Magnus Lundborg [Thu, 21 Oct 2021 09:02:41 +0000 (11:02 +0200)]
Minor code clean-up in the NB FEP kernel.
Joe Jordan [Thu, 21 Oct 2021 14:19:32 +0000 (14:19 +0000)]
Expand signatures for nblib listed forces calculator
Magnus Lundborg [Thu, 21 Oct 2021 08:49:50 +0000 (10:49 +0200)]
Improve variable naming in NB FEP kernel for loop.
Fixes one task in #2875.
Berk Hess [Thu, 21 Oct 2021 11:50:37 +0000 (11:50 +0000)]
Add lambda state to dhdl.xvg with AWH fep
Andrey Alekseenko [Thu, 21 Oct 2021 10:46:05 +0000 (10:46 +0000)]
Unify a bit decideWhetherToUseGpusForPme* functions
M. Eric Irrgang [Mon, 18 Oct 2021 12:33:06 +0000 (15:33 +0300)]
Rearrange docker build script.
Disambiguate build layer dependencies, now that Docker build
automatically parallelizes multi-stage builds when possible. This change
clarifies which layers are reused and which are unique. This minimizes
overall CPU time for fresh builds, but more importantly ensures that
components from separates stages are not subject to race conditions in
the resolution of dependencies that are satisfied through package
managers. It should also improve maintainability by reducing duplicated
logic.
Joe Jordan [Thu, 21 Oct 2021 10:06:09 +0000 (10:06 +0000)]
Add helper functions for setting up Nbnxm gpu object in nblib
M. Eric Irrgang [Thu, 21 Oct 2021 09:32:44 +0000 (09:32 +0000)]
Improve detection of sphinx-build.
Prioritize the sphinx-build associated with the current Python
interpreter, or as indicated by the user through the SPHINX_DIR
environment variable.
Mitigates problems with multiple Python installations and `autodoc`, or
where the Python installation is hinted to CMake but is not on the PATH.
Fixes #4224
Mark Abraham [Thu, 21 Oct 2021 09:11:40 +0000 (09:11 +0000)]
Refactor PME tests for better usability
Now there is a human-understandable name for the tests, and (where
possible) the input for each test is declarative rather than
procedural.
Berk Hess [Thu, 21 Oct 2021 08:51:00 +0000 (08:51 +0000)]
Improve AWH bias sharing documentation
M. Eric Irrgang [Thu, 21 Oct 2021 08:19:21 +0000 (08:19 +0000)]
Clean up some gmxapi sources and tests.
Andrey Alekseenko [Wed, 20 Oct 2021 20:27:11 +0000 (20:27 +0000)]
Update CI containers to oneAPI 2021.4.0
Andrey Alekseenko [Wed, 20 Oct 2021 13:06:53 +0000 (15:06 +0200)]
Fix compiler warnings with OpenCL + oneAPI 2021.4
M. Eric Irrgang [Wed, 20 Oct 2021 09:28:18 +0000 (09:28 +0000)]
Minor clean-up to docker build script.
* Apply PEP-8 formatting.
* Update some docstrings and type hints.
* Improve robustness w.r.t. `_distro`.
* Note that every call to `baseimage` updates the global
config (hpccm 21.9.0 at the time of this change).
Roland Schulz [Tue, 19 Oct 2021 22:38:22 +0000 (22:38 +0000)]
Fix warnings with Intel 2021.4
M. Eric Irrgang [Tue, 19 Oct 2021 15:25:43 +0000 (15:25 +0000)]
Pre-install Python dependencies in CI Docker images.
Add `pybind11` and `wheel` to the (scripted) Docker image builds so that
the admin/ci-scripts/build-and-test-py-gmxapi-0.3.sh script can use
`--no-deps --no-index` with pip.
Remove `pip install pybind11` where it is no longer needed in CI jobs.
Follow-up to #4092.
Andrey Alekseenko [Mon, 18 Oct 2021 16:06:49 +0000 (18:06 +0200)]
Fix SYCL PME Solve kernel
- Avoid infinite recursion in sycl_2020::isfinite.
- Make one of the accessors optional.
Unknown [Tue, 19 Oct 2021 11:26:03 +0000 (13:26 +0200)]
Resolve UBSAN error in NBLIB test
Mark Abraham [Tue, 19 Oct 2021 06:25:24 +0000 (08:25 +0200)]
Another clang-tidy fix for new GPU code
Andrey Alekseenko [Tue, 19 Oct 2021 09:40:50 +0000 (11:40 +0200)]
Fix harmless Sphinx warning
Andrey Alekseenko [Mon, 18 Oct 2021 14:31:36 +0000 (16:31 +0200)]
Merge release-2021 into master
Brings the following fixes from the release branch into master:
- #4148 (!1941)
- #4167 (!1966)
- #4190 (!2050)
- !2039
Andrey Alekseenko [Mon, 18 Oct 2021 10:27:43 +0000 (12:27 +0200)]
Enable kernel compiler cache for SYCL DPC++
Refs #4218
Andrey Alekseenko [Mon, 18 Oct 2021 13:16:49 +0000 (13:16 +0000)]
Fix UB when generating local indices for constraints
Mark Abraham [Fri, 15 Oct 2021 07:48:56 +0000 (09:48 +0200)]
Fix clang-tidy error in new GPU code
Andrey Alekseenko [Fri, 15 Oct 2021 14:26:04 +0000 (16:26 +0200)]
Disable PME Mixed mode with FEP
Refs #4190
M. Eric Irrgang [Fri, 15 Oct 2021 14:26:35 +0000 (14:26 +0000)]
Require pybind 2.6 from environment for gmxapi Python package extension module.
Andrey Alekseenko [Fri, 15 Oct 2021 09:49:07 +0000 (09:49 +0000)]
Resolve "SYCL + DPCPP cmake config fails in gmxManageFFTLibraries.cmake"
Mark Abraham [Fri, 15 Oct 2021 07:40:10 +0000 (09:40 +0200)]
Make failure to find CUDA-aware MPI work correctly.
Previously, a wrong error about non-matching quote was issued, even
though the overall behavior was correct
Alan Gray [Thu, 14 Oct 2021 13:29:40 +0000 (13:29 +0000)]
Pipeline GPU PME Spline/Spread with PP Comms
Andrey Alekseenko [Wed, 13 Oct 2021 17:30:13 +0000 (19:30 +0200)]
Improve stability of ContinuationIsExact tests
The default nstlist value in tests is set to 8. This is appropriate for
NormalIntegrators/MdrunNoAppendContinuationIsExact tests, which do the
restart after 8 steps, so the "full" trajectory and the "restarted"
trajectory update their lists at the same time. However, pairlist tuning
often increases the nstlist value, which might affect the "full" run.
Here, we force the nstlist to be half the nsteps for the "full" run by
setting it via CLI option.
Berk Hess [Wed, 13 Oct 2021 19:43:53 +0000 (19:43 +0000)]
Made gromacs work again without MPI
Made the communication functions in network.h that do nothing with a
single rank also work without MPI and thread-MPI. One conditional
in mdrunner() needed to be fixed.
Andrey Alekseenko [Mon, 11 Oct 2021 15:32:54 +0000 (17:32 +0200)]
Fix fft/CMakeLists when compiling with hipSYCL
GMX_GPU_HIPSYCL is never defined, and thus evaluates to false.
The code was compiling just fine, but the tests were failing in
runtime with "symbol lookup error".
Mark Abraham [Wed, 13 Oct 2021 16:06:54 +0000 (16:06 +0000)]
Implement PME solve in SYCL
Refs #3965
M. Eric Irrgang [Wed, 13 Oct 2021 14:42:03 +0000 (17:42 +0300)]
Fix typos regarding FindPython3 CMake module hint.
`_ROOT` is a standard suffix for hints to `find_package()`,
but the `FindPython3` cmake module specifically uses `_ROOT_DIR` for
an analogous hint.
Andrey Alekseenko [Mon, 11 Oct 2021 14:41:28 +0000 (16:41 +0200)]
Fix clang-tidy complaints
- False-positives after "if constexpr".
- "empty()" instead of "size() > 0".
- "auto *" instead of "auto".