Discrete Device Assignment with Docker
Windows Server 2016 added Discrete Device Assignment (DDA) support for Hyper-V. This functionality should be extended to support Windows Containers and most importantly Docker containers using the --device option to expose the device into a container.
This functionality would bring the convenience of Docker containers and enable the use of GPUs, USB devices and other PCI Express devices inside a Docker container.
Craig Nicholson commented
One specific use case is for GPU acceleration of workloads leveraging silicon to run CUDA applications as well as make use the NVENC/NVDEC silicon for H.264/H.265/VP8/VP9 video codec work. NVIDIA currently supports Docker under Linux for this very purpose.
It would be great to be able to map specific hardware (multiple Tesla cards for example) into Docker containers where they can be seen as regular hardware using "standard" drivers.
Enabling generic support for mapping devices into Docker containers can enable other workloads to be containerized such as VoIP applications making use of specialized ASICs for compression/decompression.
Patrick Lang commented
Can you share more about what scenarios this enables and how you would use it? What kind of portability would you be willing give up by tying it to specific hardware?