1. 03 Apr, 2026 1 commit
    • Peter Eastman's avatar
      Merge fixes for 8.5.1 (#5253) · 337418fd
      Peter Eastman authored
      
      
      * Fix leaked variable causing spurious template constraint assignment (#5236)
      
      * fix 5234 and add test
      
      * clean up docstring and standardize test name
      
      * Take line search energy difference on CPU before reducing precision (#5242)
      
      * Avoid multiple forces running on the worker thread at once (#5243)
      
      * Fixed pressure calculation in MOnteCarloFlexibleBarostat (#5251)
      
      ---------
      Co-authored-by: default avatarJeff Wagner <jwagnerjpl@gmail.com>
      Co-authored-by: default avatarEvan Pretti <pretti@stanford.edu>
      337418fd
  2. 10 Feb, 2026 1 commit
    • Evan Pretti's avatar
      GPU implementation of L-BFGS (#5198) · 4ab645ea
      Evan Pretti authored
      * Make reference/CPU minimizer into a kernel
      
      * Add per-platform support for GPU minimization
      
      * Initial implementation of GPU minimization
      
      * Fixes
      
      * Increase robustness when initial gradient is huge
      
      * Handle overflow leading to non-finite values gracefully
      
      * Handle large forces in single precision more robustly
      
      * Optimize kernels
      
      * Fix kernel launch size
      
      * Update banner years
      
      * Don't create MinimizeKernel until first minimization requested
      
      * Make some compile-time constants into kernel arguments
      
      * Consolidate scale calculation kernel
      
      * Condense alpha/beta reduction kernels using atomics
      
      * Condense line search dot kernels with reductions
      
      * Remove a download, and download grad norm separately
      
      * Asynchronously check lbfgs convergence condition
      
      * Restructure line search to avoid download waiting
      
      * Start line search preemptively in case CPU evaluation is not needed
      
      * In rare cases, constraint error might not decrease after one optimization round
      
      * Better handling of unsupported 64-bit atomics, use FLT_MAX
      
      * Pick gradient mode based on GPU vs. CPU evaluation
      
      * Rework getDiff/getScale reduction, remove reduceBuffer
      
      * Older CUDA might not like float hex literals
      
      * Fix error in a comment
      4ab645ea