Upgrading My Home Server With a Mystery Chinese CPU

Show video

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:

2023-04-18

Show video