You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support DPA2/DPA3 C++ inference with lammps
> [!NOTE]
> The intermediate representation (IR) of PaddlePaddle's computation
graph does not support the `Dict[str, Tensor]` data type. Considering
the special nature of `comm_dict`, we replaced it with `List[Tensor]`,
which allowed us to successfully run inference for DPA2 and DPA3.
- DPA2
<img width="896" height="680" alt="4c116161d304da381ffeed968857be1f"
src="https://github.com/user-attachments/assets/c4bc178d-4a14-43f4-8d08-946eb9bdf3d3"
/>
- DPA3
<img width="891" height="682" alt="863dfb7c8f285149cfdaf6aa4c6849fc"
src="https://github.com/user-attachments/assets/b74ea212-9055-4863-85fb-18cbace3c60e"
/>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
* **New Features**
* Added support for distributed computation and message passing in
PaddlePaddle backend, including a custom operator for efficient border
data exchange.
* Enabled optional retrieval of intermediate network outputs during
evaluation.
* Introduced input statistics computation for model fitting.
* Added dynamic loading of Paddle custom operator library and
integration in model descriptor and repformer layers.
* **Improvements**
* Enhanced model freezing and input signature flexibility with dynamic
batch sizes and expanded communication tensor support.
* Improved tensor operations for better device handling, explicit
broadcasting, and type casting consistency.
* Refined handling of atomic virial outputs and descriptor
communication.
* Added support for spin and non-spin modes in parallel descriptor
computations using the custom operator.
* Simplified device placement in tensor creation and removed redundant
explicit device transfers.
* Improved input validation and type annotations across models and
descriptors.
* Replaced ad-hoc logging in C++ API with a structured logger for better
debug output.
* Updated parameter documentation for improved clarity.
* **Bug Fixes**
* Fixed tensor padding, masking, and device placement issues for
improved robustness in distributed and parallel scenarios.
* Corrected handling of neighbor list masking and indexing with explicit
tensor fills to avoid broadcast errors.
* **Build/Chores**
* Added new build scripts and CMake configurations for PaddlePaddle
custom operator integration.
* Improved support for PaddlePaddle model detection and operator library
loading in both Python and C++ APIs.
* Implemented full message passing setup in C++ API replacing previous
exceptions.
* Added Python setup script for Paddle custom operator extension build.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
0 commit comments