- 02 Jun, 2026 1 commit
-
-
one authored
Run Coulomb and dispersion reciprocal PME work on separate HIP queues for LJPME when PME streams are enabled. Use separate grids, sorters, events, and energy buffers so the two reciprocal branches can overlap safely. Keep the behavior HIP-only based on RTX4090 CUDA profiling, where the same split increased PME spread/list contention and regressed apoa1ljpme.
-
- 31 May, 2026 1 commit
-
- 11 May, 2026 1 commit
-
-
one authored
Use explicit 128-thread block launches for selected HIP PME kernels that benefit from larger blocks. Keep the platform default block size unchanged, and leave small-system grid indexing and charge spreading on the existing default launch configuration. The heuristic applies 128-thread launches to finishSpreadCharge on HIP, and uses 128-thread launches for findAtomGridIndex and gridSpreadCharge only for larger systems. Coulomb PME and LJPME dispersion paths are handled in parallel, while interpolation and energy evaluation remain unchanged.
-
- 06 May, 2026 1 commit
-
-
one authored
-
- 29 Apr, 2026 1 commit
-
-
one authored
* Avoid host wait when synchronizing PME queue * Remove comment
-
- 24 Apr, 2026 1 commit
-
-
one authored
-
- 17 Apr, 2026 1 commit
-
-
one authored
Avoid forcing Coulomb PME to re-sort whenever LJ-PME is enabled, and give dispersion PME its own atom-grid index and sort state so the performance impact can be measured independently.
-
- 16 Apr, 2026 1 commit
-
-
one authored
-
- 10 Feb, 2026 1 commit
-
-
Peter Eastman authored
-
- 22 Oct, 2025 1 commit
-
-
Peter Eastman authored
-
- 23 Sep, 2025 1 commit
-
-
Evan Pretti authored
* Replace SimTK-containing file headers * Update file headers for new Tinker reader files added
-
- 12 Sep, 2025 1 commit
-
-
Evan Pretti authored
* Initial implementation of C++ API * Add kernel interface and information for API generation * API updates for updating electrode parameters * Add serialization proxy for ConstantPotentialForce * Update file headers * Add CG error tolerance and fix units on getCharges() return value * Initial implementation of matrix solver * Fixes and conjugate gradient solver * Try to fix Linux and Windows builds * Make sure charge constraint target is on total charge * Restore handling of exceptions like NonbondedForce since they won't involve electrode atoms * Ameliorate numerical instability in constrained conjugate gradient * Fix uninitialized pointers, memory leak, and style * Set CG tolerance units in Python API * Test ConstantPotentialForce serialization * Read/write ExceptionsUsePeriodicBoundaryConditions as bool * Improve constrained conjugate gradient robustness to roundoff error accumulation * Recompute matrix if electrode atoms move due to setPositions() * Tolerance is now in gradient (potential) units again * Add neutralizing background correction * Add Python API tests * Fixes for CG and nonbonded exceptions * Add initial tests checking against existing NonbondedForce behavior * Expand test suite and fix some implementation issues * Add additional tests using larger reference system * Add Gaussian test * Finish test against reference computation * CPU platform implementation * Fixes for compilation on some platforms * Fixes for constant potential with AVX/AVX2 * Test linking CPU PME library to constant potential test directly * Older SWIG versions don't support Python set to C++ set conversion * Add user guide entry * Increase speed of reference test * Conditional building constant potential CPU test is unreliable * Debugging * Miscellaneous fixes and improvements for CI * Cache charges so solver will not run if system and coordinates have not changed * Preconditioner flag, stability, and automatic detection improvements * Add GPU platform-specific constant potential kernel classes * PME and device-host I/O changes to support constant potential * Initial common constant potential implementation * Constant potential fixes: * Fix preconditioner PME position/charge save/restore logic * Fix reduction synchronization in constant potential solver kernels * Add double-float accumulation for conjugate gradient solver when double unsupported by hardware * Improve conditioning of a test system, and make sure particles are in or out of cutoff for consistency and ease of comparing between platforms * Reorder guess charges for CG when atom reordering changes positions * Remove PME queue for now * Trying to debug optimized direct space derivative kernel * Remove extraneous debugging lines * Style updates; just make CPU preconditioner double precision * Debugging updated optimized direct derivatives kernel for all but OpenCL CPU * OpenCL CPU implementation of direct space derivatives, and cleanup * Try to make test even shorter to not time out on CI * Temporary - Debugging * Debugging * Debugging * Debugging * Debugging * Remove debugging code and fix reduction synchronization * Fix other reductions * Debugging - are tests hanging or just slow on CI? * Debugging * Debugging * Fix macro for case when double precision is available on hardware * Remove changes for debugging again * Try to improve matrix solver cache locality by uploading transpose * Fixes for atom ordering and periodic images * Can't rely on reorder listener for cell offset updates * Test reducing number of contexts and timing for CI * Debugging * Remove timing code and revert debugging changes * Matrix solver and plasma term optimizations * Reduce CG solver kernel calls and downloads * Don't read back convergence flag from global memory * Update PME due to refactoring in master branch * Faster matrix solver (1st step) * Faster matrix solver for CUDA * Faster matrix solver compatibility with non-CUDA platforms * Matrix solver fixes * Use warp shuffle reductions when possible * Attempt to work around intermittent compiler crash in Intel CPU OpenCL * Optimize CG solver kernel 1 * Rework CG solver so some kernels can use more than 1 block * Don't run out of shared memory * Asynchronously download convergence flag while clearing buffers --------- Co-authored-by:Evan Pretti <pretti@sh03-17n15.int>
-
- 06 Sep, 2025 1 commit
-
-
Peter Eastman authored
-
- 06 Aug, 2025 1 commit
-
-
Peter Eastman authored
-
- 09 Jul, 2025 1 commit
-
-
Peter Eastman authored
* Unified storage of global parameters * Fixes to CUDA and HIP * Store global parameters as real instead of float
-
- 05 May, 2025 1 commit
-
-
Peter Eastman authored
* Use common API for kernels * More code uses common interface * Bug fixes * Unified interface for sorting * Simplified interface for FFT * Use common event API for synchronization * Minor changes to make code more consistent between platforms * Common implementation of NonbondedForce * Bug fixes * Flag to enable list of single pairs * CUDA and OpenCL use common implementation of NonbondedForce * Fixed compilation error * HIP uses common implementation of NonbondedForce
-
- 28 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Unified interface for queues * Simplified stream handling in CudaFFT3D * HIP implementation of ComputeQueue
-
- 25 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Unified interface for FFTs * AMOEBA uses unified interface for FFTs * HIP implementation of common FFT interface
-
- 23 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Add correction for self energy of neutralizing plasma * Fixed compilation errors * Update total charge in copyParametersToContext() * Bug fixes * Fixed compilation errors in HIP * Bug fix
-
- 13 Jan, 2025 1 commit
-
-
Peter Eastman authored
-
- 22 Nov, 2024 1 commit
-
-
Peter Eastman authored
* updateParametersInContext() can modify parameter offsets * Reordering respects parameter offsets * Implemented for CUDA and HIP
-
- 23 Sep, 2024 1 commit
-
-
Anton Gorenko authored
* PME_ORDER threads process one atom; * PME_ORDER threads access consecutive addresses; * No need to permute z indices with zindexTable; * finishSpreadCharge is needed only with fixed point charge spreading;
-
- 06 Sep, 2024 1 commit
-
-
Peter Eastman authored
* Optimize CustomNonbondedForce.updateParametersInContext() * Optimized uploading changed values to GPU * Optimized updateParametersInContext() for lots of bonded forces * Optimized updateParametersInContext() for CustomExternalForce * Optimized updateParametersInContext() for NonbondedForce * Code changes for HIP platform
-
- 12 Dec, 2023 1 commit
-
-
Peter Eastman authored
* Common implementation of BondedUtilities * Common implementation of UpdateStateDataKernel
-
- 23 May, 2023 1 commit
-
-
Peter Eastman authored
* Skip neighbor list for very small systems * Fixed typos * Don't skip box size check when not using neighbor list * Made test larger to ensure it uses neighbor list
-
- 14 Feb, 2023 1 commit
-
-
bdenhollander authored
- Appear to be copy and pasted from getPositions and were not removed
-
- 12 Sep, 2022 1 commit
-
-
Peter Eastman authored
-
- 08 Sep, 2022 1 commit
-
-
peastman authored
-
- 17 Aug, 2022 1 commit
-
-
Peter Eastman authored
-
- 17 May, 2022 1 commit
-
-
Peter Eastman authored
-
- 01 Mar, 2022 1 commit
-
-
Peter Eastman authored
* DrudeLangevinIntegrator has getSystemTemperature() * DrudeNoseHooverIntegrator has getSystemTemperature() * StateDataReporter reports system temperature for Drude systems * Fixed incorrect return type
-
- 10 Jan, 2022 1 commit
-
-
Peter Eastman authored
-
- 20 Nov, 2021 1 commit
-
-
Peter Eastman authored
-
- 16 Sep, 2021 1 commit
-
-
Peter Eastman authored
* Allow querying current step count * Fixed error building Python wrapper
-
- 15 Jul, 2021 1 commit
-
-
Peter Eastman authored
-
- 15 Jun, 2021 1 commit
-
-
Peter Eastman authored
-
- 22 May, 2021 1 commit
-
-
Peter Eastman authored
* Began converting AMOEBA to common platform * Beginning of OpenCL platform for AMOEBA * Converted AmoebaVdwForce to common platform * Cleaned up reference AMOEBA tests * Began converting AmoebaMultipoleForce to common platform * Continue converting AmoebaMultipoleForce to common platform * Bug fixes * Bug fix * Continue converting AmoebaMultipoleForce to common platform * Converting AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce to common platform * Converting AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce to common platform * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Converted arrays from real3 to real * Bug fix to OpenCL AmoebaGeneralizedKirkwoodForce * Fixes for AMD GPUs * Began converting HippoNonbondedForce to common platform * Continuing to convert HippoNonbondedForce to common platform * Continuing to convert HippoNonbondedForce to common platform * Working on unifying PME kernels * Fixed error on devices without 64 bit atomics * Unified PME kernels * Converted HippoNonbondedForce to common platform * Creating OpenCL implementation of HippoNonbondedForce * Continuing OpenCL implementation of HippoNonbondedForce * Mostly finished OpenCL implementation of HippoNonbondedForce * Eliminated three component vector types in host code * Fix errors on CPU OpenCL * Skip double precision tests for AMOEBA on OpenCL * Bug fixes * Bug fixes * Fixed compilation error
-
- 19 Mar, 2021 1 commit
-
-
Peter Eastman authored
* Converted more code to common platform * Converted more code to common platform
-
- 27 Dec, 2020 1 commit
-
-
peastman authored
-
- 23 Dec, 2020 1 commit
-
-
peastman authored
-