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.
Optional extra |
What it covers |
Typical use case |
|---|---|---|
|
CUDA-specific PyTorch/TorchVision resolution plus RAPIDS, CuPy, and DALI packages |
Select a CUDA 12 or CUDA 13 backend for GPU-accelerated workflows |
|
Pre-built NATTEN wheels for the matching CUDA and PyTorch stack |
Use neighborhood attention without building NATTEN separately |
|
CUDA-specific Transformer Engine packages |
Use Transformer Engine with a matching CUDA backend |
|
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 and visualization packages such as matplotlib, PyVista, PyACVD, and VTK |
Work with mesh processing, inspection, or visualization |
|
Additional neural network utilities, including SciPy and shared utility extras |
Enable optional functionality used by the |
|
Model-level optional dependencies, including |
Enable optional functionality used by model packages |
|
Data loading and scientific data packages such as TFRecord, Dask, NetCDF4, Xarray, and Zarr |
Work with large scientific datasets and data-pipeline formats |
|
Gaussian process tooling through GPyTorch |
Add uncertainty quantification workflows |
|
PyTorch Geometric and related graph packages, plus model extras |
Build or run graph neural network workflows |
|
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.