Skip to content
Branch: master
Find file History
Michael Carilli
Michael Carilli Clarifying docker launch
Latest commit 39e153a May 1, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Dockerfile Remove deprecated examples and update Docker guidance Apr 30, 2019 Clarifying docker launch Apr 30, 2019

Option 1: Create a new container with Apex

Dockerfile installs the latest Apex on top of an existing image. Run

docker build -t new_image_with_apex .

By default, Dockerfile uses NVIDIA's Pytorch container as the base image, which requires an NVIDIA GPU Cloud (NGC) account. If you don't have an NGC account, you can sign up for free by following the instructions here.

Alternatively, you can supply your own base image via the BASE_IMAGE build-arg. BASE_IMAGE must have Pytorch and Cuda installed. For example, any -devel image for Pytorch 1.0 and later from the official Pytorch Dockerhub may be used:

docker build --build-arg BASE_IMAGE=pytorch/pytorch:nightly-devel-cuda10.0-cudnn7 -t new_image_with_apex .

If you want to rebuild your image, and force the latest Apex to be cloned and installed, make any small change to the SHA variable in Dockerfile.

Warning: Currently, the non--devel images on Pytorch Dockerhub do not contain the Cuda compiler nvcc. Therefore, images whose name does not contain -devel are not eligible candidates for BASE_IMAGE.

Running your Apex container

Like any Cuda-enabled Pytorch container, a container with Apex should be run via nvidia-docker, for example:

docker run --runtime=nvidia -it --rm --ipc=host new_image_with_apex

Option 2: Install Apex in a running container

Instead of building a new container, it is also a viable option to git clone on bare metal, mount the Apex repo into your container at launch by running, for example,

docker run --runtime=nvidia -it --rm --ipc=host -v /bare/metal/apex:/apex/in/container <base image>

then go to /apex/in/container within the running container and

pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" .
You can’t perform that action at this time.