Installation

System Requirements

  • Operating System

    • Ubuntu 20.04 or Linux 5.13 kernel

  • Driver and GPU Requirements

    • Bare Metal version: NVIDIA driver that is compatible with local PyTorch installation.

    • Docker container: Modulus container is based on CUDA 11.7, which requires NVIDIA Driver release 515 or later. However, if you are running on a data center GPU (for example, T4 or any other data center GPU), you can use NVIDIA driver release 450.51 (or later R450), 470.57 (or later R470), or 510.47 (or later R510). However, any drivers older than 465 will not support the SDF library. For additional support details, see PyTorch NVIDIA Container.

  • Required installations for Bare Metal version

    • Python 3.8

    • PyTorch 1.12

  • Recommended Hardware

    • 64-bit x86

    • NVIDIA GPUs:

      • NVIDIA Ampere GPUs - A100, A30, A4000

      • Volta GPUs - V100

      • Turing GPUs - T1

    • Other Supported GPUs:

      • NVIDIA Ampere GPUs - RTX 30xx

      • Volta GPUs - Titan V, Quadro GV100

    • For others, please email us at : modulus-team@exchange.nvidia.com

All studies in the User Guide are done using V100 on DGX-1. A100 has also been tested.

Note

To get the benefits of all the performance improvements (e.g. AMP, multi-GPU scaling, etc.), use the NVIDIA container for Modulus. This container comes with all the prerequisites and dependencies and allows you to get started efficiently with Modulus.

Modulus Bare Metal Install

While NVIDIA recommends using the docker image provided to run Modulus, installation instructions for Ubuntu 20.04 are also provided. Currently the bare metal installation does not support the tesselated geometry module in Modulus. If this is required please use the docker image provided. Modulus requires CUDA to be installed. For compatibility with PyTorch 1.12, use CUDA 11.6 or later. Modulus requires Python 3.8 or later.

Other dependencies can be installed using:

pip3 install matplotlib transforms3d future typing numpy quadpy\
             numpy-stl==2.16.3 h5py sympy==1.5.1 termcolor psutil\
             symengine==0.6.1 numba Cython chaospy torch_optimizer\
             vtk chaospy termcolor omegaconf hydra-core==1.1.1 einops\
             timm tensorboard pandas orthopy ndim functorch pint

Warning

Depending on the version of PyTorch, you would need a specific version of functorch. The best recommended way is to use latest version for both PyTorch and functorch.

Warning

Currently, Modulus has only been tested for numpy-stl 2.16.3, sympy 1.5.1, symengine 0.6.1 and hydra-core 1.1.1 versions. Using other versions for these packages might give errors. Add packages for quadpy, orthopy, ndim and gdown if you intend to use the quadrature functionality of Modulus Interface Problem by Variational Method or wish to download the example data for the Neural Operator training.

Once all dependencies are installed, the Modulus source code can be downloaded from Modulus GitLab repository. Modulus can be installed from the Modulus repository using:

git clone git@gitlab.com:nvidia/modulus/modulus.git
cd ./Modulus/
python setup.py install

Using the Modulus examples

Note

All examples can be found in the Modulus GitLab repository. To get access to the GitLab repo, visit the NVIDIA Modulus Downloads page and sign up for the Modulus GitLab Repository Access .

You can clone the examples repository using:

git clone git@gitlab.com:nvidia/modulus/examples.git

Warning

The examples repository contains several validation data files that are stored as LFS objects. You will need to have Git LFS installed for the all the examples to work correctly. More information about Git LFS can be found here .

To verify the installation has been done correctly, run these commands:

cd examples/helmholtz/
python helmholtz.py

If you see outputs/ directory created after the execution of the command (~5 min), the installation is successful. For some of the examples, we have trained checkpoints for reference contained here, https://gitlab.com/nvidia/modulus/checkpoints.git . We will continue to add checkpoints for more examples in the future.

Modulus on Public Cloud instances

Modulus can be used on public cloud instances like AWS and GCP. To install and run Modulus,

  1. Get your GPU instance on AWS or GCP. (Please see System Requirements for recommended hardware platform)

  2. Use the NVIDIA GPU-Optimized VMI on the cloud instance. For detailed instructions on setting up VMI refer NGC Certified Public Clouds.

  3. Once the instance spins up, follow the Modulus with Docker Image (Recommended) to load the Modulus Docker container and the examples.