If you are doing deep learning AI research and/or development with GPUs, big chance you will be using graphics card from NVIDIA to perform the deep learning tasks. A vantage point with GPU computing is related with the fact that the graphics card occupies the PCI / PCIe slot. From the frugality point of view, it may be a brilliant idea to scavenge unused graphics cards from the fading PC world and line them up on another unused desktop motherboard to create a somewhat powerful compute node for AI tasks. Maybe not.
With the increasing popularity of container-based deployment, a system architect may consider creating several containers with each running different AI tasks. This means that that the underlying GPU resources should then be shared among the containers. NVIDIA provides a utility called NVIDIA Docker or nvidia-docker2 that enables the containerization of a GPU-accelerated machine. As the name suggests, the utility targets Docker container type.
This utility, however, cannot be immediately usable for all NVIDIA graphics card models. Only graphics card having GPUs with architecture newer than Fermi can benefit from this feature. In 2023, this means that NVIDIA GPUs with the following architecture support containerization of GPU resources:
- Kepler architecture
- Maxwell architecture
- Pascal architecture
- Volta architecture
- Turing architecture
- Ampere architecture
- Ada Lovelace architecture
CUDA-enabled vs Deep-Learning Ready GPUs
It is important to note that not all CUDA-enabled GPUs can perform deep learning tasks. NVIDIA introduced a terminology called CUDA compute capability that refers to the general specifications and available features of a CUDA-enabled GPU. The GPUs built with Fermi architecture has a maximum compute capability of 2.1, while the Kepler architecture has a minimum compute capability of 3.0.
The deep learning frameworks that rely on CUDA for GPU computing operate by invoking CUDA-specific GPU-accelerated deep learning methods to speed up the computation. These methods are provided in the cuDNN library. The library itself is compatible with CUDA-enabled GPUs with compute capability at least 3.0. It is suffice to say that only GPUs with Kepler architecture or newer are capable of accomplishing the deep learning tasks, or in other words, deep-learning ready.
Desktop GPUs vs Datacenter GPUs
When purchasing a GPU, especially NVDIA GPU, you may need to make sure the intended use of the GPU. Each GPU model has specific environment where it is supposed to be running. Desktop GPUs shall only be installed on PCs. Installing NVIDIA desktop GPUs (i.e. GeForce GPUs) on rack servers in a data center is not permitted and may render the GPU warranty void.
Datacenter GPUs come with higher specs and hence higher pricing point compared to a desktop GPU. It is also natural that datacenter GPUs produce higher performance and less bound to feature constraints. As an example, CUDA forward compatibility and virtual GPUs are only supported in datacenter GPUs.
If you are exploring deep learning and plans to experiment on popular algorithms such as CNN, RNN, or LSTM, desktop GPUs should suffice. Alternatively, if you are working on state-of-the-art computer vision model, transformers like BERT or GPT, or style transfer, datacenter GPU might be a better option especially from performance point of view.
Desktop GPUs for Deep Learning
The table below summarizes the list of NVIDIA desktop GPU models that serve as a better fit for building a deep learning AI system, especially through containerization support of AI tasks. The list is sourced from the Wikipedia entry of NVIDIA GPUs, and NVIDIA product pages and datasheets.
Series | Model Name | Architecture | Chip Name | Bus Interface | Launch Date |
---|---|---|---|---|---|
GeForce 600 | GeForce GT 630 | Kepler | GK107 | PCIe 2.0 x16 | April 24th, 2012 |
Kepler | GK208-301-A1 | PCIe 2.0 x8 | May 29th, 2013 | ||
GeForce GT 635 | Kepler | GK208 | PCIe 3.0 x8 | February 19th, 2013 | |
GeForce GT 640 | Kepler | GK107-301-A2 | PCIe 3.0 x16 | April 24th, 2012 | |
Kepler | GK107 | PCIe 3.0 x16 | June 5th, 2012 | ||
Kepler | GK208-400-A1 | PCIe 2.0 x8 | May 29th, 2013 | ||
GeForce GTX 645 | Kepler | GK106 | PCIe 3.0 x16 | April 22nd, 2013 | |
GeForce GTX 650 | Kepler | GK107-450-A2 | PCIe 3.0 x16 | September 13th, 2012 | |
GeForce GTX 650 Ti | Kepler | GK106-220-A1 | PCIe 3.0 x16 | October 9th, 2012 | |
GeForce GTX 650 Ti Boost | Kepler | GK106-240-A1 | PCIe 3.0 x16 | March 26th, 2013 | |
GeForce GTX 660 | Kepler | GK106-400-A1 | PCIe 3.0 x16 | September 13th, 2012 | |
Kepler | GK104-200-KD-A2 | PCIe 3.0 x16 | August 22nd, 2012 | ||
GeForce GTX 660 Ti | Kepler | GK104-300-KD-A2 | PCIe 3.0 x16 | August 16th, 2012 | |
GeForce GTX 670 | Kepler | GK104-325-A2 | PCIe 3.0 x16 | May 10th, 2012 | |
GeForce GTX 680 | Kepler | GK104-400-A2 | PCIe 3.0 x16 | March 22nd, 2013 | |
GeForce GTX 690 | Kepler | 2× GK104-355-A2 | PCIe 3.0 x16 | April 29th, 2012 | |
GeForce 700 | GeForce GT 710 | Kepler | GK208-301-A1 | PCIe 2.0 x8 | March 27th, 2014 |
Kepler | GK208-203-B1 | PCIe 2.0 x8 | January 26th, 2016 | ||
GeForce GT 720 | Kepler | GK208-201-B1 | PCIe 2.0 x8 | March 27th, 2014 | |
GeForce GT 730 | Kepler | GK208-301-A1 | PCIe 2.0 x8 | June 18th, 2014 | |
Kepler | GK208-400-A1 | PCIe 2.0 x8 | June 18th, 2014 | ||
GeForce GT 740 | Kepler | GK107-425-A2 | PCIe 3.0 x16 | May 29th, 2014 | |
GeForce GTX 745 | Maxwell | GM107-300-A2 | PCIe 3.0 x16 | February 18th, 2014 | |
GeForce GTX 750 | Maxwell | GM107-300-A2 | PCIe 3.0 x16 | February 18th, 2014 | |
GeForce GTX 750 Ti | Maxwell | GM107-400-A2 | PCIe 3.0 x16 | February 18th, 2014 | |
GeForce GTX 760 192-bit | Kepler | GK104-200-KD-A2 | PCIe 3.0 x16 | October 17th, 2013 | |
GeForce GTX 760 | Kepler | GK104-225-A2 | PCIe 3.0 x16 | June 25th, 2013 | |
GeForce GTX 760 Ti | Kepler | GK104 | PCIe 3.0 x16 | September 27th, 2013 | |
GeForce GTX 770 | Kepler | GK104-425-A2 | PCIe 3.0 x16 | May 30th, 2013 | |
GeForce GTX 780 | Kepler | GK110-300-A1 | PCIe 3.0 x16 | May 23rd, 2013 | |
GeForce GTX 780 Ti | Kepler | GK110-425-B1 | PCIe 3.0 x16 | November 7th, 2013 | |
GeForce GTX TITAN | Kepler | GK110-400-A1 | PCIe 3.0 x16 | February 21st, 2013 | |
GeForce GTX TITAN Black | Kepler | GK110-430-B1 | PCIe 3.0 x16 | February 18th, 2014 | |
GeForce GTX TITAN Z | Kepler | 2× GK110 | PCIe 3.0 x16 | March 25th, 2014 | |
GeForce 900 | GeForce GT 945A | Maxwell | GM108 | PCIe 3.0 x8 | March 13th, 2015 |
GeForce GTX 950 | Maxwell | GM206-250 | PCIe 3.0 x16 | August 20th, 2015 | |
GeForce GTX 960 | Maxwell | GM206-300 | PCIe 3.0 x16 | January 22nd, 2015 | |
GeForce GTX 970 | Maxwell | GM204-200 | PCIe 3.0 x16 | September 18th, 2014 | |
GeForce GTX 980 | Maxwell | GM204-400 | PCIe 3.0 x16 | September 18th, 2014 | |
GeForce GTX 980 Ti | Maxwell | GM200-310 | PCIe 3.0 x16 | June 1st, 2015 | |
GeForce GTX TITAN X | Maxwell | GM200-400 | PCIe 3.0 x16 | March 17th, 2015 | |
GeForce 10 | GeForce GT 1030 | Pascal | GP108-300 | PCIe 3.0 x4 | May 17th, 2017 |
GeForce GTX 1050 | Pascal | GP107-300 | PCIe 3.0 x16 | October 25th, 2016 | |
GeForce GTX 1050 Ti | Pascal | GP107-400 | PCIe 3.0 x16 | October 25th, 2016 | |
GeForce GTX 1060 | Pascal | GP106-300 | PCIe 3.0 x16 | August 18th, 2016 | |
GeForce GTX 1070 | Pascal | GP104-200 | PCIe 3.0 x16 | June 10th, 2016 | |
GeForce GTX 1070 Ti | Pascal | GP104-300 | PCIe 3.0 x16 | November 2nd, 2017 | |
GeForce GTX 1080 | Pascal | GP104-400 | PCIe 3.0 x16 | May 27th, 2016 | |
GeForce GTX 1080 Ti | Pascal | GP102-350 | PCIe 3.0 x16 | March 5th, 2017 | |
Nvidia TITAN X | Pascal | GP102-400 | PCIe 3.0 x16 | August 2nd, 2016 | |
Nvidia TITAN Xp | Pascal | GP102-450 | PCIe 3.0 x16 | April 6th, 2017 | |
Volta | Nvidia TITAN V | Volta | GV100-400-A1 | PCIe 3.0 x16 | December 7th, 2017 |
GeForce 16 | GeForce GTX 1660 Ti | Turing | TU102-300A-K1-A1 | PCIe 3.0 x16 | February 22nd, 2019 |
GeForce GTX 1660 Super | Turing | TU104-450-A1 | PCIe 3.0 x16 | October 29th, 2019 | |
GeForce GTX 1660 | Turing | TU104-400A-A1 | PCIe 3.0 x16 | March 14th, 2019 | |
GeForce GTX 1650 Super | Turing | TU104-410-A1 | PCIe 3.0 x16 | November 22nd, 2019 | |
GeForce GTX 1650 | Turing | TU106-400A-A1 | PCIe 3.0 x16 | April 23rd, 2019 | |
GeForce 20 | GeForce RTX 2080 Ti | Turing | TU102-300A-K1-A1 | PCIe 3.0 x16 | September 20th, 2018 |
GeForce RTX 2080 Super | Turing | TU104-450-A1 | PCIe 3.0 x16 | July 23rd, 2019 | |
GeForce RTX 2080 | Turing | TU104-400A-A1 | PCIe 3.0 x16 | September 20th, 2018 | |
GeForce RTX 2070 Super | Turing | TU104-410-A1 | PCIe 3.0 x16 | July 9th, 2019 | |
GeForce RTX 2070 | Turing | TU106-400A-A1 | PCIe 3.0 x16 | October 17th, 2018 | |
GeForce RTX 2060 Super | Turing | TU106-410-A1 | PCIe 3.0 x16 | July 9th, 2019 | |
GeForce RTX 2060 | Turing | TU106-200A-KA-A1 | PCIe 3.0 x16 | January 7th, 2019 | |
GeForce 30 | GeForce RTX 3090 Ti | Ampere | GA102-350-A1 | PCIe 4.0 x16 | March 29th, 2022 |
GeForce RTX 3090 | Ampere | GA102-300-A1 | PCIe 4.0 x16 | September 1st, 2020 | |
GeForce RTX 3080 Ti | Ampere | GA102-225-A1 | PCIe 4.0 x16 | May 31st, 2021 | |
GeFore RTX 3080 | Ampere | GA102-200-KD-A1 | PCIe 4.0 x16 | September 1st, 2020 | |
GeForce RTX 3070 Ti | Ampere | GA104-400-A1 | PCIe 4.0 x16 | May 31st, 2021 | |
GeForce RTX 3070 | Ampere | GA104-300-A1 | PCIe 4.0 x16 | September 1st, 2020 | |
GeForce RTX 3060 Ti | Ampere | GA104-200-A1 | PCIe 4.0 x16 | December 1st, 2020 | |
GeForce 40 | GeForce RTX 4090 | Ada Lovelace | AD102-300 | PCIe 4.0 x16 | October 12th, 2022 |
GeForce RTX 4080 | Ada Lovelace | AD103-300 | PCIe 4.0 x16 | November 16th, 2022 | |
GeForce RTX 4070 Ti | Ada Lovelace | AD104-400 | PCIe 4.0 x16 | January 5th, 2023 | |
GeForce RTX 4070 | Ada Lovelace | AD104-250 | PCIe 4.0 x16 | April 13th, 2023 | |
GeForce RTX 4060 Ti | Ada Lovelace | AD106-350 | PCIe 4.0 x8 | May 24th, 2023 | |
Ada Lovelace | AD106-351 | PCIe 4.0 x8 | July 18th, 2023 | ||
GeForce RTX 4060 | Ada Lovelace | AD107-400 | PCIe 4.0 x8 | June 29th, 2023 |
What about non-desktop GPUs that are also not datacenter GPUs such as those on workstation or laptop? Can we also use them for deep learning? NVIDIA provides the list for all products with CUDA support on this page: https://developer.nvidia.com/cuda-gpus.
GPU and CUDA Version
Each version of CUDA toolkit has a minimum compute capability that it supports. If you are using older GPU, you may be unable to run the latest version of CUDA. After obtaining the compute capability of your chosen NVIDIA GPU, you check against CUDA compatibility in this article.
Pingback: Guide: Installing Cuda Toolkit 9.1 on Ubuntu 16.04 « Amikelive | Technology Blog
Pingback: CUDA Compatibility of NVIDIA Display / GPU Drivers | Amikelive | Technology Blog
Pingback: Guide: Installing Docker Engine Utility for NVIDIA GPU (nvidia-docker2) on Ubuntu 16.04 | Amikelive | Technology Blog
The info about the GeForce GT 945A is false. The release date is february 15th 2016 and It’s clock speed is 1072MHz with its memory speed being 900MHz. You’ve probably confused it with the mobile gpu GeForce 945A, which is something completely different.
It should refer to both GeForce GT 945A and GeForce 945A, the desktop GPU initially released in March 2015. The mobile GPU version (used in laptop) is GeForce 945M. GeForce GT 945A was used in HP Sprout Pro desktop PC (ref: https://support.hp.com/us-en/document/c04982112 ).
No? According to the nvidia gpu list on wikipedia, there were GeForce A series (for example GTX 850A) which were all just mobile gpus. Including the GeForce 945A, which was released in March 2015. But we’re talking about the GT 945A, which according to the gpu list was released in February 2016.