tl;dr "If you build software, build your own PC, it will make you happ(y|ier)"
Introduction
I’ve been developing software since the 80’s and have owned lots of different factory made machines from ZX Spectrums, Dells, Lenovo’s, to my current Macbook Pro.I decided to build my own system for the following reasons:
- I develop in Linux/Windows/Mac OSX, and don’t want to waste time rebooting
- I need a GPU for fast Machine Learning
- Speed
- Curiosity
- Silence
What you will need
To replicate the system that I built, you will need the hardware and software listed below, a free afternoon and an extra pair of hands for help. Fitting all the hardware together turned out to be a really easy process, comparisons to putting Lego together are fully justified.Before and after Pictures
The before picture shows all the components you will need still in their boxes, the after picture below shows my Ubuntu system running Mac OSX and Windows 10 in parallel in virtual machines.
The Hardware
During the course of my research on building a PC, I read lots of stories of people buying hardware that didn't work together. I found the logicalincrements.com website invaluable for finding compatible hardware.The following 8 pieces of hardware are compatible and work well for me:
- Case
- Motherboard
- Processor
- CPU Cooler
- Disk
- Power Supply Unit
- GPU
- 2 x UHD monitors
The Software
I used Ubuntu 16.04 as my base system, I run virtual machines for Mac OSX and Windows through VMWare Workstation Pro.You will need:
- Ubuntu 16.04 (in development at time of writing)
- VMWare Workstation Pro
- A Windows license and ISO
- A Mac OSX license and ISO
- Mac unlocker from insanelymac
Machine Learning Benchmarks
In order to test if machine learning works faster with GPUs as advertised, I used the simple benchmark of running the Google DeepDream iPython Notebook in CPU mode and GPU mode, you can see a video of the iPython notebook running below in CPU mode (on left) and GPU mode (on right) and the massive difference in speed.The iPython Notebook took the following times to run to completion:
- CPU mode: 244 Minutes
- GPU mode: 3 Minutes
Conclusion
Do it, you won’t regret it!The Good
- Very Fast, working in virtual machines feels close to working on bare metal.
- GPU works as advertised for machine learning.
- Lots of ports and slots for upgrading and adding new cards/devices for engineering work.
- The Ubuntu keyboard shortcuts for window management (using the mouse is tricky with UHD)
The Bad
- It's expensive, the full build cost including monitors was approximately €3000.
- My UHD Monitors are slow to wake from sleep, sometimes one monitor goes to sleep and won’t wake (Ctrl-Alt-F2, Ctrl-Alt-F7 required to wake it up)
- iPhone isn’t picked up by Mac OSX virtual machine in XCode as an external device.
The Ugly
- The Noise (It is not totally silent, approximately 45dB)