https://drive.google.com/file/d/0B7vZqCY-AJrpMEYyVmZkVGlyOEE...
https://docs.google.com/presentation/d/1q6brajoQkFZVtSocMPGg...
We hit an issue with user namespaces, and it not correctly chowning things when "exporting" them into Docker containers. I honestly forget how we solved this, but I believe it was just an upgrade.
We hit an issue with the first run of a Docker container on a system being extremely slow, to the point where downstream systems would give up, and retry. The issue was fixed by starting a container that leverages the driver at boot time, "warming" it up.
https://github.com/NVIDIA/nvidia-persistenced
Docs here http://docs.nvidia.com/deploy/driver-persistence/index.html
I've observed the same thing but it seemed to be IO related, not CPU or GPU related.
https://github.com/umautobots/driving-in-the-matrix
docker has been great for this in the lab: only one person now goes through the pain to get latest framework + hack + model tweak work and then the rest can reuse.
If I'm building an ML cluster, I'm going to go with the vendor that's easiest to containerize and deploy, and right now it looks like nvidia has a commanding advantage in software.
Why doesn't AMD throw a few hundred thousand dollars at some developers to get containerization parity?
https://stackoverflow.com/questions/25185405/using-gpu-from-...
In a nutshell, you can give the container access to the NVIDIA device file via the `--device` flag, so all you need is a container with the NVIDIA drivers. The added benefit of this is that you can use different versions of the drivers side-by-side (in my understanding).
I thought this might be relevant as some people might not want to use the `docker-nvidia` CLI to run containers (I'm not sure how you would use this via the Docker API for example).
> The added benefit of this is that you can use different versions of the drivers side-by-side (in my understanding).
No, you can only have one driver version, the one that correspond to the loaded kernel modules. Installing the driver inside a Docker image makes it non-portable.
Tensorflow is apache licensed. I think in general, the perception is that it is far safer to stay away from caffe.
Floydhub also curates most frameworks as nvidia-docker images: https://hub.docker.com/r/floydhub/
There's another unexpected bonus to nvidia-docker; CNTK leaks memory if you abort training prematurely, causing the GPU to go OOM. But since the memory is owned by the nvidia-docker process, killing-and-restarting the container fixes the issue without having to restart the entire system.
They actually created this service using that (a Deep Learning "as a service"): https://www.floydhub.com/
[1]: https://hub.docker.com/r/floydhub/ [2]: https://github.com/floydhub/dockerfiles
Check out VirtuaGL and TurboVNC. It is possible to run these two things inside a docker container, install a DE and accelerate a GUI app. I've been doing it for quite a while.
Also for all those checking the OPs original lib out. It does work and it is great and also probably the most mature option, but my understanding is that future focus for GPU inside containers is with this newer lib, also looked after by Nvidia:
https://github.com/NVIDIA/libnvidia-container
I'm fairly familiar with this stuff, though not an expert, for my startup http://realityzero.one. But, I've not been paying that much attention to this area of late, so if I've got this wrong then please feel free to correct me. Perhaps they're for different things. I know there's been some discussion from the k8n crowd about the newer lib in k8n's github issues.