Creating my workstation has been a dream for me, if nothing else.
I knew the process involved, yet I somehow never got to it. It might have been time or money. Mostly Money.
But this time I just had to do it. I was just fed up with setting up a server on AWS for any small personal project and fiddling with all the installations. Or I had to work on Google Collab notebooks, which have a lot of limitations on running times and network connections. So, I found out some time to create a Deep Learning Rig with some assistance from NVIDIA folks.
The whole process involved a lot of reading up and watching a lot of Youtube videos from Linus Tech Tips. And as it was the first time I was assembling a computer from scratch, it was sort of special too.
Building the DL rig as per your requirements takes up a lot of research. I researched on individual parts, their performance, reviews, and even the aesthetics.
Now, most of the workstation builds I researched were focussed on gaming, so I thought of putting down a Deep Learning Rig Spec as well.
I will try to put all the components I used along with the reasons why I went with those particular parts as well.
***Also, if you want to see how I set up the Deep Learning libraries after setting up the system to use Ubuntu 18.04, you can view ***this definitive guide for Setting up a Deep Learning Workstation.
The very first answer that comes to my mind is, why not?
I work a lot on deep learning and machine learning applications, and it always has been such a massive headache to churn up a new server and installing all the dependencies every time I start to work on a new project.
Also, it looks great, sits on your desk, is available all the time, and is open to significant customization as per your requirements.
Adding to this the financial aspects of using the GCP or AWS, and I was pretty much sold on the idea of building my rig.
It took me a couple of weeks to come up with the final build.
I knew from the start that I want to have a lot of computing power and also something that would be upgradable in the coming years. Currently, my main priorities were to get a system that could support two NVIDIA RTX Titan cards with NVLink. That would allow me to have 48GB GPU memory at my disposal. Simply awesome.
PS:* The below build might not be the best build, and there may be cheaper alternatives present, but I know for sure that it is the build with the minimal future headache. So I went with it. I also contacted Nvidia to get a lot of suggestions about this particular build and only went forward after they approved of it.
Yes, I went with an Intel processor and not an AMD one. My reason for this (though people may differ with me on this) is because Intel has more compatible and related software like Intel’s MKL, which benefits most of the Python libraries I use.
Another and maybe a more important reason, at least for me, was that it was suggested by the people at NVIDIA to go for i9 if I wanted to have a dual RTX Titan configuration. Again zero headaches in the future.
So why this particular one from the Intel range?
I started with 9820X with its ten cores and 9980XE with 18 cores, but the latter stretched my budget a lot. I found that i9–9920X, with its 12 cores and 3.5 GHz processor, fit my budget just fine, and as it is always better to go for the mid-range solution, I went with it.
Now a CPU is the component that decides a lot of other components you are going to end up using.
For example, if you choose an i9 9900X range of CPU, you will have to select an X299 motherboard, or if you are going to use an AMD Threadripper CPU, you will need an X399 Motherboard. So be mindful of choosing the right CPU and motherboard.
This was a particularly difficult choice. There are just too many options here. I wanted a Motherboard that could support at least 96GB RAM (again as per the specifications by the NVIDIA Folks for supporting 2 Titans). That meant that I had to have at least six slots if I were to use 16GB RAM Modules as 16x6=96. I got 8 in this one, so it is expandable till 128 GB RAM.
I also wanted to be able to have 2 TB NVMe SSD in my system(in the future), and that meant I needed 2 M.2 ports, which this board has. Or else I would have to go for a much expensive 2TB Single NVMe SSD.
I looked into a lot of options, and based on the ATX Form factor, 4 PCI-E x16 slots, and the reasonable pricing of the board, I ended up choosing this one.
Liquid cooling is in rage right now. And initially, I also wanted to go for an AIO cooler, i.e., liquid cooling.
But after talking to a couple of people at NVIDIA as well as scrouging through the internet forums on the pro and cons of both options, I realized that Air cooling is better suited to my needs. So I went for the Noctua NH-D15, which is one of the best Air coolers in the market. So, I went with the best air cooling instead of a mediocre water cooling. And this cooler is SILENT. More on this later.
The next thing to think was a case that is going to be big enough to handle all these components and also be able to provide the required cooling. It was where I spent most of my time while researching.
I mean, we are going to keep 2 Titan RTX, 9920x CPU, 128 GB RAM. It’s going to be a hellish lot of heat in there.
Add to that the space requirements for the Noctua air cooler and the capability to add a lot of fans, and I was left with two options based on my poor aesthetic sense as well as the availability in my country. The options were — Corsair Air 540 ATX and the Phanteks Enthoo Pro Tempered Glass PH-ES614PTG_SWT.
Both of them are exceptional cases, but I went through with the Enthoo Pro as it is a more recently launched case and has a bigger form factor(Full Tower) offers options for more customizable build in the future too.
These 2 Titan RTX are by far the most important and expensive part of the whole build. These alone take up 80% of the cost, but aren’t they awesome?
I wanted to have a high-performance GPU in my build, and the good folks at NVIDIA were generous enough to send me two of these to test out.
I just love them. The design. The way they look in the build and the fact that they can be combined using a 3 Slot NVLink to provide 48 GB of GPU RAM effectively. Just awesome. If money is an issue, 2 x RTX 2080 Ti would also work fine as well. Only a problem will be that you might need smaller batch sizes training on RTX 2080 Ti, and in some cases, you might not be able to train large models as RTX2080Ti has 11GB RAM only. Also, you won’t be able to use NVLink, which combines the VRAM of multiple GPUs in Titans.
What about storage? NVMe SSD, of course, and the Samsung Evo Plus is the unanimous and most popular winner in this SSD race.
I bought 1 of them till now, but as I have 2 M.2 ports in my motherboard, I will get total storage of 2TB SSD in the future.
You can also get a couple of 2.5” SSD for more storage space.
I wanted to have a minimum of 96GB RAM, as suggested by the NVIDIA team. So I said what the heck and went with the full 128 GB RAM without cheaping out.
As you can see, these RAM sticks are not RGB lit, and that is a conscious decision as the Noctua Air Cooler doesn’t provide a lot of clearance for RAM Slots and the RGB ones had a slightly higher height. So keep that in mind. Also, I was never trying to go for an RGB Build anyway as I want to focus on those lit up Titans in my build.
A 1200W power supply is a pretty big one, but that is needed realizing that the estimated wattage of our components at full wattage is going to be ~965W.
I had a couple of options for the power supply from other manufacturers also but went with this one because of Corsair’s name. I would have gone with HX1200i, but it was not available, and AX1200i was much more expensive than this one at my location. But both of them are excellent options apart from this one.
The Phanteks case comes up with three fans, but I was recommended to upgrade the intake, and exhaust fans of the case to BeQuiet BL071 PWM Fans as Dual Titans can put out a lot of heat. I have noticed that the temperature of my room is almost 2–3 degrees higher than the outside temperature, as I generally keep the machine on.
To get the best possible airflow, I bought 5 of these. I have put two at the top of the case along with a Phanteks case fan, 2 of them in the front, and one fan at the back of the case.
The Essentials — A cup of tea and those speakers
This section is not necessary but wanted to put it in for completion.
Given all the power we have got, I didn’t want to cheap out on the peripherals. So I got myself an LG 27UK650 4k monitor for content creation, BenQ EX2780Q 1440p 144hz Gaming Monitor for a little bit of gaming, a Mechanical Cherry MX Red Corsair K68 Keyboard and a Corsair M65 Pro Mouse.
And my build is complete.
I will put the price as per the PCPartPicker site as I have gotten my components from different countries and sources. You can also check the part list at the PCPartPicker site: https://pcpartpicker.com/list/zLVjZf
As you can see, this is pretty expensive by any means (even after getting the GPUs from NVIDIA), but that is the price you pay for certain afflictions, I guess.
In this post, I talked about all the parts you are going to need to assemble your deep learning rig and my reasons for getting these in particular.
You might try to look out for better components or a different design, but this one has been working pretty well for me for quite some time now, and is it fast.
If you want to see how I set up the Deep Learning libraries after setting up the system with these components, you can view this definitive guide for Setting up a Deep Learning Workstation with Ubuntu 18.04
Let me know what you think in the comments.comments powered by Disqus