GPU Acclerated computing container for computer vision applications, that are reproducible across environments.
-
NVIDIA TensorRT inference accelerator and CUDA 10
-
PyTorch 1.0
-
PyCUDA 2018.1.1
-
CuPy:latest
-
Tensorflow for GPU v1.13.1 & TensorBoard
-
OpenCV v4.0.1 for GPU
-
Ubuntu 18.04 so you can 'nix your way through the cmd line!
-
cuDNN7.4.1.5 for deeep learning in CNN's
-
Hot Reloading: code updates will automatically update in container from /apps folder.
-
TensorBoard is on localhost:6006 and GPU enabled Jupyter is on localhost:8888.
-
Python 3.6.7
-
Only Pascal and Turing arch are supported
Link to nvidia-docker2 install: Tutorial
You must install nvidia-docker2 and all it's deps first, assuming that is done, run:
sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
sudo systemctl daemon-reload
sudo systemctl restart docker
How to run this container:
docker build -t <container name> .
< note the . after
Run the image, mount the volumes for Jupyter and app folder for your fav IDE, and finally the expose ports 8888
for TF1, and 6006
for TensorBoard.
docker run --rm -it --runtime=nvidia --user $(id -u):$(id -g) --group-add container_user --group-add sudo -v "${PWD}:/apps" -v $(pwd):/tf/notebooks -p 8888:8888 -p 0.0.0.0:6006:6006 <container name>
-
Exec into the container and check if your GPU is registering in the container and CUDA is working:
-
Get the container id:
docker ps
- Exec into container:
docker exec -u root -t -i <container id> /bin/bash
- Check if NVIDIA GPU DRIVERS have container access:
nvidia-smi
- Check if CUDA is working:
nvcc -V
-
Demonstrates the functionality of TensorBoard dashboard
-
Exec into container if you haven't:
docker ps
( gets ).
docker exec -u root -t -i <container id> /bin/bash
- Then run in cmd line:
tensorboard --logdir=/tmp/tensorflow/logs/
- cd over to /tf/notebooks/apps/gpu_benchmarks and run:
python tensorboard.py
- Go to the browser and navigate to:
localhost:6006
-
Demonstrate GPU vs CPU performance:
-
Exec into the container if you haven't, and cd over to /tf/notebooks/apps/gpu_benchmarks and run:
-
CPU Perf:
python benchmark.py cpu 10000
- CPU perf should return something like this:
Shape: (10000, 10000) Device: /cpu:0 Time taken: 0:00:03.934996
- GPU perf:
python benchmark.py gpu 10000
- GPU perf should return something like this:
Shape: (10000, 10000) Device: /gpu:0 Time taken: 0:00:01.032577
AppArmor on Ubuntu has sec issues, so remove docker from it on your local box, (it does not hurt security on your computer):
sudo aa-remove-unknown