Upgrading My Home Server With a Mystery Chinese CPU
This might come as a surprise, but I have a home server… I know, shocking. The system itself went through a lot of iterations, but there is one thing that remained constant throughout all the iterations and that is the CPU. This is Intel i3-6100 A dual core Skylake CPU from all the way back in 2015. This processor can be had for less than 20 bucks used on eBay, and has an integrated GPU, which can theoretically be used for hardware video transcoding And that’s pretty much its only two redeeming qualities It doesn’t really get any awards for performance, or power efficiency, but for something like a NAS, or a small Docker host This level of performance is more than enough This machine in particular has been running Unraid with dozens of Docker containers for about a year now, and I’ve never really felt the need to upgrade.
Besides, the most powerful CPU that this motherboard can handle officially is i7-7700K, which still costs around 180€ on the used market here in Germany. And I really didn’t want to invest that much into a dead platform. Until one day, I learned about the so called “mutant” CPUs. Before going further, I’d like to tell you about today’s sponsor, Brilliant.org
I’ve always really enjoyed working with computers – be that hardware or software. But despite that, I’ve never really been good at math, and always kind of felt like I’m missing some essential ‘computer person’ knowledge. At the same time, every attempt of mine to teach myself any kind of math ended up like this. If you can relate to that, you should definitely check out Brilliant. Brilliant.org features a lot of fun interactive online courses
that teach you math, computer science, machine learning, and so on. Personally, I’ve been really enjoying their Calculus course so far. Honestly, I never thought I’d be able to get through an entire math-related course at my own volition, but, here we are. And it doesn’t just stop at math, either! If you’re curious about how the new AI technologies like GPT-4 or Midjourney work under the hood, they have courses on neural networks and statistics. If you want to learn about data science and algorithms, they have courses about that, too! As well as physics, logic, and even quantum computing! So whether you want to learn new skills to stay relevant on the post-AI job market Or you’re just a curious person who likes to learn new things Brilliant.org has got you covered. If you want to check it out, go to Brilliant.org and get yout free 30-day trial.
The first 200 people to sign up will also get a 20% off their annual subscription. So thank you Brilliant for sponsoring this video, and now, let’s get back to our main topic. The “mutant” CPUs are laptop chips typically sold on AliExpress and Taobao, that have been soldered onto an LGA adapter and are being sold as desktop CPUs. You might have seen this video from Linus Tech Tips, or, more recently, this one from Craft Computing, where Jeff reviewed an entire motherboard with an 11th gen engineering sample CPU soldered directly to the board.
Now, even though these 8th and 9th gen ‘mutant’ CPUs might be a pretty nice cost efficient alternative to retail chips, I have a 6th gen Skylake motherboard, so… why am I even talking about them? Well, despite Intel claiming that you absolutely, 100%, pinky promise need a new motherboard for their new 8th and 9th gen CPUs, in 2017, a group of modders found out that after a few BIOS patches, the 8th and 9th gen CPUs can be used with the Skylake motherboards. This includes even the 8-core 16-thread i9-9900KS As long as your motherboard’s VRMs can handle it. For a platform that maxed out at 4-core and 8-thread CPUs like the 7700K, that’s a huge upgrade.
Since then, the process of modifying and patching the BIOS images has been simplified a lot. Nowadays it’s literally as easy as downloading the BIOS for your motherboard from the vendor’s website, loading it into an app, and after a few clicks, you can simply flash the new BIOS to your motherboard. Either internally, or with an SPI programmer like CH341a or Raspberry Pi. We're going to discuss the moding process later, but first, I'd like to talk more about the so called mutant CPUs The term “mutant” comes from the Russian-speaking part of the Internet, where these CPUs are still very popular.
For instance, take a look at this 970 page thread on a Russian computer forum, overclockers.ru The main reason why these chips are so popular in countries like Russia, Kazakhstan, Kyrgystan, or even Brazil, is their cost. Sure, if you’re in the US or Europe, you can get something like an i7-8700k for 150€ off of eBay, or even spoil yourself with a shiny new system once every few years. But in a lot of third world countries, the used market for computer hardware is either plagued by inflated prices, scammers or in some cases, is pretty much non-existent So your only option is to buy new… Which, in comparison to the US or Europe, very few people can afford. And at the same time, there’s a huge number of people who still have 6th and 7th gen motherboards kicking around, and don’t mind doing a little bit of tinkering, especially if it can save them some cash.
So naturally, the PC enthusiasts flock to Aliexpress, which offers a huge choice of janky CPUs. If you have a relatively small budget and just want something with more threads There’s this engineering sample with the code name “QNCT,” which is similar to i7-7700 in terms of performance, but costs way less. If you want to go balls to walls and don’t mind spending a little bit more money, there’s the i9-9980HK.
As I already mentioned, these CPUs are mobile chips that have basically been soldered onto an LGA adapter. Some of them are ES, or engineering sample chips, which are a bit cheaper than the final release CPUs, and might not clock as high. And then there are the non-ES processors, which cost a bit more, but also clock higher and have less stability issues In both cases, even though the mutant CPUs are technically laptop chips, they usually perform a lot better than their laptop counterparts.
That’s because even the thick workstation or gaming laptops are limited to 45W at best, whereas for a desktop machine – the sky is the limit. And even though you can use actual 8th and 9th gen CPUs in older Skylake motheboards, those are quite a bit more expensive than the mutant chips, and also require physical modifications, either to the motherboard, or the chip itself. Now realistically, if I wanted to upgrade my home server, I could’ve gotten myself a new 13th gen motherboard, and something like an i3-13100. I could’ve done that, but… Meh... I mean, come on,
I know you guys enjoy janky home server builds as much as I do. So naturally, I decided to jump the gun, and ordered myself a Xeon E-2176M. It’s a 6 core 12 threads chip, and since it’s actually a mobile Xeon, it also comes with an integrated GPU.
So you get the best of both worlds integrated graphics and support for ECC memory… right? The benchmark figures shown on the AliExpress page put it just below the i7-8700K, which costs at least 50€ more on the used market here in Germany. Apart from the CPU, you get a Torx screwdriver and some spacers for the mounting frame, as well as a small tube of thermal paste. The chip itself comes in this small metal box With a little piece of paper that warns you against delidding it. As you can see, this chip is quite a bit thicker than the i3-6100, and that’s exactly why it comes with these spacers.
As Linus Sebastian says, she’s a thick boy. For the motherboard, I’ll be using this MSI B150i which is definitely not gonna be a part of my new miniITX home server build, and which I’ll definitely not make a video about, so don’t even bother subscribing! Before installing the CPU, you need to unscrew the mounting frame, and put the spacers underneath the two top screws. You also need to take off the bottom screw before putting the CPU in, because once again, it’s just way too thick. Now we’re going to tighten the bottom screw, and that’s it That was the easy part After the chip is installed, we also need to mod our BIOS. Thankfully, all the heavy lifting has already been done for us by the modding community, and what came out of it is this nifty little program called CoffeeTime. CoffeeTime is a Windows-only application, but personally, I was able to run it on macOS using Wine.
The way it works, is you basically download a BIOS image from your motherboard’s downloads page. Then, you feed the image to CoffeeTime, and after some time, you should see this screen. First thing we need to do here is update the Intel Management Engine to the latest available version. After that, we also neuter it by clicking on this button. As you can see, the unintended side-effect of the CPU upgrade is also a small increase in privacy.
Then we move on to the patches, and here you basically want to apply all the available patches, like so. After that, we’ll need to add new microcodes to our board. By default, your board will only have the microcodes for Skylake and Kaby Lake CPUs, obviously And here, you’ll also need to add microcodes for the CPU of your choice. There are four variations of Coffee
Lake microcodes, and what I’m going to do is add all of them, as well as the microcodes for Skylake and Kaby Lake CPUs. The three microcodes on the right are for 6th and 7th gen Engineering sample CPUs, and if you don’t plan to use those, feel free to omit them. Now let’s look at the VBIOS and GOP section.
Here, you’re gonna want to make sure that they’re both updated to the latest versions. In my case, only the “Internal” variants actually worked And I honestly don’t know the difference between the internal and universal versions. Last but not least, if you have an MSI board, you’re gonna want to go to the Extra tab, and hit this button. Since we’ve installed a newer version of Intel Management Engine and neutered it, we’re going to see a warning screen on every boot that says something along the lines of “Abnormal Management Engine”.
This will do exactly what it says on the tin, and hide that message. Now we’re gonna hit “Save image” and now we technically have a BIOS image that supports Coffee Lake CPUs. Now for the hard part – flashing.
Normally, you should be able to flash the BIOS to your board with a software tool, such as AMI Firmware Update, or FlashProgrammingTool. However, it’s still recommended to have a hardware flashing tool handy. If something goes wrong, and your BIOS ends up being borked, you won’t be able to boot into the OS and re-flash it. Seeing as I have some experience with flashing Thinkpads back in my Coreboot days, I decided to just use my hardware flasher instead of a software tool. This is a CH341A. A USB SPI flasher.
Just a quick warning about those, if you buy one online, make sure to measure the 3.3V rail with a multimeter. There’ve been some cases where people actually fried their BIOS chips with a programmer like that, because the jumper that’s normally supposed to switch the programmer between 3.3 and 5V didn’t actually do anything. Yikes. So, I’ve found the BIOS chip on the board, there it is And then I connected the clip to the chip, making sure that the red wire on the clip lines up with a little dimple on the chip. Then I’ve connected the clip to the flasher like so, and connected the flasher to my laptop. This might be a good opportunity to warn everyone that hardware flashing is a very intricate process, and if you do something wrong, like mess up the clip orientation, or have the programmer connected to your computer while you’re putting the clip on the chip You may fry your motherboard’s BIOS chip. Some motherboards come with removable BIOS chips, but some, like this MSI B150i, have the chip soldered to the board. So if you fry it – it’s pretty much GG.
After connecting the programmer to the laptop, I also had to install flashrom, which is a command line tool that let’s you flash SPI chips, such as the one here. On macOS, installing flashrom is as easy as typing `brew install flashrom`. First, we need to read the current contents of the chip by typing `sudo flashrom -p ch341a -r bios.rom`. And as you can see, it says “Reading flash…”.
This means that I’ve attached the clip correctly and that the programmer is able to read the chip. If you see an error after that command, this means that you’ll need to disconnect the flasher from your computer and reseat the clip on the chip. There are also some chips that will flat out just refuse to work with a clip like this one And if your motherboard has a removable BIOS chip, then you’re in luck You can just take the chip out and connect it to the programmer directly. And if not – well… I hope you have a friend with a hot air station. After reading the BIOS once, we’re also going to it a second time.
And after the second read is done, we’re gonna compare the two BIOS dumps using a `diff` utility. This will ensure that our BIOS reads are consistent, and that there are no electric interferences that would otherwise corrupt our reads or writes on the way to the chip. If you see something else than an empty line here You need to stop what you’re doing, disconnect the programmer form the computer and try again from scratch.
As you can see here, there are no differences between the two of my reads, so now we’re gonna proceed with flashing our new BIOS. For that, we’re gonna type `sudo flashrom -p ch341a -w` and then the name of our new BIOS that we created with CoffeeTime. After the flashing is done, I’m gonna disconnect the flasher from my computer and remove the clip – exactly in that order. Then I’m gonna put a heatsink on the chip without actually tightening it or anything, just to see if the system boots.
Aaand… No post As you can see, this particular board has a debug LED that indicates if there’s something wrong with your RAM, CPU or GPU. Right now it’s basically stuck between CPU and RAM, which might mean that there’s an issue with our memory. If you read through some forums discussing these CPUs, RAM issues seem to be very common. Because of the way those chips used to be designed before with a custom mounting bracket and no IHS People would often have issues with installing them correctly and make sure all the pins make good contact. And if the pins responsible for, say, one of the RAM channels Don’t make good contact with the board Well, bye bye half the RAM. Apart from that, it’s often said that the memory controllers on the engineering sample CPUs are especially picky when it comes to speed and timings of the RAM.
I’ve spent pretty much the whole evening that day re-flashing the BIOS with different options, trying to swap my RAM sticks, trying to boot with a single RAM stick in different slots, and so on, and so forth. At the end, the issue was much easier to solve than you’d think. These RAM sticks are unregistered ECC modules. Unlike the registered ECC RAM, you should be able to use these as regular non-ECC RAM even in a system that doesn’t have ECC support, and personally I’ve never really had an issue with them. However, with this system I kind of just had a hunch So I quickly pedaled to a nearby computer parts store, and got myself some non-ECC RAM to try out.
And what do you know – the system booted up right away And there we go! A 6-core 12-threads Xeon CPU in a Skylake motherboard. Now I think you can see that the process of getting a custom ‘mutant’ CPU to work is pretty involved. But at the same time, you could actually say that I was lucky! My motherboard had the right chipset The BIOS chip got detected right away, with no need to de-solder it from the board I had no memory channel issues, or other weird glitches And after replacing the memory, the system ran perfectly fine.
In fact, spoiler alert, by the time you’re watching this video, the machine will probably have around two weeks of uptime, with zero stability issues. Some people are definitely not as lucky, and some particular motherboard and CPU combos just flat out refuse to work. And then there are other people who experience blue screens of death, crashes, freezes, and other issues. And even though it worked out for me, needless to say, I definitely wouldn’t recommend this kind of a setup for any type of serious production use case.
Besides, at least in Germany, building a 13th gen system with an i3-13100 Which is more powerful than my Coffee Lake Xeon, and comes with a newer iGPU Is not even that much more expensive, so definitely do that if you can. But let’s get back to our frankenstein Coffee Lake CPU. How fast is it, exactly? In order to find that out, I’ve installed Windows 11 and ran some benchmarks. In Cinebench R23, our Xeon E-2176M scored 8240 points in the multi-threaded test Which puts it somewhere between i5-10500 and the i9-9980HK. Not bad!
In PassMark, we got 13523 points – which is actually quite a bit higher than this CPUs score on the passmark’s website. That score is probably more in line with a 45W version of the CPU. In the Blender Open Data Bechmark, the Xeon E-2176M scored 122 points, which is slightly higher than i3-12100, and similar to a Ryzen Pro 1700. So okay, what about hardware video decoding? If you’ve watched my M1 Mac server video, you probably saw how “well” the i3-6100 performed when it comes to Jellyfin playback. And with this new CPU, I can finally watch this 4K HEVC HDR rip of Dune with no stuttering whatsoever, and even skipping around doesn’t take that much time. The average transcoding speed seems to be around 53 FPS, which is nice.
For comparison, my i3-6100 manages 18 FPS, and also unfortunately doesn’t come with support for HDR tone mapping. Which means that on a SDR display, the HDR content is gonna look bleak and washed out. I also tested my Jasper Lake board, which I’m gonna talk about in one of the next videos This one comes with an 11th gen Intel GPU, which also manages around 51FPS with no HDR mapping.
Pretty impressive for such a low power CPU. Sadly, just like the i3-6100, the Jasper Lake CPUs also don’t support the VPP tone mapping functionality. Enabling the software tone mapping brings the FPS down to around 36. Moving on to Handbrake, transcoding this 140 megabit 4K H264 clip from larmoire.info
using the QSV H.265 preset took 23 seconds on the Xeon E-2176M, with an average speed of 46 FPS. Unfortunately, I don’t have that many points of reference when it comes to Handbrake, so I asked my amazing Patrons for help, and some people were nice enough to benchmark their GPUs with the same source file and Handbrake preset So thank you a lot, guys So what about power efficiency? Since it’s a laptop CPU, surely it will consume less than a desktop one, right? And well, at idle, the E-2176M is at least as efficient as my 6100. According to powertop, it goes as low as C7, whereas the i3-6100 only went to C6. However, that doesn’t seem to have any influence on the actual idle power consumption.
In both cases, the entire system, with a 6-port SATA controller, 4 hard drives, five SSDs, and a 10 gigabit Intel networking card, consumed anywhere between 13 and 19W at idle. If you want to know how I manage to make my builds so power efficient Check out this video right here. When it comes to consumption under load, during the benchmarks, the Xeon E-2176M consumed as much as 110W. Which is a lot – and without a separate small fan over the VRMs, this particular motherboard would actually throttle the CPU under full load. I’ve monitored the power consumption of my home server over time, with the Xeon E-2176M installed, and on average, with all the ups and downs, it still comes to around 21W, which is acceptable.
However, if you have limited cooling or just dont want your system to potentially draw hundreds of watts at load, you can still undervolt the CPU and set the power limit to something like 35W Which is basically what the T-series Intel CPUs like i5-9600T are limited to from the factory. You might think that the CPU performance scales linearly... You might think that the CPU performance scales linearly with the power draw You cut your TDP in half – you sacrifice half your performance, right? To test that, I re-ran the benchmarks with a minus 125mV undervolt and different power limit settings, and here are the results. As you can see, at 35W TDP we still get around 74% of the initial performance at less than a third of the power consumption, which is actually pretty cool. In this case, you’re getting a better performance than something like i7-9700T, but at half the used price.
At 45W, we’re looking at 80% of the initial performance at only 40% of the power consumption And at 65W, you’re still getting 89% of the full performance, even after reducing the full load power consumption by 45W. So if you’re building an ultra small form factor machine with limited cooling, or maybe event want to go with passive cooling decreasing your power limit is definitely an option. So, what do I think about this upgrade? Would I recommend running a “mutant” CPU from AliExpress in your home server? Of course not. Not only does it involve a relatively complicated installation process, it also comes with potential stability issues Which, in case of a home server that should be able to run for months without rebooting or shutting down – is especially bad.
I personally just wanted to try out this weird janky CPU and see how it performs in my home server. I took my chances and yes – it works, and it works way better than the CPU it replaced. And of course, none of that would be possible without my dear Patrons: