Installation

System Requirements

  • Operating System

    • Ubuntu 20.04 or Linux 5.13 kernel

  • Driver and GPU Requirements

    • Bare Metal version: NVIDIA driver 465.19 required only if SDF library is used

    • Docker container: NVIDIA driver release 510 or later must be used. If using a Data Center GPU (for example, T4 or any other Tesla board), you may use NVIDIA driver release 418.40 (or later R418), 440.33 (or later R440), 450.51 (or later R450), 460.24 (or later R460) or 470.57 (or later R470). However, any drivers older than 465 will not support the SDF library. For additional support details, see Pytorch NVIDIA Container, Deep Learning Frameworks Support Matrix

  • Required installations for Bare Metal version

    • Python 3.8

    • Torch 1.11

  • 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 e-mail 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 18.04 are also provided. Modulus requires CUDA to be installed. For compatibility with Torch 1.11, use CUDA 10.2 or later. Modulus requires Python 3.6 or later.

Other dependencies can be installed using:

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

Warning

Currently, Modulus has only been tested for numpy-stl 2.11.2, sympy 1.5.1, symengine 0.6.1 and pyevtk 1.1.2 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. Modulus can be installed from the Modulus source tar ball using:

tar -xvzf ./Modulus_source.tar.gz
cd ./Modulus/
python setup.py install

To run examples using the STL point cloud generation you will need to put libsdf.so in your library path and install the accompanying PySDF library. This can be done using:

export LD_LIBRARY_PATH=$(pwd)/external/lib/:${LD_LIBRARY_PATH}
cd ./external/eggs
python -m easy_install pysdf-0.1-py3.8-linux-x86_64.egg

Using the Modulus examples

All examples can be found in the Modulus examples tarball. To verify the installation has been done correctly, run these commands:

tar -xvzf ./Modulus_examples.tar.gz
cd examples/helmholtz/
python helmholtz.py

If you see outputs/ directory created after the execution of the command (~5 min), the installation is successful.

To verify the installation of SDF library and the STL geometry support, you run these commands:

cd examples/aneurysm/
python aneurysm.py