Building a workstation

Greetings all!

I’m about to build a new workstation which will be used mainly for virtualization and compiling

Shall I go for i9 10th gen or ryzen 9 3950X?

I could use the built-in graphics of i9, however, I gotta buy PCIe graphics if I go with ryzen.

Which choice is less likely to produce driver issues - AMD or Intel ?

Hi
It depends on what your compiling, I use cuda/cudann here with (cheap) nvidia cards, the intel gpu for the display… what virtualization, I use qemu here and then get to allocate one of the nvidia gpu’s (and a second SATA card) to my qemu machines.


pinxi -Fxxz

System:    Kernel: 5.7.7-1-default x86_64 bits: 64 compiler: gcc v: 10.1.1 Desktop: GNOME 3.36.4 tk: GTK 3.24.21 
           wm: gnome-shell dm: GDM Distro: openSUSE Tumbleweed 20200716 
Machine:   Type: Desktop System: N/A product: Canyon v: 000 serial: <filter> 
           Mobo: N/A model: N/A serial: <filter> UEFI: Intel v: MKQ7710H.86A.0074.2018.1025.1727 date: 10/25/2018 
CPU:       Topology: Quad Core model: Intel Xeon E3-1245 V2 bits: 64 type: MT MCP arch: Ivy Bridge rev: 9 L2 cache: 8192 KiB 
           flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 54274 
           Speed: 1597 MHz min/max: 1600/3800 MHz Core speeds (MHz): 1: 1596 2: 1596 3: 1596 4: 1596 5: 1596 6: 1596 7: 1597 
           8: 1596 
Graphics:  Device-1: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:016a 
           Device-2: NVIDIA GK208B [GeForce GT 710] vendor: ZOTAC driver: nvidia v: 450.57 bus ID: 02:00.0 chip ID: 10de:128b 
           Device-3: NVIDIA GK208B [GeForce GT 710] vendor: ZOTAC driver: nvidia v: 450.57 bus ID: 05:00.0 chip ID: 10de:128b 
           Device-4: NVIDIA GK208B [GeForce GT 710] vendor: ZOTAC driver: nvidia v: 450.57 bus ID: 06:00.0 chip ID: 10de:128b 
           Display: x11 server: X.Org 1.20.8 compositor: gnome-shell driver: modesetting,nvidia unloaded: fbdev,vesa 
           alternate: intel,nouveau,nv resolution: 1: 1920x1080~60Hz 2: 1920x1080 s-dpi: 96 
           OpenGL: renderer: Mesa DRI Intel HD Graphics P4000 (IVB GT2) v: 4.2 Mesa 20.1.2 compat-v: 3.0 direct render: Yes 
Audio:     Device-1: Intel 7 Series/C216 Family High Definition Audio driver: snd_hda_intel v: kernel bus ID: 00:1b.0 
           chip ID: 8086:1e20 
           Device-2: NVIDIA GK208 HDMI/DP Audio vendor: ZOTAC driver: snd_hda_intel v: kernel bus ID: 02:00.1 
           chip ID: 10de:0e0f 
           Device-3: NVIDIA GK208 HDMI/DP Audio vendor: ZOTAC driver: snd_hda_intel v: kernel bus ID: 05:00.1 
           chip ID: 10de:0e0f 
           Device-4: NVIDIA GK208 HDMI/DP Audio vendor: ZOTAC driver: snd_hda_intel v: kernel bus ID: 06:00.1 
           chip ID: 10de:0e0f 
           Sound Server: ALSA v: k5.7.7-1-default 
Network:   Device-1: Intel 82579LM Gigabit Network driver: e1000e v: 3.2.6-k port: f080 bus ID: 00:19.0 chip ID: 8086:1502 
           IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
           Device-2: Intel 82574L Gigabit Network driver: e1000e v: 3.2.6-k port: d000 bus ID: 07:00.0 chip ID: 8086:10d3 
           IF: eth1 state: up speed: 1000 Mbps duplex: full mac: <filter> 
           IF-ID-1: br0 state: up speed: 1000 Mbps duplex: unknown mac: <filter> 
           IF-ID-2: tap0 state: down mac: <filter> 
Drives:    Local Storage: total: 465.77 GiB used: 153.61 GiB (33.0%) 
           ID-1: /dev/nvme0n1 vendor: Western Digital model: WDS250G1B0C-00S6U0 size: 232.89 GiB speed: 15.8 Gb/s lanes: 2 
           serial: <filter> 
           ID-2: /dev/sda vendor: Western Digital model: WDS250G2B0B-00YS70 size: 232.89 GiB speed: 6.0 Gb/s serial: <filter> 
Partition: ID-1: / size: 40.00 GiB used: 28.23 GiB (70.6%) fs: btrfs dev: /dev/nvme0n1p1 
           ID-2: /boot size: 768.0 MiB used: 95.2 MiB (12.4%) fs: btrfs dev: /dev/sda2 
           ID-3: /home size: 40.00 GiB used: 28.23 GiB (70.6%) fs: btrfs dev: /dev/nvme0n1p1 
           ID-4: /opt size: 40.00 GiB used: 28.23 GiB (70.6%) fs: btrfs dev: /dev/nvme0n1p1 
           ID-5: /tmp size: 40.00 GiB used: 28.23 GiB (70.6%) fs: btrfs dev: /dev/nvme0n1p1 
           ID-6: /var size: 40.00 GiB used: 28.23 GiB (70.6%) fs: btrfs dev: /dev/nvme0n1p1 
Swap:      ID-1: swap-1 type: partition size: 1.88 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/sda4 
Sensors:   System Temperatures: cpu: 45.0 C mobo: 62.0 C 
           Fan Speeds (RPM): cpu: 651 
           Voltages: 12v: 12.10 5v: 5.24 3.3v: 3.34 vbat: 3.34 
Info:      Processes: 330 Uptime: 19:21:22  up 1 day 23:04,  2 users,  load average: 0.16, 0.20, 0.12 Memory: 23.36 GiB 
           used: 2.70 GiB (11.6%) Init: systemd v: 245 runlevel: 5 target: graphical.target Compilers: gcc: 9.3.1 alt: 10/7/9 
           clang: 10.0.0 Packages: rpm: 2988 Shell: Bash v: 5.0.17 running in: tilda pinxi: 3.1.04-2 

Interesting questions.
And one I had not thought about before… compiling on a GPU.
A quick Google search confirmed my suspicion, it’s not typically done because of the nature of what happens when you compile.

You have to understand that today’s processing technoliges (CPU and GPU) have been running up against a wall not easy to cross limitations of manufacturing that is preventing a continued increase in computing speed consistent with Moore’s Law.
For a long time now, without being able to run at faster speeds, there have been great progress implementing multiple processors (typically cores instead of multiple dies) and improving the parallellism of the running processors/cores.

What this means is that compiling which today is typically more serial and hardly parallel can’t make use of parallellism so you’d want to concentrate on processors that run faster, and not necessarily multiple cores.

Virtualization on the other hand can make excellent use of parallelism, the concept of multiple virtual machines is a prime example of making use of multiple parallel processes… So more processors and cores would be beneficial.

Bottom line, from your description I don’t know that Itnel or AMD CPUs will make that much of a difference, particularly if your workload doesn’t push your machine’s resources to the maxiumum. When I looked at both not that long ago, I found the cost of computing power was approximately the same. Benchmarks suggest that Ryzen is the more powerful architecture at the moment, but costs a lot more than an Intel processor. Both are pretty powerful for running maybe 3-4 heavy tasks simultaneously.

As for the GPU, it’s hard to say what is better than another.
You haven’t described a workload that could be run on GPU computing but if you did, GPU computing makes a world of difference. Also, some projects support one GPU and not necessarily the other… so YMMV. If you don’t have a use case and don’t plan on a use case, then maybe you shouldn’t pay too much attention, particularly if you can upgrade at a later time when something specific comes around.

One thing you didn’t mention is what I consider extremely important nowadays…
Provided yuo have the budget, you should deploy as much of your actively used disk storage as m.2 NVME, not regular SATA or SAS. Even if you compare to SSD SATA/SAS, m.2 NVME is 5x faster using first generation technology, and much faster than even that with third generation technology announced by most of the major manufacturers already this year (shipping 2nd half this year supposedly). In other words, maybe store old, archived data on HDD, use SATA/SAS SSD for relatively inexpensive, active use and use m.2 NVME for your frequently used data. Do that, and it’ll make a world of difference on your system, maybe more than your choice of CPU/GPU and on par with the amount of physical RAM installed.

If you can’t afford m.2 NVME, consider 16GB Opteron cards, they use an extra m.2 slot you’d rather use for something else, but it can be used to buffer the I/O for HDD and SDD so you can access the data off those slow drives as fast as if they were SSD at least (maybe even approaching m.2 NVME). But, if you can afford and install even first generation m.2 NVME, I’d recommend that instead.

HTH,
TSU

@Tsu2, I think you mean optane not opteron…

Worth a read: https://developer.nvidia.com/how-to-cuda-c-cpp

@OP, the more threads you can get the better… :wink:

Building a Whisper-Quiet Threadripper PC For Greg Kroah-Hartman!

https://www.youtube.com/watch?v=37RP9I3_TBo

3950x is half the size, but will be happy with the components used with 3970x.

Went back to AMD after a decade of using Intel - I haven’t found a single bad thing to say about my Ryzen.

They even gifted a nice 5-10% boost just a while back when they released new AGESA lib. Comparing that to Intel mainly slowing down their CPUs due to firmware patches trying to fix their leaky tub.

Same things with AMD ROCm.

CPU: IMHO AMD Ryzen 9 3950X is better right now.

Intel Optane 16 GB is about 2 times slower than Optane 32 GB. And they are using PCI-E 3.0 2x.
If you have money then use NVME drive with PCI-E 4.0 4x bus.