Skip to content

Releases: deepmodeling/deepmd-kit

v2.1.4

19 Aug 04:11
c393392
Compare
Choose a tag to compare

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 and prod_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

01 Jul 01:56
5a32c49
Compare
Choose a tag to compare

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

26 Jun 06:49
03c8742
Compare
Choose a tag to compare

New features:

  • supports dp convert-from 0.12 (#1685)
  • add enable_atom_ener_coeff option for energy loss (#1743)

Enhancements:

  • change default NN precision from float64 to default (#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

16 Apr 03:14
c4f0cec
Compare
Choose a tag to compare

New features:

  • support type_one_side along with exclude_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

07 Mar 03:46
3e54fea
Compare
Choose a tag to compare

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 and prod_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 from inputs_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
    • Skip data_stat in init_from_model and restart mode (#1463)
    • Assign energy shift stats if atomic energies are assigned (#1477)
    • Recover input stats from frozen models (#1482)
  • 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)

Manual (PDF·Epub)

v2.0.3

15 Oct 02:34
159e45d
Compare
Choose a tag to compare

Enhancements

  • bump default LAMMPS version to stable_29Sep2021 (#1176)
  • improved documentation (#1184 #1191)

Bug fixings

  • add start_pref_pf and limit_pref_pf to loss Argument (#1200)
  • Fix the bug when type_map has only one element (#1196)
  • failure of hybrid descriptor (#1214)
  • fix single precision error in the model compression (#1212)

Download manual

v2.0.2

29 Sep 08:54
5a84796
Compare
Choose a tag to compare

New features:

  • support the plugin for GROMACS (#1160 #1169 )
  • support the init-frz-model option for se_r and se_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

10 Sep 14:29
2f6020b
Compare
Choose a tag to compare

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 in default_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 and sel in the example of se_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

28 Aug 00:20
1a25414
Compare
Choose a tag to compare

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 to deepmd.infer.DeepPot.
  • C++ interface: NNPInter has been renamed to deepmd::DeepPot and NNPInter.h has been renamed to DeepPot.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 and intersphinx (#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 input type_map (#924)
  • Fix member declartion of deepmd and deepmd.entrypoints. (#922)
  • add aliases to Arguments (#933)
  • fix bug of gelu activation function (#939)
  • convert decay_rate to stop_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 the try 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

v2.0.0-beta.4

04 Aug 08:37
ee0ed99
Compare
Choose a tag to compare
v2.0.0-beta.4 Pre-release
Pre-release

New features:

  • parallel training (#892 #905 #913) (Bytedance)
  • automatically determine the sel from the training data. (#831)
  • build low and high precision at the same time (#879)

Performance improvement:

  • speedup tabulate cuda kernel by reducing shm using (#830) (Bytedance)
  • speedup format_nlist_b (#832 #845)

Enhancements:

  • support to specify CUDA/ROCm root in python pkg building (#834) (Bytedance)
  • use cached Session to speed up py tests (#833)
  • add message for DecodeError raised when using model compression (#839)
  • 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)

Bug fixings:

  • 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)