Introduction
Years ago, before I started to use Docker, I didn't really care about GPUs. When I was about 12, all I heard, that a good graphics card was required to play some games on a Windows PC. That didn't change much during the years since I wasn't really among people talking about graphics cards and later GPUs for a long time. Now, in the age of containers, Docker and machine learning, everyone is talking about GPUs.
I have done some research to discover the important steps of the evolution of GPUs, but I did it with containers in mind, so I could learn also about important steps of the development of Docker and containers in general in the context of GPUs. That's why I share more GPU-related events until 2017 below, and then speed up, focusing on containers.
It is important to note that many of the events I share, I read in other articles on the internet, but I tried to get multiple sources for confirmation. You will find the links in this post to all of my sources. This one could not have been made without the authors of the sources, so a big thanks to them and please, follow the links if you want to learn more.
Table of contents
- The very beginning
- Main contributors to the early history of GPUs
- GPU not just for graphics
- Containers and GPUs
- Introducing GPU support in WSL and Docker Desktop
- Supporting AI workloads and using AU at Docker, Inc
- Conclusion
- Sources
The very beginning
It is not an accident that I didn't hear about using GPUs when I was 12, and not just because I was a kid. The term "GPU" did not exist at the beginning, when we could only talk about graphics cards. So, if we really wanted to go back to the very beginning, we could start with the first attempts at visualization, and talk about the "Manchester Baby", which, according to Britannica, could display images with a cathode-ray tube in 1948. The same article also mentions "Whirlwind computer" as "the first computer to display video". Of course, it was not the video that you could watch today.
- According to AceCloud, the history of GPUs started in the 1970s, mentioning even 1968 when "computer graphics were just in their infancy".
- In the beginning, graphics cards were indeed for computer graphics but in a very simple way compared to what we have today. Later, people realized that these devices could be used for other purposes when parallel processing is required.
Main contributors to the early history of GPUs
There are some companies I probably don't have to introduce to anyone, as they are all well-known like ATI, AMD's NVIDIA, and Sony, but I personally never heard about 3DLabs before.
- ATI Technologies was founded in 1985
- even before NVIDIA was founded in 1993
- The term "GPU" was coined by Sony in 1994
- A company, called 3DLabs was founded in 1994, and according to Britannica, they had a "3-D add-in card" as the "first modern GPU" from 1995, which I have never heard about before, and I couldn't figure out which card exactly the author referred to, as I couldn't find the quoted term anywhere else on Google. However, 3DLabs is mentioned by other websites as once a "leading company in the field".
- Intel's first dedicated GPU was made in 1998.
- You can read that GeForce 256 was marketed by NVIDIA as the "world's first GPU" in 1999.
- In 2006, ATI Technologies was acquired by AMD
It is interesting how many products were considered basically the beginning of GPUs by different people. I think it just means that the birth of today's GPUs didn't happen suddenly in the morning, but it was a long process with many important steps. Let's continue with more.
GPU not just for graphics
- In 2009, a paper was written "discussing the technology's promise in machine learning applications". The link to the paper in the linked article doesn't work anymore, but I think I found it from two sources, although both are from the Stanford University uploaded by the authors:
- So it seems that things started to change and more and more people and companies started to use GPUs for machine learning.
- Still, in 2009, a paper was published with the title "NVIDIA's Fermi: The First Complete
GPU Computing Architecture". - In 2010, NVIDIA released the Fermi Architecture as a successor to the Tesla Architecture.
- In 2012, AlexNet wins and even "dominates" the ImageNet challenge using CUDA, which was a significant step in Deep Learning.
- In 2017, NVIDIA released the Volta architecture that introduced Tensor cores to "speed up the training of neural networks"
Containers and GPUs
GPUs might be very important tools in parallel processing and machine learning, but containers are also everywhere in development and also in production, so naturally, we have to be able to use GPUs in containers.
- The first version of LXC (Linux Containers) was released in 2008
- Docker's first version was released in 2013.
- If my interpretation of the sources is correct, NVIDIA started to support GPUs in containers in 2016. There was a proof of concept release of NVIDIA Docker.
- The latest patch of "nvidia-docker" v1 was released in March 2017. This was the last package that actually contained the source code, and it supported Docker 17.03.
- The first commit of libnvidia-container was made in April 2017.
Interestingly, to confuse us, the source code was pushed to the "nvidia-container-runtime" repository and the "libnvidia-container" repository as well, and I assume the original source was actually the "nvidia-container-runtime" repository. This assumption is based on the following:
- The title of the readme of v1.0.0 was "libnvidia-container"
- All the v1 tags (v1.0.0 - v1.0.3) in the "nvidia-container-runtime" repository were created when the commits were created. According to GitHub, v1.0.0 in "nvidia-container-runtime" was tagged in September 2018
- Only one day later was the same commit in the "libnvidia-container" repository tagged as v1.0.0
- The rest of the v1 tags in "nvidia-container-runtime" were created even with a bigger delay in "libnvidia-container".
- I also found a Hungarian name as the author of the commit of the "gpus" option in the Docker CLI. To me, as a Hungarian, it was probably more interesting than to others.
- After v1, "nvidia-docker" eventually became the name of a collection of packages including "nvidia-container-runtime" and the "libnvidia-container".
- Initially, the runtime was a patched version of "runc", which is the default container runtime in Docker today. Despite some sources that indicate "nvidia-docker" was a fork of "runc", it was not.
- The latest release of NVIDIA Docker came out on August 30 in 2023, and it was superseded by NVIDIA Container Toolkit.
Introducing GPU support in WSL and Docker Desktop
Although GPU support existed on Linux and in containers before, Docker Desktop runs the Docker daemon and the containers in a virtual machine even on Linux, as I mentioned in a previous blog post. That means the GPU has to be available inside the virtual machine, even when you are using that GPU on the physical host.
On June 17, 2020, Microsoft announced GPU compute support for WSL2, which was also mentioned on the NVIDIA tech blog.
On December 21, 2020, Docker announced the "general preview of Docker Desktop support for GPU with Docker in WSL2". That basically meant that since WSL2 already supported NVIDIA GPUs, and the NVIDIA container runtime existed, it could be automatically configured in Docker Desktop when using WSL2 as a backend.
Supporting AI workloads and using AI at Docker, Inc
- "Docker, Inc" didn't just continue to support workloads using GPUs, which often meant some AI-related processes, but released their "Docker Docs AI" and wrote a blog post about it pn May 22, 2024. That was the first step towards a Docker AI assistant, but it was for helping with Docker-related questions based on the documentation.
- On the official Docker Forums, I could announce the Beta "Ask Gordon" on January 2, 2025. It was an AI integrated into Docker Desktop.
- Docker Desktop is a tool to support container-based development, which currently also includes working with AI models, so on April 9, 2025, the Docker Model Runner was announced.
- Not long after the announcement of the Model Runner, the MCP Catalog and Toolkit were announced as well on May 5, 2025.
Conclusion
So this is where we are now, and I'm sure I could have mentioned many other details, but my goal was to give you an overview, before I jump to other GPU- or AI-related posts. At least that's the goal.
Until then, you can check the Excel sheet in which I collected some GPU- and container-related events in chronological order:
https://1drv.ms/x/c/9d670019d6697cb6/EbZ8adYZAGcggJ2RjAAAAAABhaNs-vt8Yj4QIeqzhs4Rxg
If you are looking for links, you can move the mouse pointer over the top right corner of the cells where you see a little red arrow (at least this is how it works at the time of writing this post).
In the next section, you can see the links of websites that I also linked in this article above except those that I didn't link as a source, but only a reference to a product or one of my previous posts.
If you find incorrect information, please let me know in the comments. You can also share your opinion or add an important event that you would have mentioned.
Sources
- Wikipedia
- https://en.wikipedia.org/wiki/Manchester_Baby
- https://en.wikipedia.org/wiki/Whirlwind_I
- https://en.wikipedia.org/wiki/ATI_Technologies
- https://en.wikipedia.org/wiki/Nvidia
- https://en.wikipedia.org/wiki/Graphics_processing_unit
- https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units#First_generation
- https://en.wikipedia.org/wiki/GeForce_256
- https://en.wikipedia.org/wiki/Fermi_(microarchitecture)
- https://en.wikipedia.org/wiki/ImageNet
- https://en.wikipedia.org/wiki/Volta_(microarchitecture)
- https://en.wikipedia.org/wiki/Docker_(software)#History
- GitHub repositories
- lxc
- NVIDIA
- https://github.com/NVIDIA/nvidia-docker/releases/tag/v0.0.0-poc
- https://github.com/NVIDIA/nvidia-docker/tree/v1.0.1
- https://github.com/NVIDIA/libnvidia-container/commit/e1a4a1101578726c76f7b1d8092bf2dd3b4a2cc4
- https://github.com/NVIDIA/nvidia-container-runtime/tree/v1.0.0
- https://github.com/NVIDIA/nvidia-container-runtime/releases/tag/v1.0.0
- https://github.com/NVIDIA/libnvidia-container/releases/tag/v1.0.0
- https://github.com/NVIDIA/nvidia-docker/issues/1268
- https://github.com/NVIDIA/nvidia-container-runtime
- https://github.com/NVIDIA/libnvidia-container
- https://github.com/NVIDIA/nvidia-container-toolkit
- Docker
- Docker
- Blog
- Forum
- NVIDIA
- Standford
- Microsoft
- AceCloud
- Britannica
- Vintage3d
- Medium
Top comments (0)