1. 07 Jun, 2025 2 commits
    • Anton Gorenko's avatar
      Use fixed point charge spreading on RDNA4 (#4960) · 1ce5d91d
      Anton Gorenko authored
      * Use fixed point spread charge on RDNA4 as it is faster
      
      Even though RDNA4 (gfx12) has global_atomic_add_f32, micro-benchmarks and OpenMM benchmarks show
      that it is very slow compared to global_atomic_add_u64.
      
      * Add a workaround for fixed point gridSpreadCharge on RDNA4
      
      Workaround for rare cases when few values of pmeGrid are very large and
      incorrect. The cause is unknown. Why this workaround or other irrelevant
      changes like printf help is also unknown.
      1ce5d91d
    • Anton Gorenko's avatar
      Fix computeNonbonded hang on the HIP platform (#4959) · a4b43a04
      Anton Gorenko authored
      * Add a workaround for infinite loop in computeNonbonded (HIP)
      
      computeNonbonded hangs in some tests (without neighbor list).
      Reproducible on ROCm 6.4 and 6.4.1 (maybe on older versions too) on various architectures (both CDNA and RDNA).
      Affected tests: TestHipATMForce, TestHipMonteCarloBarostat, TestHipNonbondedForce, TestHipVirtualSites.
      
      Disassembly shows that the compiler splits branches of `if (skipBase+tgx < NUM_TILES_WITH_EXCLUSIONS)` and does
      `SHFL(skipTiles, TILE_SIZE-1) < pos` checks in them separately, even though `__builtin_amdgcn_ds_bpermute`
      is a convergent function. Apparently in this case not all lanes participate in each call.
      
      * Simplify includeTile check using ballot
      a4b43a04
  2. 02 Jun, 2025 1 commit
  3. 25 May, 2025 1 commit
  4. 24 May, 2025 1 commit
  5. 23 May, 2025 1 commit
  6. 20 May, 2025 1 commit
  7. 05 May, 2025 1 commit
    • Peter Eastman's avatar
      Common implementation of NonbondedForce (#4922) · 2443dcee
      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
      2443dcee
  8. 02 May, 2025 1 commit
  9. 28 Apr, 2025 2 commits
    • Peter Eastman's avatar
      Unified interface for queues (#4913) · dd320bcf
      Peter Eastman authored
      * Unified interface for queues
      
      * Simplified stream handling in CudaFFT3D
      
      * HIP implementation of ComputeQueue
      dd320bcf
    • Peter Eastman's avatar
      Added computeCurrentPressure() to MonteCarloBarostat (#4881) · bce0c133
      Peter Eastman authored
      * Added computeCurrentPressure() to MonteCarloBarostat
      
      * Use instantaneous temperature to compute pressure
      
      * Added computeCurrentPressure() to MonteCarloAnisotropicBarostat
      
      * Added computeCurrentPressure() to MonteCarloMembraneBarostat
      
      * Fixed compilation error
      
      * Fixed error in typemap
      
      * Added documentation on computing pressure
      
      * Fixed CUDA compilation errors
      
      * Made test case more robust
      
      * Made a test case more robust
      
      * Added computeCurrentPressure() to MonteCarloFlexibleBarostat
      
      * Fixed compilation error
      
      * More documentation on computing pressure
      bce0c133
  10. 25 Apr, 2025 1 commit
  11. 23 Apr, 2025 1 commit
  12. 14 Apr, 2025 1 commit
    • Peter Eastman's avatar
      DPDIntegrator (#4799) · de180e4e
      Peter Eastman authored
      * Created DPDIntegrator class
      
      * Reference implementation of DPDIntegrator
      
      * Build neighbor list for DPDIntegrator
      
      * Minor fixes
      
      * Documentation for DPDIntegrator
      
      * Python API for DPDIntegrator
      
      * Preliminary OpenCL implementation of DPDIntegrator
      
      * Enable USE_PERIODIC
      
      * Use updated positions in DPD thermostat
      
      * Working on neighbor list for OpenCL DPDIntegrator
      
      * ReorderListener for particle types
      
      * Serialization for DPDIntegrator
      
      * CUDA implementation of DPDIntegrator
      
      * HIP implementation of DPDIntegrator
      
      * Fixed compile error in Python wrapper
      
      * Fixed compile error in wrappers
      
      * Fixed uninitialized memory in reference neighbor list
      
      * Added DPDIntegrator to C++ API docs
      
      * Fixed incorrect launch size
      
      * Fixed nan in DPD random number generator
      
      * Minor optimizations
      
      * Improved load balancing
      
      * Fixed an indexing error
      
      * Neighbor list uses the maximum cutoff of any force
      
      * Fixed HIP compilation error
      
      * Fixed access to invalid memory
      
      * Added test case for diffusion coefficient
      
      * Try to debug segfaults on CI
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Possible fix
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Use correct block size on CPU OpenCL
      
      * Workaround for bug in Intel's OpenCL for CPUs
      
      * Removed an unnecessary define
      
      * Removed debugging code
      
      * Include Dart
      
      * More Intel workarounds
      
      * Workaround for error in NVIDIA OpenCL
      de180e4e
  13. 21 Mar, 2025 1 commit
  14. 14 Mar, 2025 1 commit
  15. 11 Mar, 2025 1 commit
  16. 10 Mar, 2025 1 commit
  17. 05 Mar, 2025 1 commit
  18. 04 Mar, 2025 1 commit
  19. 13 Jan, 2025 1 commit
  20. 16 Dec, 2024 1 commit
  21. 27 Nov, 2024 1 commit
  22. 26 Nov, 2024 1 commit
  23. 22 Nov, 2024 1 commit
  24. 11 Nov, 2024 1 commit
  25. 01 Nov, 2024 1 commit
  26. 09 Oct, 2024 1 commit
  27. 23 Sep, 2024 1 commit
    • Anton Gorenko's avatar
      Optimize PME spread charge kernel (#4633) · 8ea42950
      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;
      8ea42950
  28. 10 Sep, 2024 3 commits
  29. 06 Sep, 2024 1 commit
    • Peter Eastman's avatar
      Optimize updateParametersInContext() (#4610) · 78902bed
      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
      78902bed
  30. 05 Sep, 2024 7 commits