PhysicsNeMo Dependency Graph#

PhysicsNeMo separates its dependency footprint into a core install and optional extras. The core install provides the common foundation for AI-driven physics workflows. Optional extras add capabilities for specific development paths, such as CUDA backend selection, graph neural networks, mesh tooling, data loading, uncertainty quantification, symbolic math, or experiment tracking.

This structure keeps the default installation focused while still making specialized workflows available through explicit opt-in dependency groups.

Core Dependencies#

The core dependency list in the PhysicsNeMo pyproject.toml is intentionally bounded. It includes common runtime packages such as PyTorch, TorchVision, NumPy, ONNX, pandas, Warp, Hydra/OmegaConf, tqdm, requests, packaging utilities, and supporting libraries used across the framework.

These dependencies are installed for the base nvidia-physicsnemo package because they support broadly used framework functionality. They are distinct from optional extras, which are only installed when a developer requests them.

Optional Extras#

PhysicsNeMo uses named optional dependency groups for capabilities that are useful in some workflows but unnecessary in others. Extras can be combined when a workflow spans multiple areas. For example, a graph neural network workflow on a specific CUDA stack may use both a GNN extra and a CUDA backend extra.

Table 2 Optional extra dependency groups#

Optional extra

What it covers

Typical use case

cu12, cu13

CUDA-specific PyTorch/TorchVision resolution plus RAPIDS, CuPy, and DALI packages

Select a CUDA 12 or CUDA 13 backend for GPU-accelerated workflows

natten-cu12, natten-cu13

Pre-built NATTEN wheels for the matching CUDA and PyTorch stack

Use neighborhood attention without building NATTEN separately

transformer-engine-cu12, transformer-engine-cu13

CUDA-specific Transformer Engine packages

Use Transformer Engine with a matching CUDA backend

utils-extras

Experiment tracking, profiling, and utility packages such as W&B, MLflow, line profiler, VTK, and STL support

Add workflow utilities for logging, profiling, or supporting data formats

mesh-extras

Mesh and visualization packages such as matplotlib, PyVista, PyACVD, and VTK

Work with mesh processing, inspection, or visualization

nn-extras

Additional neural network utilities, including SciPy and shared utility extras

Enable optional functionality used by the physicsnemo.nn layer

model-extras

Model-level optional dependencies, including nn-extras, PyVista, and VTK

Enable optional functionality used by model packages

datapipes-extras

Data loading and scientific data packages such as TFRecord, Dask, NetCDF4, Xarray, and Zarr

Work with large scientific datasets and data-pipeline formats

uq-extras

Gaussian process tooling through GPyTorch

Add uncertainty quantification workflows

gnns

PyTorch Geometric and related graph packages, plus model extras

Build or run graph neural network workflows

sym

SymPy

Add symbolic math support

Some extras are intentionally paired. CUDA backend extras are mutually exclusive, and CUDA-specific extras such as NATTEN or Transformer Engine should be paired with the matching CUDA backend.

PhysicsNeMo applies a separation with the base package which declares the dependencies needed for common functionality, while specialized capabilities are exposed through named extras. Developers can start with the core package and add optional groups only when their workflow needs them.

Sources#