Deepmd-kit

Latest version: v3.0.1

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 10

3.0.0b1

<!-- Release notes generated using configuration in .github/release.yml at devel -->

What's Changed

Breaking Changes
* breaking(pt/tf/dp): disable bias in type embedding by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3958
This change may make PyTorch checkpoints generated by v3.0.0b0 cannot be used in v3.0.0b1.

New features
* feat: add plugin entry point for PT by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3965
* feat(tf): improve the activation setting in tebd by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3971

Bugfix
* fix: remove ref-names from .git_archival.txt by njzjz-bot in https://github.com/deepmodeling/deepmd-kit/pull/3953
* fix(dp): fix dp seed in dpa2 descriptor by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3957
* fix(pt): add `finetune_head` to argcheck by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3967
* fix(cmake): fix USE_PT_PYTHON_LIBS by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3972
* fix(cmake): set C++ standard according to the PyTorch version by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3973
* Fix: tf dipole atomic key by anyangml in https://github.com/deepmodeling/deepmd-kit/pull/3975
* fix(pt/tf/dp): normalize the econf by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3976

CI/CD
* ci(deps): bump uv to 0.2.24 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3964
* style: enable B904 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3956

**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v3.0.0b0...v3.0.0b1

3.0.0b0

<!-- Release notes generated using configuration in .github/release.yml at devel -->

What's Changed

Compared to [v3.0.0a0](https://github.com/deepmodeling/deepmd-kit/releases/tag/v3.0.0a0), v3.0.0b0 contains all changes in [v2.2.10](https://github.com/deepmodeling/deepmd-kit/releases/tag/v2.2.10) and [v2.2.11](https://github.com/deepmodeling/deepmd-kit/releases/tag/v2.2.11), as well as:

Breaking changes
* breaking: remove multi-task support in tf by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3763
* breaking: deprecate `set_prefix` by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3753
* breaking: use all sets for training and test by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3862. In previous versions, only the last set is used as the test set in `dp test`.
* PyTorch models trained in v3.0.0a0 cannot be used in v3.0.0b0 due to several changes. As mentioned in the release note of v3.0.0a0, we didn't promise backward compatibility for v3.0.0a0.
* The DPA-2 configurations have been changed by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3768. The old format in v3.0.0a0 is no longer supported.

Major new features

- Latest supported features in the PyTorch and DP backend, which are consistent with the TensorFlow backend if possible:
- Descriptor: `se_e2_a`, `se_e2_r`, `se_e3`, `se_atten`, `se_atten_v2`, `dpa2`, `hybrid`;
- Fitting: `energy`, `dipole`, `polar`, `dos`, `fparam`/`apram` support
- Model: standard, DPRc, `frozen`, ZBL, Spin
- Python inference interface
- PyTorch only: C++ inference interface for energy only
- PyTorch only: TensorBoard
- Support using the DPA-2 model in the LAMMPS by CaRoLZhangxy in https://github.com/deepmodeling/deepmd-kit/pull/3657. If you install the Python interface from the source, you must set the environment variable `DP_ENABLE_PYTORCH=1` to build the PyTorch customized OPs.
- New command line options `dp show` by Chengqian-Zhang in https://github.com/deepmodeling/deepmd-kit/pull/3796 and `dp change-bias` by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3933.
- New training options `max_ckpt_keep` by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3441 and `change_bias_after_training` by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3933. Several training options now take effect in the PyTorch backend, such as `seed` by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3773, `disp_training` and `time_training` by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3775, and `profiling` by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3897.
- Performance improvement of the PyTorch backend by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3422, https://github.com/deepmodeling/deepmd-kit/pull/3424, https://github.com/deepmodeling/deepmd-kit/pull/3425 and by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3826
- Support generating JSON schema for integration with VSCode by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3849

Minor enhancements and code refactoring are listed at https://github.com/deepmodeling/deepmd-kit/compare/v3.0.0a0...v3.0.0b0.

Contributors

- CaRoLZhangxy: 3434, 3436, 3612, 3613, 3614, 3656, 3657, 3740, 3780, 3917, 3919
- Chengqian-Zhang: 3615, 3796, 3828, 3840, 3912
- Mancn-Xu: 3567
- Yi-FanLi: 3822
- anyangml: 3398, 3410, 3426, 3432, 3435, 3447, 3451, 3452, 3468, 3485, 3486, 3575, 3584, 3654, 3662, 3663, 3706, 3757, 3759, 3812, 3824, 3876
- caic99: 3465
- chazeon: 3473, 3652, 3653, 3739
- cherryWangY: 3877
- dependabot: 3446, 3487, 3777, 3882
- hztttt: 3762
- iProzd: 3301, 3409, 3411, 3441, 3442, 3445, 3456, 3480, 3569, 3571, 3573, 3607, 3616, 3619, 3696, 3698, 3712, 3717, 3718, 3725, 3746, 3748, 3758, 3763, 3768, 3773, 3774, 3775, 3781, 3782, 3785, 3803, 3813, 3814, 3815, 3826, 3837, 3841, 3842, 3843, 3873, 3906, 3914, 3916, 3925, 3926, 3927, 3933, 3944, 3945
- nahso: 3726, 3727
- njzjz: 3393, 3402, 3403, 3404, 3405, 3415, 3418, 3419, 3421, 3422, 3423, 3424, 3425, 3431, 3437, 3438, 3443, 3444, 3449, 3450, 3453, 3461, 3462, 3464, 3484, 3519, 3570, 3572, 3574, 3580, 3581, 3583, 3600, 3601, 3605, 3610, 3617, 3618, 3620, 3621, 3624, 3625, 3631, 3632, 3633, 3636, 3651, 3658, 3671, 3676, 3682, 3685, 3686, 3687, 3688, 3694, 3695, 3701, 3709, 3711, 3714, 3715, 3716, 3721, 3737, 3753, 3767, 3776, 3784, 3787, 3792, 3793, 3794, 3798, 3800, 3801, 3810, 3811, 3816, 3820, 3829, 3832, 3834, 3835, 3836, 3838, 3845, 3846, 3849, 3851, 3855, 3856, 3857, 3861, 3862, 3870, 3872, 3874, 3875, 3878, 3880, 3888, 3889, 3890, 3891, 3893, 3894, 3895, 3896, 3897, 3918, 3921, 3922, 3930
- njzjz-bot: 3669
- pre-commit-ci: 3454, 3489, 3599, 3634, 3659, 3675, 3700, 3720, 3754, 3779, 3825, 3850, 3863, 3883, 3900, 3938
- robinzyb: 3647
- wanghan-iapcm: 3413, 3458, 3469, 3609, 3611, 3626, 3628, 3639, 3642, 3649, 3650, 3755, 3761
- wangzyphysics: 3597

New Contributors
* wangzyphysics made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3597
* robinzyb made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3647
* Mancn-Xu made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3567
* njzjz-bot made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3669
* cherryWangY made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3877

**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v3.0.0a0...v3.0.0b0

For discussion of v3, please go to https://github.com/deepmodeling/deepmd-kit/discussions/3401

3.0.0a0

<!-- Release notes generated using configuration in .github/release.yml at devel -->

DeePMD-kit v3: A multiple-backend framework for deep potentials

We are excited to announce the first alpha version of DeePMD-kit v3. DeePMD-kit v3 allows you to train and run deep potential models on top of TensorFlow or PyTorch. DeePMD-kit v3 also supports the [DPA-2 model](https://arxiv.org/abs/2312.15492), a novel architecture for large atomic models.

Highlights

Multiple-backend framework

![image](https://github.com/deepmodeling/deepmd-kit/assets/9496702/6bf132d2-6952-4009-b263-3648641003e4)

DeePMD-kit v3 adds a pluggable multiple-backend framework to provide consistent training and inference experiences between different backends. You can:

- Use the same training data and the input script to train a deep potential model with different backends. Switch backends based on efficiency, functionality, or convenience:
sh
Training a model using the TensorFlow backend
dp --tf train input.json
dp --tf freeze

Training a mode using the PyTorch backend
dp --pt train input.json
dp --pt freeze


- Use any model to perform inference via any existing interfaces, including `dp test`, Python/C++/C interface, and third-party packages (dpdata, ASE, LAMMPS, AMBER, Gromacs, i-PI, CP2K, OpenMM, ABACUS, etc). Take an example on LAMMPS:
sh
run LAMMPS with a TensorFlow backend model
pair_style deepmd frozen_model.pb
run LAMMPS with a PyTorch backend model
pair_style deepmd frozen_model.pth
Calculate model deviation using both models
pair_style deepmd frozen_model.pb frozen_model.pth out_file md.out out_freq 100


- Convert models between backends, using `dp convert-backend`, if both backends support a model:
sh
dp convert-backend frozen_model.pb frozen_model.pth
dp convert-backend frozen_model.pth frozen_model.pb


- Add a new backend to DeePMD-kit much more quickly if you want to contribute to DeePMD-kit.

PyTorch backend: a backend designed for large atomic models and new research

We added the PyTorch backend in DeePMD-kit v3 to support the development of new models, especially for large atomic models.

DPA-2 model: Towards a universal large atomic model for molecular and material simulation

[DPA-2 model](https://arxiv.org/abs/2312.15492) is a novel architecture for [Large Atomic Model](https://github.com/deepmodeling/community/discussions/32) (LAM) and can accurately represent a diverse range of chemical systems and materials, enabling high-quality simulations and predictions with significantly reduced efforts compared to traditional methods. The DPA-2 model is only implemented in the PyTorch backend. An example configuration is in the `examples/water/dpa2` directory.

The DPA-2 descriptor includes two primary components: `repinit` and `repformer`. The detailed architecture is shown in the following figure.

![DPA-2](https://github.com/deepmodeling/deepmd-kit/assets/9496702/9f342b7d-5b68-4dcf-9df2-0fbadb58cec3)

Training strategies for large atomic models

The PyTorch backend has supported multiple training strategies to develop large atomic models.

**Parallel training**: Large atomic models have a number of hyper-parameters and complex architecture, so training a model on multiple GPUs is necessary. Benefiting from the PyTorch community ecosystem, the parallel training for the PyTorch backend can be driven by [`torchrun`](https://pytorch.org/docs/stable/elastic/run.html), a launcher for distributed data parallel.

sh
torchrun --nproc_per_node=4 --no-python dp --pt train input.json


**Multi-task training**: Large atomic models are trained against data in a wide scope and at different DFT levels, which requires multi-task training. The PyTorch backend supports multi-task training, sharing the descriptor between different An example is given in `examples/water_multi_task/pytorch_example/input_torch.json`.

**Finetune**: Fine-tune is useful to train a pre-train large model on a smaller, task-specific dataset. The PyTorch backend has supported `--finetune` argument in the `dp --pt train` command line.

Developing new models using Python and dynamic graphs

Researchers may feel pain about the static graph and the custom C++ OPs from the TensorFlow backend, which sacrifices research convenience for computational performance. The PyTorch backend has a well-designed code structure written using the dynamic graph, which is currently 100% written with the Python language, making extending and debugging new deep potential models easier than the static graph.

Supporting traditional deep potential models

People may still want to use the traditional models already supported by the TensorFlow backend in the PyTorch backend and compare the same model among different backends. We almost rewrote all of the traditional models in the PyTorch backend, which are listed below:

- Features supported:
- Descriptor: `se_e2_a`, `se_e2_r`, `se_atten`, `hybrid`;
- Fitting: energy, dipole, polar, fparam/apram support
- Model: `standard`, DPRc
- Python inference interface
- C++ inference interface for energy only
- TensorBoard
- Features not supported yet:
- Descriptor: `se_e3`, `se_atten_v2`, `se_e2_a_mask`
- Fitting: `dos`
- Model: `linear_ener`, DPLR, `pairtab`, `linear_ener`, `frozen`, `pairwise_dprc`, ZBL, Spin
- Model compression
- Python inference interface for DPLR
- C++ inference interface for tensors and DPLR
- Paralleling training using Horovod
- Features not planned:
- Descriptor: `loc_frame`, `se_e2_a` + type embedding, `se_a_ebd_v2`
- NVNMD

> [!WARNING]
> As part of an alpha release, the PyTorch backend's API or user input arguments may change before the first stable version.

DP backend and format: reference backend for other backends

DP is a reference backend for development that uses pure NumPy to implement models without using any heavy deep-learning frameworks. It cannot be used for training but only for Python inference. As a reference backend, it is not aimed at the best performance but only the correct results. The DP backend uses HDF5 to store model serialization data, which is backend-independent.
The DP backend and the serialization data are used in the unit test to ensure different backends have consistent results and can be converted between each other.
In the current version, the DP backend has a similar supporting status to the PyTorch backend, while DPA-1 and DPA-2 are not supported yet.

Authors

The above highlights were mainly contributed by
- Hangrui Bi (20171130), in 3180
- Chun Cai (caic99), in 3180
- Junhan Chang (TablewareBox), in 3180
- Yiming Du (nahso), in 3180
- Guolin Ke (guolinke), in 3180
- Xinzijian Liu (zjgemi), in 3180
- Anyang Peng (anyangml), in 3362, 3192, 3212, 3210, 3248, 3266, 3281, 3296, 3309, 3314, 3321, 3327, 3338, 3351, 3376, 3385
- Xuejian Qin (qin2xue3jian4), in 3180
- Han Wang (wanghan-iapcm), in 3188, 3190, 3208, 3184, 3199, 3202, 3219, 3225, 3232, 3235, 3234, 3241, 3240, 3246, 3260, 3274, 3268, 3279, 3280, 3282, 3295, 3289, 3340, 3352, 3357, 3389, 3391, 3400
- Jinzhe Zeng (njzjz), in 3171, 3173, 3174, 3179, 3193, 3200, 3204, 3205, 3333, 3360, 3364, 3365, 3169, 3164, 3175, 3176, 3187, 3186, 3191, 3195, 3194, 3196, 3198, 3201, 3207, 3226, 3222, 3220, 3229, 3226, 3239, 3228, 3244, 3243, 3213, 3249, 3250, 3254, 3247, 3253, 3271, 3263, 3258, 3276, 3285, 3286, 3292, 3294, 3293, 3303, 3304, 3308, 3307, 3306, 3316, 3315, 3318, 3323, 3325, 3332, 3331, 3330, 3339, 3335, 3346, 3349, 3350, 3310, 3356, 3361, 3342, 3348, 3358, 3366, 3374, 3370, 3373, 3377, 3382, 3383, 3384, 3386, 3390, 3395, 3394, 3396, 3397
- Chengqian Zhang (Chengqian-Zhang), in 3180
- Duo Zhang (iProzd), in 3180, 3203, 3245, 3261, 3262, 3355, 3367, 3359, 3371, 3387, 3388, 3380, 3378
- Xiangyu Zhang (CaRoLZhangxy), in 3162, 3287, 3337, 3375, 3379

Breaking changes

- Python 3.7 support is dropped. by njzjz in 3185
- We require all model files to have the correct filename extension for all interfaces so a corresponding backend can load them. TensorFlow model files must end with `.pb` extension.
- Python class `DeepTensor` (including `DeepDiople` and `DeepPolar`) now returns atomic tensor in the dimension of `natoms` instead of `nsel_atoms`. by njzjz in 3390
- For developers: the Python module structure is fully refactored. The old `deepmd` module was moved to `deepmd.tf` without other API changes, and `deepmd_utils` was moved to `deepmd` without other API changes. by njzjz in 3177, 3178

Other changes

Enhancement

* Neighbor stat for the TensorFlow backend is 80x accelerated. by njzjz in 3275
* i-PI: remove normalize_coord by njzjz in 3257
* LAMMPS: fix_dplr.cpp delete redundant setup and set atom->image when pre_force by shiruosong in 3344, 3345
* Bump scikit-build-core to 0.8 by njzjz in 3369
* Bump LAMMPS to stable_2Aug2023_update3 by njzjz in 3399
* Add fparam/aparam support for fine-tune by njzjz in 3313
* TF: remove freeze warning for optional nodes by njzjz in 3381

CI/CD
* Build macos-arm64 wheel on M1 runners by njzjz in 3206
* Other improvements and fixes to GitHub Actions by njzjz in 3238, 3283, 3284, 3288, 3290, 3326
* Enable docstring code format by njzjz in 3267

Bugfix
* Fix TF 2.16 compatibility by njzjz in 3343
* Detect version in advance before building deepmd-kit-cu11 by njzjz in 3172
* C API: change the required shape of electric field to nloc * 3 by njzjz in 3237

New Contributors
* anyangml made their first contribution in 3192
* shiruosong made their first contribution in 3344

**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v2.2.8...v3.0.0a0

2.2.11

<!-- Release notes generated using configuration in .github/release.yml at r2 -->

What's Changed

New feature
- feat: apply descriptor exclude_types to env mat stat by njzjz in 3625
- feat(build): Add Git archives version files by njzjz-bot in 3669

Enhancement
- style: enable W rules by njzjz in 3793
- build: unpin tensorflow version on windows by njzjz in 3721
- Add a reminder for the illegal memory error by Yi-FanLi in 3822
- lmp: improve error message when compute/fix is not found by njzjz in 3801

Bugfix
- tf: remove freeze warning for optional nodes by njzjz in 3381
- fix: set rpath for protobuf by njzjz in 3636
- fix(tf): apply exclude types to se_atten_v2 switch by njzjz in 3651
- fix: fix git version detection in docker_package_c.sh by njzjz in 3658
- fix(tf): fix float32 for exclude_types in se_atten_v2 by njzjz in 3682
- Fix typo in smooth_type_embdding by iProzd in 3698
- test: set more lossy precision requirements by nahso in 3726
- fix: fix ipi package by njzjz in 3835
- fix(tf): prevent fitting_attr variable scope from becoming fitting_attr_1 by njzjz in 3930
- fix seeds in se_a and se_atten by njzjz in 3880

Documentation
- docs: update DPA-1 reference by njzjz in 3810
- docs: setup uv for readthedocs by njzjz in 3685
- Clarifiy se_atten_v2 compression doc by nahso in 3727
- docs: add document equations for se_atten_v2 by Chengqian-Zhang in 3828

CI/CD
- CI: Accerate GitHub Actions using uv by njzjz in 3676
- ci: bump ase to 3.23.0 by njzjz in 3846
- ci(build): use uv for cibuildwheel by njzjz in 3695
- chore(ci): workaround to retry error decoding response body from uv by njzjz in 3889

Dependency updates
- build(deps): bump tar from 6.1.14 to 6.2.1 in /source/nodejs by dependabot in 3714
- build(deps): bump pypa/cibuildwheel from 2.17 to 2.18 by dependabot in 3777
- build(deps): bump docker/build-push-action from 5 to 6 by dependabot in 3882


**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v2.2.10...v2.2.11

2.2.10

<!-- Release notes generated using configuration in .github/release.yml at r2 -->

What's Changed

New features

* Add `max_ckpt_keep` for trainer by iProzd in https://github.com/deepmodeling/deepmd-kit/pull/3441
* feat: model devi C/C++ API without nlist by robinzyb in https://github.com/deepmodeling/deepmd-kit/pull/3647

Enhancement
* Neighbor stat is 80x accelerated by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3275
* support checkpoint path (instead of directory) in dp freeze by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3254
* add fparam/aparam support for finetune by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3313
* chore(build): move static part of dynamic metadata to pyproject.toml by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3618
* test: add LAMMPS MPI tests by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3572
* support Python 3.12 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3343

Documentation
* docs: rewrite README; deprecate manually written TOC by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3179
* docs: apply type_one_side=True to `se_a` and `se_r` by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3364
* docs: add deprecation notice for the official conda channel and more conda docs by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3462
* docs: Replace quick_start.ipynb with a new version. by Mancn-Xu in https://github.com/deepmodeling/deepmd-kit/pull/3567
* issue template: change TF version to backend version by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3244
* chore: remove incorrect memset TODOs by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3600

Bugfix
* c: change the required shape of electric field to nloc * 3 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3237
* Fix LAMMPS plugin symlink path on macOS platform by chazeon in https://github.com/deepmodeling/deepmd-kit/pull/3473
* fix_dplr.cpp delete redundant setup by shiruosong in https://github.com/deepmodeling/deepmd-kit/pull/3344
* fix_dplr.cpp set atom->image when pre_force by shiruosong in https://github.com/deepmodeling/deepmd-kit/pull/3345
* fix: fix type hint of sel by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3624
* fix: make `se_atten_v2` masking smooth when davg is not zero by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3632
* fix: do not install tf-keras for cu11 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3444

CI/CD

* detect version in advance before building deepmd-kit-cu11 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3172
* fix deepmd-kit-cu11 again by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3403
* ban print by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3415
* ci: add linter for markdown, yaml, CSS by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3574
* fix AlmaLinux GPG key error by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3326
* ci: reduce ASLR entropy by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3461

Dependency update
* bump LAMMPS to stable_2Aug2023_update3 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3399
* build(deps): bump codecov/codecov-action from 3 to 4 by dependabot in https://github.com/deepmodeling/deepmd-kit/pull/3231
* build(deps): bump pypa/cibuildwheel from 2.16 to 2.17 by dependabot in https://github.com/deepmodeling/deepmd-kit/pull/3487
* pin nvidia-cudnn-cu{11,12} to <9 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3610
* pin docker actions to major versions by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3238
* build(deps): bump the npm_and_yarn group across 1 directories with 1 update by dependabot in https://github.com/deepmodeling/deepmd-kit/pull/3312
* bump scikit-build-core to 0.8 by njzjz in https://github.com/deepmodeling/deepmd-kit/pull/3369
* build(deps): bump softprops/action-gh-release from 1 to 2 by dependabot in https://github.com/deepmodeling/deepmd-kit/pull/3446

New Contributors

* shiruosong made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3344
* robinzyb made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3647
* Mancn-Xu made their first contribution in https://github.com/deepmodeling/deepmd-kit/pull/3567

**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v2.2.9...v2.2.10

2.2.9

What's Changed

Bugfixes
* cc: fix returning type of sel_types by njzjz in 3181
* fix compile gromacs with precompiled C library by njzjz in 3217
* gmx: fix include directive by njzjz in 3221
* c: fix all memory leaks; add sanitizer checks in 3223

CI/CD
* build macos-arm64 wheel on M1 runners by njzjz in 3206

**Full Changelog**: https://github.com/deepmodeling/deepmd-kit/compare/v2.2.8...v2.2.9

Page 2 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.