This article provides basic information on getting started with running a Podman container on one or more GPUs of a NAS Grace Hopper (gh200) or Milan A100 (mil_a100) node.
Note: Running Podman containers across nodes is not allowed per NAS security policy.
For demonstration, the image nvcr.io/nvidia/cuda:12.9.1-devel-ubuntu22.04 is used in this article.
Before You Begin: Before pulling a Docker/Podman image from a remote repository, for example, the NVIDIA GPU Cloud (NGC) containers, read its online documentation (if available) to make sure that its CPU host architecture, GPU types supported (for example, H100, A100, and so on), and CUDA version are compatible with the GPU compute node you intend to run the container on.
Pulling an Image with the Correct Architecture
The container image you are interested in using might be built for one or both of these CPU host architectures:
CPU host architecture on the gh200 nodes: arm64
CPU host architecture on the mil_a100 nodes: x86_64 or amd64
Before pulling a container image, check the manifest list of the container. In this example, the output of the following command line will show that both arm64 and amd64 host architectures are supported:
For the gh200 nodes running with Red Hat 9.x and Podman 5.x, add to the podman run command:
--gpus=all
For the mil_a100 nodes running with Red Hat 8.x and Podman 4.9x, add:
--device nvidia.com/gpu=all
or
--device=nvidia.com/gpu=all
Note: A mil_a100 node has a total of four GPUs. If you don't need all four GPUs, you can specify which one to use via a relative GPU ID or the GPU's universally unique identifier (UUID). For example, to add GPU 1 and GPU 3 (as seen on the host) to the container, use: