Releases: deepmodeling/deepmd-kit
Releases · deepmodeling/deepmd-kit
v2.1.5
New features:
Enhancements:
- remove white space from train_attr/training_script (#1870)
- replace FastGFile with GFile. FastGFile throws a deprecated warning. (#1874)
- docs: make warnings more prominent (#1879)
- add examples to cli help (#1887)
- remove
get_platform
in setup.py (#1897) - bump to C++ 17 for TF 2.10 (#1898)
- compare converted lr with almost equal (#1901)
- add tutorial and publication links to docs (#1904)
- LAMMPS: Use of “override” instead of “virtual” (#1915)
- highlight LAMMPS codes in doc (#1921)
Bug fixings:
- support initilize parameters from a fitting with suffix (#1885)
- fix DeprecationWarning of imp (#1896)
- find protobuf headers from extra paths (#1910)
- Fix bugs when init_frz_model using tebd. (#1891)
- Use GeluCustom as operator name (#1918)
- handle float point error in sys_probs (#1919)
- fix model conversion of 0.12 (#1941)
v2.1.4
Enhancements:
- add core api docs (#1800)
- add op docs (#1804)
- There's no need for building libtensorflow_cc.so anymore (#1744)
- improve conda installation in the documentation (#1808)
- merge CMake test codes via
add_subdirectory
(#1814) - avoid multiple sessions in DeepEval (#1829)
- bump default lammps version to stable_23Jun2022_update1 (#1847)
- error if LAMMPS_VERSION_NUMBER is not defined (#1849)
- add variant info to output message (#1851)
- generate author list from git (#1854)
- lammps plugin: replace v2.0 with actual version (#1863)
Bug fixings:
- fix OMP bugs in
prod_force
andprod_virial
triggered when the cell is smaller than 2rc. (revert prod_force OMP in #1360) (#1862) - fix typo in hip assert error message (#1802)
- fix memory leaking of GraphDef (#1811)
- add the missing sstream header (#1817)
- fix grappler compilation error with TF 1.15 (#1821)
- docs: fix shape of virial (#1824)
- fix build and running issues on Windows (#1830)
- comment unused session in DPTabulate (#1834)
- fix deprecated bare
pair_coeff
(#1838)
v2.1.3
New features:
- Non-von-Neumann training of DP models. (#1707)
Enhancements
- remove dependency of TF headers from C++ public headers (#1789)
- use lru_cache for DeepEval (#1790)
- support custom gelu implementation (#1795)
- support optional gitee gtest download (#1793)
Bug fixings:
- bump manylinux image to 2_24; add error message when TF_CXX11_ABI_FLAG is 1 (#1796)
v2.1.2
New features:
Enhancements:
- change default NN precision from
float64
todefault
(#1644) - update TF installation doc (#1652)
- migrate test_cc from conda to docker (#1650)
- use float constants and functions in float functions (#1647)
- convert tabulate data from np.ndarray to tf.Tensor (#1657)
- reset the graph before freezing the compressed model (#1658)
- add free_energy to ase calculator (#1667)
- rewrite data doc (#1668)
- migrate sphinx mathjax from jsdelivr to cdnjs (#1669)
- Documentation improvements (#1673)
- doc: add information abotu supported versions of dependencies (#1683)
- doc: add Interfaces out of DeePMD-kit (#1691)
- optimize format_nlist_i_cpu (#1717)
- use net-wise tabulate range (#1665)
- implement parallelism for neighbor stat (#1624)
- render equations in markdown files (#1721)
- update the latest state of easy installation (#1726)
- throw warning in C++ if env is not set (#1728)
- in model_devi, assumes nopbc if box is set to None (#1704)
- add Loss abstract class (#1733)
- prevent from linking TF lib when determining TF version (#1734)
- Automatically label new pull requests based on the paths of files being changed (#1738)
- replace GPU 1./sqrt with rsqrt (#1741)
- add DPRc docs (#1750)
- docs: switch to dargs directive (#1753)
- docs: fix emoji in PDF (#1754)
- add a script to build TF C++ library from source (#1755)
- add auto cli docs (#1751)
- search TF from user site-packages (#1764)
- build_tf.py: expose CC and CXX env to bazel (#1766)
- docs: add links to parameter keys (#1767)
- add argument tests to check examples (#1770)
- reduce training steps in tests (#1771)
- deprecated docstring_parameter; use sphinx rst_epilog instead (#1783)
- remove run_doxygen from sphinx conf.py (#1785)
- bump LAMMPS version to stable_23Jun2022 (#1779)
Bug fixings:
- fix variable declaration error (#1651)
- fix bug of aparam size, should be nlocal_real (#1664)
- fix rcut in hybrid model compression (#1663)
- provide valid_data the same type_map as train_data (#1677)
- deepmodeling.org -> deepmodeling.com (#1678)
- fix compress training (#1680)
- fix bug of model compression training with se_e2_r type descriptor (#1686)
- fix typos in doc (#1687)
- fix grappler compilation error with TF 1.15 ~ 2.6 (#1697)
- set default fparam and aparam stat and recover from graph (#1695)
- fix git permission issue (#1716)
- fix tf_cxx_abi in TF 2.9 (#1723)
- correct type behavior when atomic energy is requested (#1727)
- prevent explicit slash in the path (#1713)
- avoid static CUDA linking (#1731)
- fix finding TF 2.9 ABI (#1736)
- using int64 within the memory allocation operations (#1737)
- fix typos in docs and docstrings (#1752)
- set a proper std when there is no atoms in the data (#1765)
- bump manylinux image to 2014 (#1780)
- add init.py to deepmd/train/ (#1784)
- docs: fix arg reference (#1786)
v2.1.1
New features:
- support
type_one_side
along withexclude_types
(#1423) - support adjust sel of frozen models (#1573 #1574 )
- support
dp convert-from 1.1
(#1587) - support
dp convert-from 1.0
(#1597) - add atom energy bias to type embedding energy (#1592 #1606 )
- add another way to load LAMMPS plugins (#1604)
Enhancement:
- add the deepmodeling banner to doc (#1529)
- bump default LAMMPS version to
stable_29Sep2021_update3
(#1596) - compile CUDA code for all archs (#1595 #1598 )
- follow API changes from latest LAMMPS (#1601)
- add kspace pppm/dplr to lmp plugin library (#1603)
- add a graph optimizer to parallelize prod_force_a_cpu (#1429 #1638 )
- refactor init_variable and support type embedding (#1610)
- optimize dplr data modifier (#1615)
- add system names to model devi header (#1618)
- add tips for easy installation (#1634)
- add the order of box.raw in data-conv.md (#1635)
Bug fixings:
- fix the name of deeptensor/atom and dplr plugin (#1548)
- fix macos library name (#1566)
- fix model compression bug of nan output (#1575)
- fix lammps plugin creator pointer (#1602)
- fix the bug introduced by lammps PR #2481 (#1605)
- update compress cli input file (#1633)
- correct the forward communication at ik differentiation mode in pppm_dplr (#1637)
- Fix compilation error and bug in UT in the ROCm environment (#1628)
v2.1.0
New feature:
- Model compression for se_3, se_r descriptors. Energy and tensor models (#1225 #1228 #1361 )
- Add init-frz-model support for se-t type descriptor (#1245)
- Added all activation functions for model compression. (#1283)
- Update guidelines for the number of threads (#1291)
- Enable mixed precision support for deepmd-kit (#1285 #1471 )
- Unify C++ errors and pass message to LAMMPS (#1326)
- Optimize
DPTabulate._build_lower
method (#1323) - Calculate neighbor statistics from CLI (#1476)
- Add an interface to eval descriptors (#1483)
Enhancement:
- deprecate
numb_test
in the training script (#1249) - Accelerate model compression (#1274)
- Use c++14 for TF 2.7 (#1275)
- Add a citation badge (#1280)
- Add embedding network dimension check of model compression (#1303)
- Provide an option to skip neighbor stat (#1313)
- Add an error message to compress/freeze (#1319)
- Redirect
print_summary
to LAMMPS log (#1324) - Enable OpenMP for
prod_force
andprod_virial
(#1360) - Update issue templates (#1368)
- Bump LAMMPS version to
stable_29Sep2021_update2
(#1279) - Remove
api_cc/include/custom_op.h
(#1405) - Introduce TensorFlow Profiler (#1414)
- Only test/eval fitting properties during training (#1416 #1419 )
- Remove the dependency on
inputs
frominputs_zero
(#1417) - Support recursive detection for the systems of model_devi (#1424)
- Enable TF remapper optimizer (#1418)
- Dynamically load op library in C++ interface (#1384)
- Dplr doc and examples (#1458)
- Bump the Python version to 3.10 (#1465)
- Do some small optimization to ops (avoid concat or add in loops. Instead, append tensors to a list, and concat or accumulate_n after loops) (#943)
- Optimizations related to data statistics
- Test: move loading graphs to setUpClass to accelerate tests (#1484)
- Run test_python in the pre-built container (#1487)
Bug fixings:
- Update and fix typos in doc (#1238 #1239 #1328 #1300 #1445 #1490 #1497 #1504 #1503 #1514 )
- Fix compress training bug within the dp train --init-frz-model interface (#1233)
- Fix Python bugs of loc_frame descriptor (#1253)
- Fix bug of loc_frame descriptor when using lammps (#1255)
- Fix single precision error (#1212)
- Fix the np.frombuffer in dp transfer (#1246)
- Fix SyntaxWarning in graph.py (#1278)
- Change googletest from master to main (#1292)
update_deepmd_input
when compress (#1297 #1301 )- Add importlib_metadata as dependency (#1308)
- Fix bugs about parameters of memset (#1302)
- Fix model compression bug when fparam or aparam is not zero (#1306)
- Add space between words in messages (#1312)
- Do not print virial error with nopbc data (#1314)
- Fix test errors with TensorFlow 2.7 (#1315)
- Fix bug of hip model compression (#1325)
- Prevents rcut_smth larger than rcut (#1354)
- Fix cell and virial transpose bug in dp_ipi (#1353)
- Fix bug in DipoleFittingSeA: (#1363)
- Fix cxx standard for LAMMPS (#1379)
- Explicitly set neighbor request to full in compute deeptensor/atom to fix bug #1381 (#1382)
- Fix NameError (#1385)
- Fix network precision under specific situation (#1391 #1394 )
- Initialize input virial vector to zero (#1397)
- Make OpenMP an optional dependency (#1498)
- Fix nvcc warning when using cuda-11.x toolkit (#1401)
- Add UT for se_3 type descriptor (#1404)
- Fix github git url (#1409)
- Fix gelu grad multi definitions error (#1406)
- Fix
cast_precision
breaking docstring (#1437) - Add image link of ROCm version. (#1432)
- Pass integer zero to memset (#1499)
v2.0.3
v2.0.2
New features:
- support the plugin for GROMACS (#1160 #1169 )
- support the
init-frz-model
option forse_r
andse_t
(#1144) - support data in hdf5 format (#1163)
- automatic batch size for the inference of DP (#1165 #1154 #1173 )
- Allow to scale LR in parallel training in different ways. (#1167)
Enhancement for developers:
Bug fixings:
- explicitly set lammps' neighbor request to full to fix bug #1109
- Add init-frz-model command support to the frozen model generated by this command (#1137)
- Add error message for repeated model compression (#1136)
- doc related improvements and bug fixings (#1141 #1131 #1147 #1156 #1153 #1171 )
- Fix freezing error on checkpoint from parallel training. (#1166)
v2.0.1
New features:
- correct heat flux calculation: interface for deepmd with the centroids atoms, full 3x3 "atomic-virial" (#1093).
- Enable init-frz-model support for the original model (#1102 #1107 )
- support init-frz-model for hybrid descriptor (#1112)
Enhancements:
- use
np.testing.assert_almost_equal
for array comparing (#1059) - set
allow_growth
indefault_tf_session_config
(#1067) - Enable parallel training UT in GitHub CI. (#1075)
- create cross-references in docstring (#1083)
- add ABC for descriptors (#1081)
- merge duplicated NeighborStat.get_stat (#1103)
Bug fixings:
- fix hybrid descriptor training error (#1052)
- bugs and memory issues in UTs (#1056 #1066 )
- copy
all_virial
for float precision (#1069) - fix building problem on macos (#1071)
- use @loader_path on macos instead of $ORIGIN (#1078)
- Revert "get library extension suffix from built-in method" #1072
- undo reset lcurve.out during the model compression process (#1080)
- fix typo:
lcueve.out
->lcurve.out
(#1077) - create model compression checkpoint, avoid overwriting original checkpoint (#1076)
- Fix shape mismatch when type_embedding is enabled and type_one_side is disabled (#1074 )
- reduce
rcut
andsel
in the example ofse_e3
(#1082) - Fix a potential slice bug in se_t descriptor (#1087)
- make compress work for hybrid descriptor composed of se_e2_a (#1094)
- Fix gradient not averaged when parallel training. (#1104)
- fix bug of single precision model compression (#1110)
- fix bug of single precision transfer (#1111)
- fix LAMMPS_VERSION_NUMBER condition (#1116)
- Fix missing
std::numeric_limits
(#1113) - fix data_modifier OOM problem when set size is too large (#1117)
- fix bugs of dipole charge modifier: binary str and missing frozen node (#1124 )
- fix "Call to method DeepTensor.init with too many arguments" (#1125)
v2.0.0
Breaking changes to v1.3
- Training parameters: Several training parameters have been updated. Original training data is splited into training data and validation data. Please read the document to apply the changes. Old styles can still work but are not recommended.
- Model inference: Old models trained by v1 will not work in v2. Run
dp convert-from
to convert old models to v2. - Python interface:
deepmd.DeepPot
has been moved todeepmd.infer.DeepPot
. - C++ interface:
NNPInter
has been renamed todeepmd::DeepPot
andNNPInter.h
has been renamed toDeepPot.h
. Use-ldeepmd_cc
to link instead.
New features
- Model compression (#350 #586 #610 #921 #948 #956 #1000 #1008 #1020 #1043)
- Parallel training (#892 #905 #913 #1030 #1032) (Bytedance)
- ROCm device support (#656 )
- New descriptor: three body embedding (
se_e3
) - Hybridization of descriptors (
hybrid
) - Type embedding
- Training and inference the dipole (vector) and polarizability (matrix). (#495 #538 #927)
- Support derivatives of the tensor properties. (#805)
- Split of training and validation dataset.
- Model deviation for virial
- Add subcommand and python interface to calculate model-deviation (#715)
- Automatically determine the sel from the training data. (#831)
- Building with lammps with plugin mode (#930 #945)
Performance improvement:
- More efficient training: all customized OPs are implemented with GPU.
- MPI support for atomic model deviation #628
- speedup ROCm kernels which use atomicAdd (#809 #815 ) (from ByteDance)
- speedup CUDA kernels (use atomicAdd inside) by reducing the global memory write (#811)
- speedup tabulate cuda kernel by reducing shm using (#830) (Bytedance)
- speedup
format_nlist_b
(#832 #845) - speedup
scan_nlist
kernel (#1028)
Enhancements
- Strict argument check in the input script.
- Auto conversion of input file to v2.0 compatibility
- Append out_file when lammps restarts #640
- Document and examples for the C++ interface #652 #663
- Instructions for the i-pi #660
- Document for the network size and sel #657
- Use fmod to wrap the coord of atoms (solve slow PBC) (#741)
- bit operations to encode neighbor information
- add CUDA/ROCM buidling documents (#739)
- add type-embedding developer doc (#762 #967)
- add model compression support for models with exclude_types feature (#754)
- improve the doc and user interface of model compression (#772)
- support converting models generated in v1.3 to 2.0 compatibility (#725)
- give a default value to T and convert models from v1.2 to 2.0 compatibility (#789)
- improved documents for conda (#798 #925)
- throw a message if tf runtime is incompatible (#797)
- capture OOM and print debug message (#801)
- add message for DecodeError raised when using model compression (#839)
- Passing error to TF instead of exit (#918)
- refactor docs (#952)
- add an example of
nopbc
and related docs (#994) - add
dp --version
(#995) - add the argument
tensorboard_freq
to control sampling ratio during training. (#996) - add sphinx plugins
viewcode
andintersphinx
(#997) - generate Python API document automatically (#998)
- give a clear message if
model.get_ntypes()<data.get_ntypes()
(#1016) - add docstring for
descrpt/se_e2_a
(#1017) - add docstring for
fit/ener
(#1024) - add
InputNlist
into API doc (#1009) - save checkpoint files with step and keep recent files (#1031)
Improvement of the code for developers
- Support version of the model. Easily check model compatability
- Clear and pythonic python interface
- C++ lib that can be tested independently
- C++ API that can be tested independently
- OP supports multi-device.
- Added
deepmd
namespace for the C++ API - UT for Cuda/ROCm code (#569)
- UT for model compression (#586)
- UT for prod_force/virial ops (#703 #741)
- CI test Lammps build (#600)
- allow c++ tests to run without internet (#785)
- build low and high precision at the same time (#879)
- support to specify CUDA/ROCm root in python pkg building (#834) (Bytedance)
- use cached Session to speed up py tests (#833)
- remove cub include for CUDA>=11 (#866)
- Add Errcheck after every kernel function runs And merge redundant code (#855)
- adapt changes to auditwheel directory in manylinux (#889)
- enhance the cli to generate doc json file (#891)
- raise warning before training if
sel
is not enough (#914) - make native MD compatible with v2.0 (#950)
- fix type hints and add doc for
exclude_types
(#1005) - use TF's built-in method to get numpy dtype (#1035)
Bug fixings:
- Remove
using namespace std
. Solve compiling compatability problem. cuda
memory access error #566- Relative force model deviation is not copied back at single precision #599
- Correct way of allocating memory in float precision #612
- Fix TB logdir remove bug #617
- Illegal nlist #680
- Bug in
prod_virial_grad
that causes wrong results when training with virials #685 - Uniform random seed #691
- Illegal nlist #680
- Bug in
prod_virial_grad
that causes wrong results when training with virials #685 - Uniform random seed #691
- fix bug of adding int to a None random seed (#705)
- reuse the zero layer rather than building a new one (#714)
- fix bug in CI (#739)
- fix bug 824 and Synchronize updates to CUDA cod (#828)
- Fix the empty neighbor distance array in neighbor_stat.py (#882)
- fix InvalidArgumentError caused by zero sel and optimize zero matrix (#900)
- fix 'NoneType' has no len() in auto_sel (#911)
- set input
DeepmdData.type_map
to inputtype_map
(#924) - Fix member declartion of
deepmd
anddeepmd.entrypoints
. (#922) - add aliases to Arguments (#933)
- fix bug of gelu activation function (#939)
- convert
decay_rate
tostop_lr
from old inputs (#949) - only enable link what you use on GNU compilers (#962)
- Do not find protobuf for python (#963)
- fix an error in stress by ase interface (#964)
- remove bare
except
and limit thetry
clause (#977) - fix python cmake error (#976)
- Instantiate RunOptions first when training. (#1019)
- Fix complier type in cmake:
CMAKE_COMPILER_IS_GNUCXX
(#1038) - other cleanups of the code (#968 #970 #975 #999 #1004 #1002 #1001 #1010 #1014 #1012 #1011 #1021 #1036 #1037)
Contributors
- Han Bao
- Roberto Car
- Junhan Chang
- Yixiao Chen
- Ye Ding
- Weinan E
- Jiequn Han
- Li'ang Huang
- Weile Jia
- Zeyu Li
- Ziyao Li
- Yinnian Lin
- Yihao Liu
- Xinzijian Liu
- Denghui Lu
- Marián Rynik
- Shaochen Shi
- Ping Tuo
- Bo Wang
- Haidi Wang
- Han Wang
- Yingze Wang
- Yu Xia
- Fengbo Yuan
- Jiabin Yang
- Haotian Ye
- Jinzhe Zeng
- Duo Zhang
- Linfeng Zhang
- Yuzhi Zhang