{"name":"NVIDIA PhysicsNeMo: Deep Learning Framework for Physics-ML Models","description":"NVIDIA PhysicsNeMo is an open-source deep learning framework designed for building, training, and fine-tuning Physics AI models. It leverages state-of-the-art scientific machine learning methods, enabling real-time predictions by combining physics knowledge with data. This framework provides scalable, GPU-optimized tools for AI4Science and engineering applications.","github":"https://github.com/NVIDIA/physicsnemo","url":"https://osrepos.com/repo/nvidia-physicsnemo","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/nvidia-physicsnemo","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/nvidia-physicsnemo.md","json":"https://osrepos.com/repo/nvidia-physicsnemo.json","topics":["deep-learning","machine-learning","physics-ml","pytorch","python","nvidia-gpu","ai4science","scientific-computing"],"keywords":["deep-learning","machine-learning","physics-ml","pytorch","python","nvidia-gpu","ai4science","scientific-computing"],"stars":null,"summary":"NVIDIA PhysicsNeMo is an open-source deep learning framework designed for building, training, and fine-tuning Physics AI models. It leverages state-of-the-art scientific machine learning methods, enabling real-time predictions by combining physics knowledge with data. This framework provides scalable, GPU-optimized tools for AI4Science and engineering applications.","content":"## Introduction\n\nNVIDIA PhysicsNeMo is an open-source deep learning framework from NVIDIA, specifically engineered for building, training, and fine-tuning deep learning models using state-of-the-art Physics-ML methods. This powerful framework enables researchers and engineers to develop AI models that combine physics knowledge with data, facilitating real-time predictions across various scientific and engineering domains. Built on PyTorch, PhysicsNeMo offers a scalable, GPU-optimized stack for exploring neural operators, Graph Neural Networks (GNNs), transformers, Physics-Informed Neural Networks (PINNs), and hybrid approaches. The project is currently undergoing an update to v2.0, promising easier installation and integration.\n\nPhysicsNeMo provides modular Python components, including:\n*   `physicsnemo.models`: A collection of optimized model architectures like Neural Operators, GNNs, and Diffusion models.\n*   `physicsnemo.datapipes`: Scalable data pipelines for scientific data structures.\n*   `physicsnemo.distributed`: Utilities for parallel training on NVIDIA GPUs.\n*   `physicsnemo.sym`: Symbolic PDE residual computation for physics-informed losses.\n\n## Installation\n\nPhysicsNeMo offers flexible installation options to suit different environments, including pip, uv, NVIDIA container images, or building from source.\n\n### Via pip\n\nTo install the latest version from PyPI:\n\nbash\npip install nvidia-physicsnemo\n\n\nFor GPU-accelerated packages and a CUDA-matched PyTorch build, specify the CUDA backend (e.g., `cu13` for CUDA 13 or `cu12` for CUDA 12) along with optional feature extras:\n\nbash\n# CUDA 13 backend with nn-extras\npip install \"nvidia-physicsnemo[cu13,nn-extras]\"\n\n# CUDA 12 backend with nn-extras\npip install \"nvidia-physicsnemo[cu12,nn-extras]\"\n\n\n### Using NVIDIA Container\n\nThe PhysicsNeMo Docker image is available from the NVIDIA Container Registry. Pull the latest tag:\n\nbash\ndocker pull nvcr.io/nvidia/physicsnemo/physicsnemo:25.06\n\n\nYou can then run the container and clone the repository to access examples:\n\nbash\ndocker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia \\\n--rm -it nvcr.io/nvidia/physicsnemo/physicsnemo:25.06 bash\ngit clone https://github.com/NVIDIA/physicsnemo.git\ncd physicsnemo/examples/cfd/darcy_fno/\npip install warp-lang # install NVIDIA Warp to run the Darcy example\npython train_fno_darcy.py\n\n\n## Examples\n\nGetting started with PhysicsNeMo is straightforward. Here's a \"Hello World\" example demonstrating a simple fully connected model:\n\npython\nimport torch\nfrom physicsnemo.models.mlp.fully_connected import FullyConnected\n\nmodel = FullyConnected(in_features=32, out_features=64)\ninput = torch.randn(128, 32)\noutput = model(input)\nprint(output.shape)\n# Expected output: torch.Size([128, 64])\n\n\nFor distributed training, PhysicsNeMo integrates seamlessly with `torch.distributed`:\n\npython\nimport torch\nfrom torch.nn.parallel import DistributedDataParallel\nfrom physicsnemo.distributed import DistributedManager\nfrom physicsnemo.models.mlp.fully_connected import FullyConnected\n\ndef main():\n    DistributedManager.initialize()\n    dist = DistributedManager()\n\n    arch = FullyConnected(in_features=32, out_features=64).to(dist.device)\n\n    if dist.distributed:\n        ddps = torch.cuda.Stream()\n        with torch.cuda.stream(ddps):\n            arch = DistributedDataParallel(\n                arch,\n                device_ids=[dist.local_rank],\n                output_device=dist.device,\n                broadcast_buffers=dist.broadcast_buffers,\n                find_unused_parameters=dist.find_unused_parameters,\n            )\n        torch.cuda.current_stream().wait_stream(ddps)\n\n    # Set up the optimizer\n    optimizer = torch.optim.Adam(\n        arch.parameters(),\n        lr=0.001,\n    )\n\n    def training_step(invar, target):\n        pred = arch(invar)\n        loss = torch.sum(torch.pow(pred - target, 2))\n        loss.backward()\n        optimizer.step()\n        return loss\n\n    # Sample training loop\n    for i in range(20):\n        # Random inputs and targets for simplicity\n        input = torch.randn(128, 32, device=dist.device)\n        target = torch.randn(128, 64, device=dist.device)\n\n        # Training step\n        loss = training_step(input, target)\n\nif __name__ == \"__main__\":\n    main()\n\n\nPhysicsNeMo also includes a symbolic PDE module for defining equations:\n\npython\nfrom physicsnemo.sym.eq.pdes.navier_stokes import NavierStokes\nns = NavierStokes(nu=0.01, rho=1, dim=2)\nns.pprint()\n# Expected output:\n# continuity: u__x + v__y\n# momentum_x: u*u__x + v*u__y + p__x + u__t - 0.01*u__x__x - 0.01*u__y__y\n# momentum_y: u*v__x + v*v__y + p__y + v__t - 0.01*v__x__x - 0.01*v__y__y\n\n\nFor a comprehensive collection of examples and reference samples, refer to the [PhysicsNeMo examples directory](https://github.com/NVIDIA/physicsnemo/blob/main/examples/README.md).\n\n## Why Use PhysicsNeMo?\n\nPhysicsNeMo is designed to accelerate scientific machine learning workflows with several key advantages:\n\n*   **Scalable GPU-Optimized Training Library**: Maximizes the power of NVIDIA GPUs with distributed computing utilities for efficient scaling from single to multi-node GPU clusters. It includes advanced optimization utilities, tailor-made datapipes, and symbolic PDE utilities for enhanced training speed.\n*   **A Suite of Physics-Informed ML Models**: Offers a rich library of state-of-the-art models optimized for Physics-ML applications, such as Neural Operators (FNOs, DeepONet), Graph Neural Networks (MeshGraphNet), Diffusion Models, and Physics-Informed Neural Networks (PINNs). These models significantly reduce development time for high-fidelity simulations.\n*   **Seamless PyTorch Integration**: Built on top of PyTorch, it provides a familiar and user-friendly experience, allowing users to leverage the extensive PyTorch ecosystem while benefiting from PhysicsNeMo's specialized capabilities.\n*   **Easy Customization and Extension**: Highly extensible with Pythonic APIs for defining new physics models, geometries, and constraints. Features like ONNX support, robust logging, and efficient checkpointing further enhance its adaptability.\n*   **AI4Science Library**: Serves as a complementary tool to PyTorch for SciML and AI4Science applications, providing a deep learning research platform with optimal performance on NVIDIA GPUs. It also includes domain-specific packages like PhysicsNeMo CFD, PhysicsNeMo Curator, and Earth-2 Studio.\n*   **Key Benefits**: PhysicsNeMo enables SciML benchmarking and validation, offers ease of using generalized SciML recipes with heterogeneous datasets, and provides out-of-the-box performance and scalability across multi-GPU and multi-node GPU setups.\n\n## Links\n\n*   **GitHub Repository**: [https://github.com/NVIDIA/physicsnemo](https://github.com/NVIDIA/physicsnemo)\n*   **Official Documentation**: [https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/index.html](https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/index.html)\n*   **Getting Started Guide**: [https://docs.nvidia.com/deeplearning/physicsnemo/getting-started/index.html](https://docs.nvidia.com/deeplearning/physicsnemo/getting-started/index.html)\n*   **Reference Samples**: [https://github.com/NVIDIA/physicsnemo/blob/main/examples/README.md](https://github.com/NVIDIA/physicsnemo/blob/main/examples/README.md)\n*   **Developer Blog**: [https://nvidia.github.io/physicsnemo/blog/](https://nvidia.github.io/physicsnemo/blog/)\n*   **PhysicsNeMo Models on NGC**: [https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=PhysicsNeMo&page=&pageSize=](https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=PhysicsNeMo&page=&pageSize=)\n*   **PhysicsNeMo Forum**: [https://forums.developer.nvidia.com/t/welcome-to-the-physicsnemo-ml-model-framework-forum/178556](https://forums.developer.nvidia.com/t/welcome-to-the-physicsnemo-ml-model-framework-forum/178556)","metrics":{"detailViews":3,"githubClicks":0},"dates":{"published":null,"modified":"2026-06-16T16:28:57.000Z"}}