1. 10 Sep, 2024 1 commit
    • Peter Eastman's avatar
      Merged parallel code (#4649) · b28d2e66
      Peter Eastman authored
      * Unified lots of parallel computation code between platforms
      
      * Unified test code between platforms
      
      * Eliminated duplicated timing code
      b28d2e66
  2. 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
  3. 05 Sep, 2024 1 commit
  4. 19 Aug, 2024 1 commit
  5. 06 Apr, 2024 1 commit
  6. 24 Feb, 2024 1 commit
  7. 23 Feb, 2024 1 commit
  8. 17 Feb, 2024 1 commit
  9. 02 Feb, 2024 1 commit
  10. 18 Jan, 2024 1 commit
  11. 20 Dec, 2023 1 commit
  12. 12 Dec, 2023 1 commit
  13. 24 Oct, 2023 1 commit
  14. 16 Oct, 2023 1 commit
    • Christopher Woods's avatar
      WIP - looking for a way to optimise performance of creating contexts by... · 03ed8ff2
      Christopher Woods authored
      WIP - looking for a way to optimise performance of creating contexts by removing temporary arrays (and their associated mallocs/frees) (#4261)
      
      * Suggesting a "haveSameParameters" function for CustomNonbondedForce which could be
      used to avoid creating temporary copies of arrays when testing if particles are
      the same.
      
      Also updating "getParticleParameters" so that it re-uses the memory of the
      passed vector argument, rather than deallocating and reallocating it
      via a copy.
      
      * Revert "Suggesting a "haveSameParameters" function for CustomNonbondedForce which could be"
      
      This reverts commit e80ec2d2e9981abb90711636bf3a78d0c49e43fc.
      
      * Moved to `thread_local static` as suggested to prevent new vector allocations on each function call.
      
      Updated `getParameters` and `getBondParameters` to re-use the memory from the argument rather
      than re-allocating via the copy.
      
      * Forgot to reuse the memory for the groups...
      
      * Reverted back the manual copies via memcpy as they aren't needed. Looking at the header
      file and benchmarking shows that std::vector does the right thing.
      
      * Confined `thread_local static` only to ForceInfo methods, and have also put declarations
      for multiple variables back onto a single line
      
      * Removed `thread_local static` from the constructor
      
      * Moved constructor declarations back into the for loop
      03ed8ff2
  15. 28 Sep, 2023 1 commit
  16. 16 Sep, 2023 1 commit
  17. 04 Sep, 2023 1 commit
  18. 02 Sep, 2023 1 commit
  19. 01 Sep, 2023 1 commit
  20. 28 Aug, 2023 1 commit
  21. 18 Aug, 2023 1 commit
    • bdenhollander's avatar
      Amoeba and ATM Force minor cleanup (#4195) · f2bdcc75
      bdenhollander authored
      * Amoeba minor cleanup
      
      - Fix variable name in string
      - Remove odd space between variable and period that is inconsistently styled
      
      * Replaces random tabs with spaces in ATM Force
      f2bdcc75
  22. 02 Aug, 2023 1 commit
    • Emilio Gallicchio's avatar
      Draft integration of the Alchemical Transfer Method (ATM) plugin (#4110) · d8c67699
      Emilio Gallicchio authored
      
      
      * Draft integration of the Alchemical Transfer Method (ATM) plugin
      
      * Attempt to store and retrieve forces--does not compile
      
      * Implement addForce()/getForce() methods
      
      * Throw exception when specifying properties without a Platform (#4130)
      
      * Fixed DOF calculation for NoseHooverIntegrator (#4128)
      
      * Fix variance in documentation of VerletIntegrator (#4138)
      
      * Python API for ATMForce
      
      * Fixed compilation error
      
      * Minor cleanup of formatting and documentation
      
      * Files for ATMForce test cases
      
      * More cleanup
      
      * Removed variable groups
      
      * Test ATMForce with two particles
      
      * More tests for ATMForce plus fixes
      
      * Added missing header
      
      * Rework interface to pass displacements as vector of parameters
      
      * Revert "Rework interface to pass displacements as vector of parameters"
      
      This reverts commit 5e092031f31ded1137b677588f007add1c2d6f82.
      
      * Test with nonbonded force
      
      * Allow energy expression to be customized
      
      * Optional displacements at the initial state
      
      * Fixed compilation error build C wrapper
      
      * Address edge case of default energy expression
      
      * Consistent naming of the variables of the displacement states
      
      * Test of soft core function of the default energy expression
      
      * Mark addForce() as taking ownership
      
      * initial python test for ATMForce
      
      * Test custom expressions
      
      * Expanded C++ API documentation for ATMForce
      
      * Energy parameter derivatives
      
      * Serialization for ATMForce
      
      * Documentation, cleanup, and fixes
      
      * Fixed typos
      
      * getPerturbationEnergy() computes energy
      
      * Another test case
      
      * Minor edits
      
      ---------
      Co-authored-by: default avatarPeter Eastman <peastman@stanford.edu>
      Co-authored-by: default avatarMichael Plainer <plainer@ymail.com>
      d8c67699
  23. 21 Jul, 2023 1 commit
  24. 23 Jun, 2023 1 commit
  25. 12 Jun, 2023 1 commit
  26. 31 May, 2023 1 commit
  27. 23 May, 2023 1 commit
  28. 18 May, 2023 1 commit
  29. 27 Apr, 2023 1 commit
  30. 13 Apr, 2023 1 commit
  31. 31 Jan, 2023 1 commit
  32. 12 Sep, 2022 1 commit
  33. 08 Sep, 2022 1 commit
  34. 31 Aug, 2022 1 commit
  35. 17 Aug, 2022 1 commit
  36. 12 Aug, 2022 1 commit
  37. 09 Aug, 2022 1 commit
  38. 22 Jul, 2022 1 commit
    • Adel Johar's avatar
      Final HIP Platform implementation for AMD GPUs on ROCm (#3338) · a39fa14a
      Adel Johar authored
      
      
      * Support kernel files with extensions of any length (like .hip)
      
      * Do not allow to replace symbols in single-line comments
      
      * Add OPENMM_BUILD_COMMON CMake option
      
      It allows to build and install common platform files even if
      CUDA or OpenCL platforms are not built.
      This is required for HIP platform (openmm-hip) if ROCm OpenCL
      packages are not installed.
      
      * Add an option for Python wrapper to install into user packages
      
      OPENMM_PYTHON_USER_INSTALL is OFF be default.
      
      * Support FFT backends in Amoeba plugin
      
      The HIP platform supports FFT backends, this commit moves
      findLegalFFTDimension to ComputeContext, so platforms can have their own
      implementations.
      
      * Compatibility for common platform w/ new HIP platform
      
      * Do not use volatile with private and local AtomData parameters on HIP
      
      The generated code is not optimal, for example, the compiler generates
      flat_load instructions instead of ds_read.
      
      * Tune launch bounds for PME grid-related kernels and add WA for RDNA
      
      Force the compiler to use all registers for gridSpreadCharge and
      gridInterpolateForce by limiting max waves per EU to 1 on CDNA GPUs,
      RDNA GPUs work better without it.
      
      * Optimize atom data structs in GBSA and Amoeba on HIP
      
      Manually rearrange fields, add paddings and force alignments to
      have faster accesses to shared memory: ds_read and ds_write may
      work slower if addresses are not aligned by 16 bytes.
      Co-authored-by: default avatarAnton Gorenko <anton@streamhpc.com>
      Co-authored-by: default avatarNick Curtis <nicholas.curtis@amd.com>
      a39fa14a
  39. 28 Jun, 2022 1 commit
  40. 21 Jun, 2022 1 commit