Skip to content

v1.3.0

Latest

Choose a tag to compare

@ktangsali ktangsali released this 18 Nov 06:50
· 2 commits to 1.3.0-rc since this release
14e0874

PhysicsNeMo General Release v1.3.0

Added

  • Added mixture_of_experts for weather example in physicsnemo.examples.weather.
    ⚠️Warning: - It uses experimental DiT model subject to future API changes.
    Added some modifications to DiT architecture in physicsnemo.experimental.models.dit.
    Added learnable option to PositionalEmbedding in physicsnemo.models.diffusion.layers.
  • Added lead-time aware training support to the StormCast example.
  • Add a device aware kNN method to physicsnemo.utils.neighbors. Works with CPU or GPU
    by dispatching to the proper optimized library, and torch.compile compatible.
  • Added additional testing of the DoMINO datapipe.
  • Examples: added a new example for full-waveform inversion using diffusion
    models. Accessible in examples/geophysics/diffusion_fwi.
  • Domain Parallelism: Domain Parallelism is now available for kNN, radius_search,
    and torch.nn.functional.pad.
  • Unified recipe for crash modeling, supporting Transolver and MeshGraphNet,
    and three transient schemes.
  • Added a check to stochastic_sampler that helps handle the EDMPrecond model,
    which has a specific .forward() signature
  • Added abstract interfaces for constructing active learning workflows, contained
    under the physicsnemo.active_learning namespace. A preliminary example of how
    to compose and define an active learning workflow is provided in examples/active_learning.
    The moons example provides a minimal (pedagogical) composition that is meant to
    illustrate how to define the necessary parts of the workflow.

Changed

  • Migrated Stokes MGN example to PyTorch Geometric.
  • Migrated Lennard Jones example to PyTorch Geometric.
  • Migrated physicsnemo.utils.sdf.signed_distance_field to a static return,
    torch-only interface. It also now works on distributed meshes and input fields.
  • Refactored DiTBlock to be more modular
  • Added NATTEN 2D neighborhood attention backend for DiTBlock
  • Migrated blood flow example to PyTorch Geometric.
  • Refactored DoMINO model code and examples for performance optimizations and improved readability.
  • Migrated HydroGraphNet example to PyTorch Geometric.
  • Support for saving and loading nested physicsnemo.Modules. It is now
    possible to create nested modules with m = Module(submodule, ...), and save
    and load them with Module.save and Module.from_checkpoint.
    ⚠️Warning: - The modules have to be physicsnemo.Modules, and not
    torch.nn.Modules.
  • Support passing custom tokenizer, detokenizer, and attention Modules in
    experimental DiT architecture
  • Improved Transolver training recipe's configuration for checkpointing and normalization.

Fixed

  • Set skip_scale to Python float in U-Net to ensure compilation works.
  • Ensure stream dependencies are handled correctly in physicsnemo.utils.neighbors
  • Fixed the issue with incorrect handling of files with consecutive runs of
    combine_stl_solids.py in the X-MGN recipe.
  • Fixed the RuntimeError: Worker data receiving interrupted error in the datacenter example.

Contributors

We’re grateful to everyone who contributed issues, feature ideas, fixes, and documentation updates — your input is what helps us continuously improve PhysicsNeMo for the whole community!
A special shout-out to the authors of the pull requests listed above, in no particular order:
@jleinonen , @Dibyajyoti-Chakraborty , @jialusui1102 , @abokov-nv , @melo-gonzo , @dran-dev , @RishikeshRanade , @swbg

Thank you ❤️ — we truly appreciate your contributions and hope to see more from you in the future!