Over the past two years, I’ve been seriously thinking about upgrading my workstation for a number of reasons. Despite this, I could never actually make the commitment, as my computing needs are quite high and the investment would be sizeable. With a continual trail of new and better things to come, I kept deferring the upgrade until I succumbed. This post looks at the drivers for the upgrade, as well as the resulting build.
My Recent (2011 – 2017) Workstation History
Around six years ago (2011), my daily workstation was still a Socket 939 based AMD Athlon64 x2 3800+ built on a DFI motherboard, all of which was purchased second hand from various members on OCAU. The motherboard had a rattly chipset fan and was decked out with the maximum 4Gb of DDR1 it could take – two OCZ Platinum sticks I purchased from a friend at a good price because he couldn’t get them working reliably, and two GeIL sticks I purchased because I wanted the RAM. At that time, the box was booting from a second-hand WD Raptor 36Gb drive too. While it wasn’t leading at the time, I decided I should jump to something greater as the core was about six years old at the time.
I built a newish (at the time) AMD Phenom II x6 1055T based machine around a cheap Asrock 880GM-LE FX mATX motherboard, only establishing a mild overclock. Unfortunately, the choice of board limited the final speed due to its anemic VRM, as did the stock heatsink. The board having just two DDR3 slots was also not ideal. It was quite a lot faster though and didn’t break the bank. My desktop machines managed to skip the DDR2 era entirely.
A year later (2012), my friend offered me his (relatively young) AMD Phenom II x6 1090T, complete with a Gigabyte 890FXA-UD7 motherboard and various other parts including two BenQ FP222W monitors for a steal. I couldn’t resist the offer, so even though the XL-ATX motherboard made finding and purchasing a compatible case a necessary step, it definitely exceeded my needs at the time. Apparently, he sold it to me because he wasn’t happy with the single-threaded performance of the CPU at the time, but it had never been overclocked. He instead opted for a Sandy Bridge-based build.
But before actually buying a case, I tried my best to win one. At the time, that was a real possibility as Bitfenix was establishing its brand reputation, and online competitions were not as widely participated in.
You know what, I actually did win a compatible case, but since there were a few delays in shipping it to me, I bought an Antec Eleven-hundred instead (which proved to be somewhat thin and flimsy, but sufficient). The Bitfenix Shinobi XL instead housed my old 1055T build, retiring a generic sheet-metal case that had been so severely dented as to render it useless.
The next thing I did was to purchase a decent heatsink. Overclocking was on the cards – I wanted to make the best of the motherboard and CPU. As a result, I settled on a Noctua NH-D14, which has been a superb performer throughout. RAM-wise, I started with 8Gb, and soon upgraded to 16Gb which was the maximum officially supported. I also splurged on my first SSD – an OCZ Vertex 3 120Gb unit which still survives. It saw a GTX560ti as the main graphic unit (a carry-over) initially, with a later addition of a second hand GTX560ti working “independently” to drive four monitors.
Ultimately, the AMD Phenom II x6 1090T ended up at 3.9Ghz running 1.45V. Initially, it did reach 4Ghz stable, but the overclock degraded after about a year and a half of running. The reason I couldn’t go any faster was likely due to the leakage in the chip combined with the VRM on the motherboard – a stock 1090T runs at 3.2Ghz but at much the same voltage (~1.425-1.475V) and is rated for 125W. Running at 4.0Ghz at 1.45V actually pushes the VRM into overcurrent protection with an estimated 170W power delivery to the CPU. It was very inefficient at that speed, but at least it could now meet the performance of an i5-2500K at stock speeds. Given the system was essentially “a giveaway” to me, I didn’t mind the inefficiency so much and lived in a hotbox for years.
The RAM was run at 1333mhz rather than the 1600mhz rating. Unfortunately, the IMC on the CPU was very unstable when running on all-banks-full, so a reduction on speed was necessary. This unfortunately reduced the bandwidth somewhat which may have introduced a bottleneck.
I really liked the motherboard as it finally bought a decent number of SATA3 ports and PCIe slots to allow me to do all the upgrading I wanted. It also provided my first USB 3.0 port in the house, saving a lot of my time when it came to data transfers. This set-up ran very happily up till 28th October 2017 (around 5 years in my ownership), when it was officially retired from its role as my main workstation. It did not fail at all in the time it served, with a power-on-hours estimate of about 27,000 hours in use under my rather rough care.
The 1055T system saw service as a special purpose box to do certain “crunching” tasks, it too being powered down as often as possible to save power.
To Upgrade or Not
Throughout its five year career with me, it was already slated for an upgrade at around three-years in (which is around five years since the CPU was introduced). The main reason revolved around its poor electrical efficiency (Pentium 4, anyone?) and my high utilization factor.
In fact, even testing it at the end of its service, it only achieved 6156 marks on Passmark PerformanceTest’s CPU Benchmark. This places it at 55%, or barely above average. Even quite a few 3rd generation Intel laptops with 45W CPUs are faster than this, and I needed 170W to match them. It didn’t really make sense anymore, especially when I couldn’t software-decode even full-high definition HEVC video at real time, encodes were in the 0.01fps region, and creative software like Lightroom ran like a pig. I was tired of waiting. The i5-2500K at stock claims 6467 marks at 95W, so at 3.9Ghz, it wasn’t even quite as fast as the second-generation Intel Core i-series. Even though that was the case, I did get a lot of work done with the system, and it was set up exactly how I liked it.
At the time I began considering Intel’s Socket 2011v3 platform to ensure I had all the PCIe connectivity I wanted so I could stuff it full of cards. The boards were expensive, the CPU was expensive, and the DDR4 RAM was also expensive. It was hard to justify, but based on power savings, I could have possibly broken even in the whole lifetime of the machine (mostly based on the fact that the faster CPU means the same energy produces more computational work).
But I never pulled the trigger. I knew AMD had something good on the way as alluded to by their releases, and I really hoped to see competition return to the market. But I was also watching a gradual loss of competitiveness in the PC market, bolstered by declining sales in the desktop PC market as many users focus on mobile and portable devices instead.
My special-purpose box had been retired, and a newer, faster Z97 i7-4770k box was built to replace it. This was fine for its intended purpose, but the mITX board meant no expansion capabilities so it couldn’t substitute as my main workstation even in the interim.
However, this year proved to be fruitful. AMD’s Zen-architecture made it to the consumer market, branded as Ryzen (and later, ThreadRipper) at a price that was better than we’ve seen for years. It caught Intel off-guard and led them to scramble a competitive reply. While it wasn’t perfect – there were issues with RAM compatibility, optimization for the CCX/Infinity Fabric structure of the CPU and instability with some chips at heavy loading (segfaults under compiling Linux kernels) – we knew this would be ironed out in time.
When something is new, the prices tend to be high. I didn’t pull the trigger for Ryzen at launch despite highly anticipating it purely because of the expected mark-up. The other reason was the persistent rumour that an even better 16-core chip would make it to consumers’ hands within a few months. That was what we now know to be ThreadRipper. Another factor was the official declaration that only Windows 10 and above will be supported officially as the OS, with older versions exhibiting upgrade blocks and (possibly) sub-optimal performance. Going to Windows 10 was something I wasn’t too keen on, because of privacy issues and compatibility problems, although getting UASP support would be nice.
In the end, ThreadRipper arrived, and my budget didn’t really extend to it. In fact, critically evaluating my needs, the Ryzen proved to be much more economical. Combine that with a few online sales which reduced the price even further and a little bit of left-over money from holidaying, I had finally sealed the deal. I would be upgrading, after all, and that would make my life a lot better …
The New Build
The new build would be mainly an upgrade of the core of the machine with some parts carried over. While some parts are showing their age, I’m not afraid of an occasional repair, so I don’t mind pushing them along a little further. However, to minimise disruption, I had to minimise the overlap between critical parts between machines to avoid taking down my main workstation until the new one was ready to take over.
As a result, I purchased a full set of core components – SSD, motherboard, RAM, CPU and cooler. I chose to grab the retired 1055T box and clean it out. The large Bitfenix Shinobi XL was a perfect case for my main workstation with its large size and good airflow characteristics, although after five years, all the rubber gaskets are starting to decompose. I used the “weaker” OCZ Fatal1ty 550W modular PSU in the system to power the core and allow me to overclock and test the system prior to its final “rebuild”. So as not to knacker the M.2 SSD with unexpected shutdowns and power cycles, I did a trial install of Windows 10 to an old 2.5″ 160Gb hard drive I had lying about just to tinker.
The choice of components were rather straightforward – the Asus Prime X370-Pro was chosen due to its complement of on-board I/O, as well as its decent VRM set-up for the price. The AMD Ryzen 7 1700 was chosen because it was the base model of the 8-core models, and shows the biggest potential for improvement. The Corsair Vengeance LED 64Gb 2666mhz kit was chosen due to a DDR4 shortage and a lack of options at the 4x16Gb level. Unfortunately, this was sub-optimal both in a clock-speed and die-type sense for a Ryzen build, but previous experiments with RAM stability showed the Ryzen to have an “all-banks-filled” stable speed of about 2666mhz anyway. It was more economical compared to paying twice as much for a 3200 (or faster) kit. The Noctua NH-D15 SE-AM4 was not strictly necessary, as a new mounting kit from Noctua could be claimed for my NH-D14 which would have been more than adequate, but losing the NH-D14 from the other board would have condemned it to being shut down during the testing process which can take a long time.
The build was straightforward and trouble free, with one exception. It was found that with D.O.C.P. enabled on the board to boot with RAM running at the rated 2666mhz rate resulted in intermittent POST failures, but at the “standard” 2133mhz rate, was perfectly reliable. This was not a major concern at the time, as I was going to get into overclocking anyway, but Ryzen’s really do need a bit of love to get things going properly. More on that in the next section. Just for kicks, I did try the stock heatsink, and while it was quiet even with the fan at full tilt, it really didn’t seem to have much margin for overclocking. It has a nice RGB LED ring, but it seems the factory may have layered on the thermal paste on a bit thickly. The fact it doesn’t use the clip retention system and instead screws into the backplate also makes assembly and removal a little tricky, so if you’re not planning to use the stock heatsink, maybe give it a miss entirely.
Overclocking and Proper Commissioning
I wouldn’t say the system was a slouch at the stock settings, but buying these parts and not trying out your luck just seems wrong. As a result, I decided to do the overclock and commissioning tests straight away on a fresh test install, so as to not put any data at risk. Assuming the build is physically fine, the process (in my experience) goes something like this.
Step 0: Get the BIOS updated
The first step is usually to get the latest BIOS, which should give you the best compatibility and stability. It’s good to flash it right away prior to tweaking any settings which might affect stability and cause the flash to fail. It should also help you get the most overclock as well, but one of the main reasons for me to do it now is simply because the upgrade often will wipe all your BIOS settings, so keep a notebook handy while you try various settings.
Step 0a: Test the RAM
This is an optional step, but you could test the RAM with a self-booting utility such as Memtest-86. While I normally do this on other systems, I tried doing the same on the Ryzen only to find that I could pass Memtest-86 on horribly unstable configurations that would fail to even boot Windows, so passing Memtest-86 is not in itself a useful indication of stability as it once was.
Step 1: Install Windows and Drivers
You should probably install Windows from a disc you have or have made via the Media Creation Tool. This fresh install is likely to be used for testing and trashing so don’t bother activating it or putting in any product keys. It’s good just to see all the drivers can be installed without conflicts, and you don’t get any issues with power control (e.g. sleep).
Step 2: Collect all your test tools
I would recommend Intel Burn Test (or any other variant of Linpack-based stress test, such as OCCT, LinX, etc), Prime95, HCI Memtest, CPU-Z and HWMonitor (or CoreTemp, AIDA64, etc). You might also want to use AMD Ryzen Master, although I’m no big fan of soft-clocking, so I’ll still do everything through the UEFI interface.
Step 3: Optimize RAM
By default, the RAM will probably run at 2133mhz, as it is the “standard” speed. AMD does not officially recognize XMP profiles (they’re an Intel thing), so instead you may have to enable D.O.C.P. or equivalent on your motherboard to “convert” the XMP profiles into proper controller settings. Unfortunately, such automatic conversion is not always perfect, so look to do some tweaking.
At first, I tried the “rated” speed of the RAM but found it to be intermittently POSTing. The reason appears to be that the Ryzen SOC voltage needs to be increased from its default of about 0.9V – keep this to 1.2V or below. I settled on 1.1625V for SOC voltage which let me reliably POST at the rated speed.
After that, I decided to increase the speed and tighten the RAM timings. To give the maximum chance of working, I pushed the RAM voltage to 1.35V from the stock voltage of 1.2V, as most faster kits operate at the higher voltage. Voltages up to 1.5V are possible but not recommended, but with increased energy consumption/heat production. I could not post at 2933mhz regardless of the latencies, so I stuck to 2800mhz, which was still a decent overclock.
The next step would be to run HCI Memtest with as large of a value on each instance as it would allow, until you cover (practically) all your RAM. Run until at least 300% coverage to be sure it is stable – errors halt the test and pop a dialog. This proved to be both faster and more sensitive than Memtest-86 probably because it heavily loads all cores with multiple threads and puts a lot of stress on the IMC. If you pass, the RAM is probably stable.
While I’ve already begun to tighten latencies on the RAM, attacking CAS, Trc, Trp and Tras, the automatic setting for tRC (cycle time) is stupidly high, and that will affect performance adversely. As a result, I recommend you double check your tRC value to see if it is near the SPD value or not, and tweak it too.
The final setting does lose one tick on tRC for stability reasons, but is otherwise running at both a frequency that is higher than the one on the package, and with latencies tighter than even their higher tier kits. I’m happy enough, even though this is definitely not Samsung B-die which works best. This is probably either a Micron/Spectek based kit based on Version Number decoding. But the idea that non-Samsung dies won’t work is disproven – although having a higher clock rate will benefit the CPU’s Infinity Fabric speed, so where possible, maybe a good idea to stick with the Samsung.
Step 4: Optimize CPU – Push the Multiplier, Watch the Power & Temperatures
While there are more sophisticated ways to optimize the CPU clock (i.e. P-state overclocking), I found that the stock BIOS does not seem to do this correctly. Entering in FID/DID values manually resulted in inoperative P0 states, so I decided to do things via fixed-multiplier overclocking instead. To ensure that XFR doesn’t interfere with the overclock, it is disabled.
The AMD recommended maximum voltage for the CPU is 1.35V, and other sites report about 1.45V. Regardless, to run at a higher voltage than necessary is a bit of a sin, as it wastes power as heat and shortens the lifetime of the CPU. As a result, it would be nice only to hit those voltages only transiently.
The fastest way is to first find the maximum speed the CPU can handle. I set the CPU voltage offset positive until the CPU voltage reaches something like 1.35V and then crank the multiplier up until it wouldn’t boot (for me, it failed to boot at 40x). Then set it to the one below (39x) and test. While you can use half-multipliers, given the BCLK is 100Mhz, there’s not that much to be gained.
The next step is to test for stability using the worst case load. For me, this proved to be Intel Burn Test (Linpack) which easily caused the CPU to top 100A from the VRM and 125W TDP. Considering the VRM is a 6-phase x 20A design with a maximum of 120A capacity, it would be unwise to push the voltage any further, as the VRM overcurrent may trip, the power to the CPU could become noisy, the VRM may not be able to maintain phase balance (or worse, the VRM may be damaged). It’s best to set the size of the data to be just below your available RAM to ensure maximum RAM stress as well. Unfortunately, at 39x, after a few minutes the machine black-screened (failed BSOD). Then I dialled it back to 38x and it passed just fine. The final step is to tweak the voltage offset back until the system crashes, then step it up two notches to ensure it has some margin.
This resulted in my system stabilizing about 3.8Ghz at 1.30V. Not that lucky, but not unlucky. However, the TDP to achieve this performance was about 125W, so my guess is that the Ryzen dies are binned as follows:
- Best 5% (i.e. low leakage & high frequency) -> Threadripper
- Low leakage & high frequency -> 1800x
- Low leakage & lower frequency -> 1700x
- Higher leakage -> 1700
- Leakage too high to meet TDP -> disable CCXes for R5/R3?
Step 5: Verify Stability
The most important step is to make sure the result holds. As a result, IBT with practically all available memory is run for 10 loops to check it passes.
Then, I check it with Prime95’s torture test on blend for a full 24 hours, ensuring all threads pass.
Since I use WinRAR quite a bit, I also decided to use its benchmark feature for 12 hours just to make sure it can pass.
All seems fine, which is great. While IBT reaches about 125W, Prime95 reaches about 85W and WinRAR only pushes about 60W. As a result, some people who claim higher speed overclocks with even higher voltages may not be stable under power-virus loads, but can still manage everyday tasks with sufficient stability for them. But nothing but the best for me :).
Step 6: Commission Storage
Since this new build will have a new M.2 SSD and two new 8Tb hard drives, all of them were tested using the temporary install. Separate reviews will be posted for these items, but needless to say, doing it this way allows for everything to be tested without the interference of booting off a drive that’s being tested.
Step 7: Rebuild the System
Once everything’s passed, it’s time to pull out the temporary drive and move the final equipment into the box. Windows is re-installed in its final configuration and a quick verification of stability is done just to be sure the interchanged parts did not affect the result. Once that’s done, we’re back to business installing our normal complement of applications and getting ready to get back to work.
The Final (?) Result
The final build looks like this. I’ve tried to be as neat as I can, but really, I don’t give a toss. The system’s been working incredibly well – it’s snappy, and if anything, I feel that I can’t make it break a sweat purely because so many apps are otherwise performance bound by their single-threaded blocking nature, and I can only interact with so many apps at once even with the four monitors I’m using. Unfortunately, my monitors haven’t been upgraded in nine years, so even a single 4K monitor has more pixels than all of my monitors combined, but until such time 4K IPS monitors become more affordable, I will retain my current set until they fail.
The specs of my whole setup are as follows:
CPU: AMD Ryzen 7 1700 @ 3.8Ghz 1.30v Cooler: Noctua NH-D15 SE AM4 RAM: 4x16Gb Corsair Vengeance LED 2666mhz C16 kit @ 2800mhz 14-15-15-15-32-54-1T M.2: Samsung 960 EVO 1Tb GPU: Palit Jetstream GTX970 (carry-forward) Sound: Asus Xonar Essence STX (carry-forward) SATA1: Samsung 850 EVO 1Tb (carry-forward) SATA2: Western Digital 4Tb Green (carry-forward) SATA3: Seagate Skyhawk 8Tb SATA4: Seagate Skyhawk 8Tb SATA5: Western Digital 6Tb Green (carry-forward) SATA6: Western Digital 6Tb Green (carry-forward) SATA7: LG BH16NS55 16x BDXL BluRay Burner SATA8: LG GGW-H20L 6x BluRay Burner (carry-forward) PCIe: TBS 6925 Professional DVB-S2 Tuner (carry-forward) PCIe: HP NC360T Intel Dual GbE (second-hand) I/O: Serial Header (carry-forward, second-hand) Case: Bitfenix Shinobi XL (carry-forward, prize from 2012) PSU: ThermalTake TR2 Bronze 800w (carry-forward) Rear Fan: Fractal Design 140mm Silent Series R3 Top Fan: Coolermaster 120mm SickleFlow Green x 3 Keyboard: Das Keyboard Model S (carry-forward, second-hand) Mouse: Steelseries Sensei Pro Monitor1: Dell E248WFP (24" 1920x1200, TN) (carry-forward) Monitor2: BenQ FW222W (22" 1680x1050, TN) (carry-forward, second-hand) Monitor3: BenQ G2000W (20" 1680x1050, TN) (carry-forward) Monitor4: Asus VW161D (16" 1366x768, TN) (carry-forward, second-hand) Speakers: TDK XS-iV S80 (carry-forward, second-hand) Headphones: Audio-Technica M50xBL (carry-forward) Webcam: Logitech 9000 Pro (carry-forward)
I didn’t mention it, but I did change out my old Mionix NAOS8200 for a Steelseries Sensei Pro purely because the old mouse had a broken scroll-click button. I reallocated it to another button for a while, but I just felt like I should just move on and swap it out.
The upside? It can glow green (my favourite colour) and the LCD can be customized. That’s cool … even if it’s a bit meaningless.
Another thing that was changed was the home wireless router – I took my cheap TP-Link WR-740N (x2) and WD MyNet N750 (x2) out of service primarily because of occasional radio hang-ups on the N750 that necessitated resets and the coverage of the WR-740Ns being a little sub-par. I’ve replaced them with a single TP-Link Archer C7 from Hong Kong, that I snapped up at 40% less than the Australian price, and its coverage and speed are superb. Support for IPv6 is also nice, although as usual, we’re taking forever to migrate.
But back to the workstation – how does it perform? The numbers now say that it is about 2.75x the speed of the box it replaces. That’s a lot more than the ~10% you get with each incremental generation.
The CPU-Z benchmark seems to put my CPU a little quicker than the 1800X top-of-the-line Ryzen 7 CPU, which I can’t really complain about.
Based on the quick suite of benchmarks that I’ve done, the new box is in every way faster, but with IBT, it only ended up 25% faster. With other tasks (e.g. HEVC encoding), it was easily more than 15x faster. I suppose it really depends on the application and how optimized it is to take advantage of the threads available.
|METRIC||OLD BOX||NEW BOX||Unit|
|WinRAR x64 v5.50||5291||12207||KB/s|
|Intel Burn Test v2.54 (Linpack)||65.4||82||GFLOPS|
|CPU-Z v1.81 Single Threaded||188.4||438.2||score|
|CPU-Z v1.81 Multi Threaded||1108||4724.4||score|
|7-Zip 16.04 64-bit Total Rating||20049||44163||MIPS|
|Cinebench R15 CPU||542||1692||cb|
|Super PI/mod 1.5 XS 32M||1232.534||611.53||seconds|
|Passmark PerformanceTest 9 CPU Mark||6156||16940||marks|
The parts that I changed cost me about $2300 all up, but in return, I have a far superior system which makes doing work (e.g. analyzing holiday data, doing photo touch-ups, compressing data/video) a lot faster and will likely improve upon the reliability of my main workstation.
The old box did have occasional “microstutters” and crashes which I couldn’t pin down, so maybe it was on its way out even if stability test applications couldn’t detect it.
But best of all, my room is finally a lot cooler, and the power bill should be a bit less too. Next upgrade? How about another five to seven years … 🙂