It is about time that I build myself a PC that I can use for tasks around the topic of deep learning. I have been working on the topic of deep learning, i.e. the training of neural networks based on large amounts of data, since about the end of 2017. So I had always used my ThinkPad laptop with i5 CPU and 12GB Ram for this purpose. The training of neural networks on this old laptop, even if it is only a hobby of mine, takes a very long time on such a weak CPU and sometimes even several days. So it takes about 28 hours to train a small neural network with 120,000 records. In comparison, on an RTX 8000 from NVIDIA, which I could use at my employer, the training of the same network had also taken about 12 minutes with the 120,000 data sets. It should be noted, however, that the RTX 8000 was only utilized to about 15% to 20%, since the programming of the training pipeline had not provided for parallelization and thus the AMD Thread Ripper CPU of the system became the bottleneck. Because of the bad Python programming the CPU could not transfer the data fast enough to the graphics card.
So the desire for an own computer with GPU for my private projects manifested itself. In spring 2021 I had published my e-book about the Donkey Car project and the simulator. This e-book deals with the Donkey Car framework. This allows to train a neural network that can independently steer a car around the race track in a racing simulator. But the book also explains how to build a real physical self-driving donkey car based on a 1:10 RC model. So I always missed a powerful GPU and could not build up knowledge how to speed up the Donkey Car framework resp. this project with a GPU.
The e-book is available for free in German and English on my blog Custom-Build-Robots for all interested to download: Donkey Car – E-Book
So now I decided to build my own computer for Deep Learning use cases. Therefore, this series of posts will explain step by step how I went about building the computer and what my experiences were.
Before we start buying the components, there are a few questions to be answered about what to look for when choosing the components, what I want to do with the system and how to use it.
Determine the type of use of the computer
First of all, you have to be clear about how you want to use the computer. There are certainly some and also very individual aspects that affect the use of such a computer and about which you have to think. I would like to go into two aspects that were important for me as a private person and that I wanted to consider. These are the place where the computer is operated and the way it is used. Therefore I go into these two points in the following.
Where the computer will be used most of the time?
The location of the computer was one of the most important points for me. This determines how loud the entire system can be. For me, the computer should be in the office of my apartment most of the time and also be in operation there. I had the opportunity to use a system at home in my office for a while that had two NVIDIA RTX 8000 graphics cards installed as well as one of the most powerful AMD Thread Ripper CPUs. Since this computer had been built with standard data center components, the computer could not be used in an office due to its loudness from the 7+ fans in the case as well as the two redundant 2,000 watt power supplies. The living room is three doors away on the same floor and even there the computer was still audible when it was working under load. When idle, it was still so loud that it wasn’t suitable for use in an office. Of course, the waste heat that such a system generates when the office is not actively air-conditioned, like mine, should also be considered. The heat was hardly bearable despite minus temperatures outside and switched off heating with open windows. Therefore, in the end, this computer could only be used remotely as a powerful computing unit, e.g. in a dry, cool basement with a Gigabit connection or in a data center where there are no people. The power consumption of this system during 24 hours operation under high load was about 12 KW/h.
With this valuable experience, I started looking for the right hardware for my needs. Which is once quiet, powerful and not too expensive.
But now to the essential point that has a lot of influence on the hardware to be selected. How will the system be used? I’ll go into this in more detail in the following section.
How to use the computer?
A use with a monitor in an office requires a quiet system with e.g. water cooling of all components if possible. Then the CPU and the GPU should be water cooled if the budget allows it. If not, then the question is how often the GPUs run under full load and whether in the private sector, for example, calculations can be triggered overnight. Then it could be sufficient to cool only the CPU with a closed cooling system. This is because a water-cooled graphics card costs significantly more from the conversion than an air-cooled version costs ex-factory.
Also, as mentioned in the previous section, you should consider the waste heat of such a system designed for machine learning. Especially in the summer in your own office without air conditioning, this can cause problems for you personally and also for the computer. A permanent heat of about 400 watts heats up an 11 m² office very much in the course of a day.
Of course, such a computer, whose construction I describe here step by step, can not only be used for Deep Learning projects. It can be used for various tasks such as video editing and coding or, given the hardware used, simply as an office computer, although it would be far too expensive for that. But if you also like to play a game like a flight simulator, such a system with its performance is certainly well suited for this.
If the computer is used for office and research work, as I do, and the graphics card is only used under full load from time to time, then it is sufficient if the CPU is water-cooled and the graphics card is not. This way, the system is very quiet most of the time and can be placed under the desk without spending a lot of money on the water-cooled graphics card. If the GPU has to calculate computationally intensive tasks then the graphics card’s fan will certainly be very loud. However, these calculations can be done in the office during off-peak hours or at night when it is cooler with the windows open.
Why not a laptop?
I looked at various laptops that have the corresponding GPUs installed and are therefore also suitable for training neural networks. Once these laptops were too heavy for me, the installed GPUs often mobile versions with less performance and I had no confidence in the cooling of such a system. My concern here was that such a laptop would generally be noisy. Often I have also read that the small fans in such laptops make a very high-frequency noise and if the components in the laptop are not sufficiently cooled, the lifetime of these components in the laptop is reduced quite quickly by up to 40%.
Therefore, I have taken the path of building a large desktop computer that I can design much more flexible. Large was then also the case so that I could accommodate there the water cooling and fans well. More about this in an extra report about the case.
Conclusion to the use
Personally, I have decided to build a deep learning office system that offers me a lot of performance and does not require a lot of noise when there are not computationally intensive tasks on the GPU. If possible, I will postpone these calculations to the night and so the noise of the graphics card’s fan is not particularly disturbing. With this type of usage I envision, a soundproofed case will also be used and water cooling for the CPU. More about the hardware and in particular the graphics card that I plan to install then in this report: Deep-Learning PC selber bauen – Auswahl der Grafikkarte
Article Overview - How to Build a PC for Deep Learning Tasks
The following articles describe the construction of a PC system for Deep Learning tasks..Build a Deep-Learning PC yourself - a step by step guide
Build a Deep-Learning PC yourself – Selection of graphics card
Build a Deep-Learning PC yourself - Selection of the operating system