How to build inexpensive server for machine learning?
Ready-made ML servers are very expensive and additionally for home use very loud. We can use commercial clouds for ML calculations. This solution also has some disadvantages, we do not have full control over the system, we have to adapt to specific cloud provider solutions, costs.
Below I will show you how to build a very cheap server that costs around 2000 PLN ($500). The only more serious problem will be building a cooling system for Tesla cards.
We need parts:
One or more CUDA accelerators - these can be classic graphics cards that support CUDA or dedicated devices for CUDA accelerate.
In my opinion best performance/price ratio is for GPU Tesla from second hand.
Motherboard - with the appropriate number of PCIe x16 slots and integrated graphics.
We will use integrated graphics that we connect to the monitor. CUDA accelerator we will use only for ML calculation.
CPU supporting AVX (Advanced Vector Extensions instructions) - this is a requirement of the TensorFlow 2 library.
More information about AVX and suported CPU's is available here.
Powerful power supply with enough power and PCIe connectors to installed CUDA cards and motherboard. For example the power demand of one Tesla K20X is 240W. Two K20X and motherboard need about 750W.
RAM - minimum 4GB per CUDA device. I didn't notice problems with low memory on my server.
SSD - In my opinion, this is not critical element. We need SSD for fast loading ML data to GPU.
Computer case, DVD, etc.
Tesla K20X
My server specyfication:
2 x NVIDIA Tesla K20X 6GB
Motherboard ASUS Z87-A with 3x PCIe x16 connectors
CPU Intel i5-4570s
Power supply Corsair TX 750W
RAM 8GB
SSD GOODRAM CX100 240GB
Case, DVD (for install OS), Small monitor and keyboard (for configure BIOS/UEFI and install OS)
Corsair TX 750W
We must assemble server in sequence according to the steps:
Assemble the server without installing accelerators
Turn on and enter BIOS/UEFI and set integrated graphics card as default.
It's important because when we install Tesla devices, motherboard use Tesla devices as grapic card and we will not be able to connect the monitor (Tesla chips don't have video outputs)
Set integrated graphics card as default
Install CUDA cards and cooling system if devices don't have active cooling.
Few examples how to do: