fix(lammps): share Kokkos runtime with LAMMPS - #5989
Conversation
Backport conda-forge/deepmd-kit-feedstock patch 0005 at d02138263b0b30629fe28c68c8bcecc2b8644513. Agent: ChatGPT Model: GPT-5.6 Sol
for more information, see https://pre-commit.ci
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe Kokkos plugin CMake configuration collects interface properties from available umbrella and component targets. It applies those properties to the plugin and preserves optional ChangesKokkos plugin configuration
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This localized build-configuration change is merge-ready after normal checks and review; no actionable merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5989 +/- ##
==========================================
- Coverage 79.10% 78.84% -0.26%
==========================================
Files 1105 1105
Lines 130981 130981
Branches 4771 4771
==========================================
- Hits 103609 103273 -336
- Misses 25686 26024 +338
+ Partials 1686 1684 -2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Collect non-link interface properties from the Kokkos umbrella and component targets so LAMMPS build-tree packages do not inject NOTFOUND include paths. Coding-Agent: Codex Codex-Version: codex-cli 0.149.0 Model: gpt-5.6-sol Reasoning-Effort: xhigh
|
During the requested Kokkos-enabled plugin validation, I found and fixed an additional build-tree compatibility issue in Validated against
Coding agent: Codex |
## Summary Backport `0004-register-lammps-kokkos-plugin-styles.patch` from `conda-forge/deepmd-kit-feedstock@d02138263b0b30629fe28c68c8bcecc2b8644513`. Runtime LAMMPS plugins do not consume the `PairStyle` declarations used by the built-in package machinery, so explicitly register: - `deepmd/kk` - `deepmd/kk/device` - `deepmd/kk/host` - `dpa4spin/kk` - `dpa4spin/kk/device` - `dpa4spin/kk/host` The newly registered Kokkos plugin styles are attributed to **Tiancheng Li** via `plugin.author`. ## Validation - Single-file change derived from the feedstock patch, with only the requested author attribution adjusted. - Existing non-Kokkos plugin author fields are unchanged. - Split from deepmodeling#5985 so plugin registration can be reviewed independently. - Full build/runtime validation is left to upstream CI. Agent: ChatGPT Model: GPT-5.6 Sol <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added Kokkos-enabled support for DeepMD and DPA-4Spin pair styles. - Added host and device runtime variants for improved compatibility across supported execution environments. - Registered additional pair-style aliases so these implementations can be selected through standard runtime configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Dependencies and follow-up validation Merge order: corrected deepmodeling#5987, then deepmodeling#5989, then this PR. The Kokkos registrations in this PR depend on the compatibility boundary from deepmodeling#5987 and the shared-runtime linkage from deepmodeling#5989. Validated the combined changes with `DEEPMD_LAMMPS_KOKKOS=ON`, `PKG_PLUGIN=ON`, and `PKG_KOKKOS=ON` against `stable_22Jul2025_update5`, `patch_10Sep2025`, and `patch_20Aug2026`. In every build, `plugin load` succeeded and `plugin list` reported all six aliases: `deepmd/kk`, `deepmd/kk/device`, `deepmd/kk/host`, `dpa4spin/kk`, `dpa4spin/kk/device`, and `dpa4spin/kk/host`. Coding agent: Codex Codex version: codex-cli 0.149.0 Model: gpt-5.6-sol Reasoning effort: xhigh Co-authored-by: OutisLi <137472077+OutisLi@users.noreply.github.com>
Summary
Backport
0005-share-lammps-kokkos-runtime.patchfromconda-forge/deepmd-kit-feedstock@d02138263b0b30629fe28c68c8bcecc2b8644513.A runtime LAMMPS plugin should reuse the Kokkos runtime already linked into
liblammps. LinkingKokkos::kokkosagain can create a second CUDA/Kokkos runtime instance and corrupt shutdown state when the plugin unloads.Import the Kokkos include paths, compile definitions/options/features, and link options needed for device compilation while leaving runtime Kokkos symbols to
liblammps; retain the CUDA andLIBDLhelper targets when available.Validation
Agent: ChatGPT
Model: GPT-5.6 Sol
Summary by CodeRabbit