I have not built a custom PC since 1999 (Pentium III days!). Recently I decided I would begin to learn about machine learning and neural networks, and realized that the off-the-shelf Macs I had at home are inadequate for the task.
Compiling the part list was quite a process. For the longest time, I was settled on getting the Asus X399 Strix-E Gaming motherboard, which is an E-ATX board. That constrained me in terms of case selection quite a bit, coupled with my desire to use the Enermax Liqtech 360 AIO cooler/radiator, whose thickness also presented some issues when selecting a case.
Selecting the 1080 Ti-based GPU card really came down to performance per price, and I thought the EVGA 1080 Ti SC2 had the right balance and came at a great price.
Assembling in the be quiet! Dark Base Pro 900 was...an interesting experience. The case is incredibly modular, but that also meant that moving things around meant disassembling many sub-parts. Taking out the optical drive cage, for example, to make room for the Enermax radiator and fans was quite the task. But overall, I think it worked OK - I was glad to have a full-tower case that gave me room to maneuver all the cables, and had generous cable tie-down points.
Luckily it all worked when fired up the first time. Got Debian 9.2.1 Stretch installed, and through some digging around, even found the firmware for the Asus PCE-AC88 4x4 MIMO Wi-Fi card. Drivers for everything else worked great as well, including the NVIDIA drivers for the GPUs.
Installing Windows 10 was another affair. I was trying to create a bootable USB flash drive from inside Debian, and when I booted into it, the Windows installer indicated it required some missing drivers. I turned off CSM compatibility mode, used WoeUSB to create the Windows installer USB drive inside Debian, and then the Windows installer was able to work properly.
One final problem that I had was that while the system recognized the 8 sticks of DDR4 memory I had installed, both Windows and Linux indicated that only 48GB out of the 64GB were usable - i.e. that two sticks were essentially useless.
I suspected that the motherboard BIOS was the culprit, and I was right. Flashing the latest BIOS from ASRock's website (version 2.00) resulted in both Windows and Linux recognizing the 64GB of RAM.
Now the real fun begins. Still deciding between Keras and PyTorch for a machine learning framework, but hoping to converge on a decision soon.
Please let me know if you have questions.