|
## 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](https://docs.nvidia.com/ngc/ngc-getting-started-guide/index.html#generating-api-key). |
|
|
|
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](https://hub.docker.com/r/pytorch/pytorch) may be used: |
|
``` |
|
docker build --build-arg BASE_IMAGE=1.3-cuda10.1-cudnn7-devel -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](https://github.com/NVIDIA/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 https://github.com/NVIDIA/apex.git` 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" . |
|
``` |
|
|