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