v2.2.0
Caution
Known critical issues in this version
- Frozen models cannot be used in molecular dynamics.
- Incorrect results from se_e3 compressed model.
- Incorrect results from DPLR training.
We suggest all users use a newer version. See #2866 for more information.
New features
- support C API by @njzjz in #1098
- add get cutoff, numb_types, and type_map to C API by @njzjz in #2061
- c: support neighbor list input in the C API by @njzjz in #2106
- c: support DeepPot model deviation in the C API by @njzjz in #2112
- c: fix
ComputeNlist
->ComputeNList
in the C API by @njzjz in #2119 - c: fix bug in hpp float interface and add tests by @njzjz in #2128
- c: DeepTensor by @njzjz in #2184
- add a header-only C++ DeepPot class based on C library by @njzjz in #2079
- c: add DipoleChargeModifier by @njzjz in #2204
- merge print_summary and add it to C API by @njzjz in #2207
- support multiple frames DeepPot in C/hpp API by @njzjz in #2309
- support exceptions in C/hpp APIs by @njzjz in #2344
- support the multi-task training api by @iProzd in #2093
- support the finetune api by @iProzd in #1946
- supports left hands volume by @njzjz in #1956
- support bfloat16 by @njzjz in #1970
- support DPRc + type embedding by @njzjz in #2166
- support the custom training times for each frame by @njzjz in #2208
- support init_frz_model api for multi model by @iProzd in #2206
- support sharing fitting network parameters by @njzjz in #2211
- support dp test with a .txt file specifying the test data dirs by @HuangJiameng in #2235
- support
DeepEval.eval_typeebd
to get type embedding by @njzjz in #2244 - assign type map for LAMMPS
pair_style deepmd
by @njzjz in #2267 - support restarting from compressed checkpoints by @njzjz in #2253
- update frame parameter by LAMMPS compute command by @mingzhong15 in #2254
- nvnmd supports floating point number training and inference by @LiuGroupHNU in #2225
- support multiple frames inference with C++ DeepPot by @njzjz in #2305
- Implementation of se_a_mask op by @dingye18 in #2313
- support exclude_types for se_atten by @njzjz in #2315
- support mixed numbers of atoms with mixed_type by @njzjz in #2345
- add C++/C/hpp mixed type inference interface by @njzjz in #2360
Enhancements
Python
- dp test output files: energy per atom, virial per atom by @likefallwind in #2029
- log HIP_VISIBLE_DEVICES for ROCm by @njzjz in #2032
- move run_config.ini into the root directory by @njzjz in #2098
- skip
get_gpus
subprocess when TF is cpu only by @njzjz in #2135 - add Optional to type hints when default is None by @njzjz in #2139
- optimize FioBin.save by @njzjz in #2143
- open the graph file only once in compress by @njzjz in #2144
- refactor enable_compression by @njzjz in #2147
- store energy bias with interface precision by @njzjz in #2174
- bump minimal dargs version to 0.2.9 by @njzjz in #2240
- add JIT option by @njzjz in #1730
- load training data once from disk if there is only one set by @wanghan-iapcm in #2264
- print average training time by @njzjz in #2308
- print MAE for
dp test
by @njzjz in #2310 - auto detect model version by @Yi-FanLi in #2318
- support multiple sets in one system for mixed_type format by @iProzd in #2343
- copy std when expanding
sel
by @njzjz in #2347
Core
- dynamically load CUDA runtime library by @njzjz in #2082
- support CUDA 12.0 by @njzjz in #2205
- add CUDA Toolkit to optional dependencies by @njzjz in #2219
- load libcublasLt before libcublas by @njzjz in #2241
C++
- uncouple model precision and interface precision by @njzjz in #2031
- merge double and float cc library by @njzjz in #2033
OP
LAMMPS
- lmp: throw errors when 6-element atomic virial requested by @njzjz in #1983
- enable ttm without a patch by @njzjz in #2055
- bump lammps to stable_23Jun2022_update2 by @njzjz in #2053
- Change gridcomm into grid3d in pppm_dplr.cpp to support LAMMPS after 20221222 by @Yi-FanLi in #2300
- bump LAMMPS version to stable_23Jun2022_update3 by @njzjz in #2336
Build and release
- CMake
- use CPP_CXX_ABI for Python libraries by @njzjz in #1960
- find protobuf headers in an automatic way by @njzjz in #1975
- search TF deps from LD_LIBRARY_PATH; eliminate errors by @njzjz in #1976
- CMake config
- refactor
USE_TF_PYTHON_LIBS
by @njzjz in #2177 - add an option to enable native compilation optimization by @njzjz in #2151
- added option to read HIPCC_FLAGS environment variable. by @sigbjobo in #2269
- fix cmake syntax for
USE_TF_PYTHON_LIBS
by @njzjz in #2291 - remove dependencies on _pywrap_tensorflow_internal and libpython for TF 2.12 by @njzjz in #2335
- improve cxx11 abi flags and messages for Red Hat Developer Toolset by @njzjz in #2363
- Python and wheel building
- migrate cibuildwheel configs to pyproject.toml and add tests by @njzjz in #2000
- migrate from setup.cfg to pyproject.toml by @njzjz in #2011
- migrate to PEP 517 and PEP 621 by @njzjz in #2035
- store TF version in the wheel's extras_require by @njzjz in #2084
- fix win64 builds and add win64 wheels by @njzjz in #2085
- enable CUDA for linux-64 wheels by @njzjz in #2087
- add macos-64 wheels by @njzjz in #2088
- pin manylinux image to a specific tag for GCC 11 by @njzjz in #2137
- retag wheels to
py37-none-<platform>
by @njzjz in #2180 - build wheels for Linux ARM64 by @njzjz in #2179
- pip install lammps module by @njzjz in #2186
- pass
--prefer-binary
to cibuildwheel by @njzjz in #2274 - package dp_ipi in the PyPI wheels by @njzjz in #2320
- build_tf.py
- build, package, and release C library by @njzjz in #2072
- perceive LAMMPS version for built-in mode by @njzjz in #1950
- build Docker images for each push by @njzjz in #2324
Test
- enable gcov for Python tests by @njzjz in #1969
- add unittests for LAMMPS pair deepmd by @njzjz in #1977
- c++: add clang tests and fix clang errors by @njzjz in #1992
- refactor: merge tests into the main cmake project by @njzjz in #2102
- merge double and float cc tests by @njzjz in #2108
- add ut for dp convert-from by @njzjz in #2175
- Add unit test TestSelectByType by @Yi-FanLi in #2337
- Add C++ unittests for deepmd::select_map, deepmd::read_file_to_string, and deepmd::deepmd_exception by @Yi-FanLi in #2338
- always pass the codecov status by @njzjz in #2356
- set Codecov patch threshold to 100% by @njzjz in #2364
- Test se_a_ebd to increase test coverage by @kmu in #2353
- speed up the UTs
- CI
Code cleanup
- clean deprecated codes by @njzjz in #2140
- prepare for formatting codes by @njzjz in #2281
- add and run pre-commit to format codes by @njzjz in #2279
- add .git-blame-ignore-revs for git blame by @njzjz in #2294
- Cleanup with flake8 E and F rule sets by @njzjz in #2306
- apply pydocstyle and pyupgrade rule sets by @njzjz in #2340
- clean unused import by @njzjz in #2349
- add Optional to type hints when default is None by @njzjz in #2361
Documents
- docs: document lammps keyword
relative_v
,aparam
, andttm
by @njzjz in #2060 - add dp test help doc by @likefallwind in #2038
- docs: fix HDF5 path by @njzjz in #2076
- docs: document pip install by @njzjz in #2091
- docs: document the conda-forge channel by @njzjz in #2095
- docs: fix spellings and grammars by @njzjz in #2114
- docs: rewrite docs for parallelism by @njzjz in #2099
- docs: add a FAQ about precision by @njzjz in #2115
- docs: add a note about lammps runpath by @njzjz in #2156
- the se-2 descriptor is multi-body by @amcadmus in #2069
- add header only library example by @njzjz in #2083
- Update python.md by @LiangWenshuo1118 in #2158
- docs: fix the link in README by @njzjz in #2197
- Add ABACUS to the interface part. by @caic99 in #2199
- [ImgBot] Optimize images by @imgbot in #2200
- docs: typo correction in docstring by @AnuragKr in #2224
- docs: update docs for type_one_side by @njzjz in #2263
- docs: fix the docs of numb_btch by @njzjz in #2257
- docs: add the logo by @njzjz in #2297
- dark mode for the logo by @njzjz in #2301
- Fix typo in install docs by @caic99 in #2325
- Add examples for "auto" mode of dp convert-from by @Yi-FanLi in #2330
- add an URL to the warning of parallelism by @njzjz in #2362
- Add docs for 'None' activation functions. by @iProzd in #2376
Important bug fixings:
Bug fixings
- fix gcov coverage by @njzjz in #1951
- Fix typo of radisu by @kmu in #1954
- fix compatible with importlib_metadata 5.0.0 and Python 3.12 by @njzjz in #1961
- fix googletest download by @njzjz in #1949
- fix typo in the doc of
loc_frame
by @amcadmus in #1963 - replace
:
by;
fromLD_LIBRARY_PATH
in cmake by @njzjz in #1982 - CVE-2007-4559 Patch by @TrellixVulnTeam in #1984
- use float/double constants for spline5_switch by @njzjz in #1985
- remove duplicated
convert_13_to_21
by @njzjz in #1986 - resolve macos clang errors by @njzjz in #1993
- fix Findtensorflow when LD_LIBRARY_PATH is empty by @njzjz in #2010
- fix OP_CXX_ABI for TF>=2.9 by @njzjz in #2013
- Fix compatibility with ROCm>=3.5.1; fix typo in hip neighbor_list by @njzjz in #2012
- fix python inference on windows by @njzjz in #2054
- cmake: set TensorFlow as import libraries by @njzjz in #2056
- build_tf.py: mirror fixes by @njzjz in #2057
- build_tf.py: roll back TF version to 2.9 by @njzjz in #2065
- fix type hints errors by @Angel-Jia in #2070
- improve building wheel workflow by @njzjz in #2074
- skip checking
_GLIBCXX_USE_CXX11_ABI
on windows or osx by @njzjz in #2075 - fix codecov by @njzjz in #2097
- fix TF compile warnings about Status::OK by @njzjz in #2109
- Fix version 0.12 model conversion by @Yi-FanLi in #2110
- add shuffle_exclude_empty to DeepPot.compute(nlist, atomic) by @njzjz in #2111
- fix invalid escape sequence in strings by @njzjz in #2122
- add precompile headers by @njzjz in #2123
- fix the missing header in api_c tests by @njzjz in #2131
- do not apply automatic batch size on CPUs by @njzjz in #2148
- pass user defined CUDA_NVCC_FLAGS and HIP_HIPCC_FLAGS by @njzjz in #2168
- Fixed a typo inside function comment by @AnuragKr in #2193
- fix pass actions by @njzjz in #2194
- fix per atom energy test results for multiple systems by @njzjz in #2220
- fix
dp freeze
for multi-task whenatom_ener
is set by @njzjz in #2239 - prevent logging messages from other modules by @njzjz in #2256
- do not loop using
np.append
by @njzjz in #2259 - dismiss warnings when
batch_size
isauto
by @njzjz in #2258 - fix: provide get_nlist method for hybrid descriptor by @wanghan-iapcm in #2288
- fix deprecated
logging.warn
by @njzjz in #2295 - fix the installation path of
dp_ipi
by @njzjz in #2296 - fix docstrings to follow the numpydoc style guide by @njzjz in #2298
- Fix bugs #2284 when using hybrid descriptor with se_atten by @iProzd in #2302
- fix bug #2311 when using FP32 in se_atten by @iProzd in #2312
- fix restarting from the original model by @njzjz in #2317
- fix TF version detection of release candidate version by @njzjz in #2332
- fix macOS library suffix for TF 2.12 by @njzjz in #2333
- Delete dp4mask.pb.... by @dingye18 in #2328
- fix
TestReadFileToString.readfiletostring
by @njzjz in #2355 - fix ROCm tabulate_fusion_se_a_grad_fifth_order_polynomial by @njzjz in #2357
- fix cuda installation for building wheels by @njzjz in #2359
- fix: add declaration of strlen to deepmd.hpp by @njzjz in #2358
- fix C++ inference of multiple frames with fparam/aparam by @njzjz in #2351
New Contributors
- @kmu made their first contribution in #1954
- @TrellixVulnTeam made their first contribution in #1984
- @Angel-Jia made their first contribution in #2070
- @LiangWenshuo1118 made their first contribution in #2158
- @AnuragKr made their first contribution in #2193
- @imgbot made their first contribution in #2200
- @HuangJiameng made their first contribution in #2235
- @sigbjobo made their first contribution in #2269
- @mingzhong15 made their first contribution in #2254
Full Changelog: v2.1.5...v2.2.0