My Laptop (6 Months Later)

PC Needed#

In May 2023 I bought a new laptop.

When I resignated from my job, I had to return the company PC that I was using even for personal stuff since my old pc broke a few months prior.

My old PC was a 2016 Surface with an Intel i5 and 4GB of RAM. It was not performant and moreover it was bent and with a broken screen. The results of a bad drop in early 2017 😅

It was not the best PC, but it was the one I used throughout my CS studies. Its hardware limitation brought me to discover Linux and forced me to focus on minimizing my OS footprint in order to complete the work I needed to. You know, using Android Studio or virtualizing any kind of machine is impossible if you are using Windows with 4GB of RAM.

Since my Surface reached its end-of-life, it was the time to get a new PC and this time I wanted a beast of a machine.

Main Hardware Specs#

  • CPU: 13th Gen Intel i9-13900HX @ 5.2Ghz (5.4GHz Turbo)
  • GPU: NVIDIA GeForce RTX 4060 Max-Q / Mobile 8 GB VRAM
  • RAM: 64GB DDR5 Corsair 4800MHz
  • SSD x 2: Samsung 990 Pro M.2 2 TB
  • Display: 16’ QHD 240Hz sRGB 100% LED Widescreen (2560x1600) 16:10 ratio
  • Battery: 99Wh
  • Liquid Cooling: On a laptop? 🤔

The CPU#

The Intel i9-13900HX has 8 Performance-Cores and 16 Efficient-Cores offering a 24 cores / 32 threads system. It is one of the most powerful CPU in 2023. Pretty good for a laptop.

But all this power needs energy. More about that in the Battery section.

I chose this CPU specifically because I needed a lot cores for virtualization. I didn’t want any limitation on what I could test on my machine.

You want to simulate an AD environment with 6 machines? You can do that!

You want to test your app simultaneously on Android, iOS, Windows, Linux? No Problem!

And clearly all this with KVM 😏 and not Virtualbox!

Here a video of me powering on an Android emulator, a Kali machine and a Windows machine.

The CPU wasn’t stressed at all. I could have started many more VMs but the video was already 5 minutes long and there was no point on keeping starting machines.

IOMMU

This CPU support IOMMU, called Virtualization Technology for Directed I/O (VT-d) by Intel. This technology allows a virtual machine to have direct access to a specific hardware device, a technology called PCI Passthrough. This technology has been around for a decade but the tricky part is that your motherboard needs to support it.

As I understand, the i9-13900HX has a good PCI Isolation. Check this output of the available IOMMU groups.

A good PCI group isolation allows us to pass most of the devices individually. For example, if two USB port belong to the same PCI group, they need to be both passed to the VM or the PCI passthrough doesn’t work.

This is a useful feature.

For example, on my second SSD I have Windows installed. I don’t use it much, but it’s there.

Even though I can dual boot into it, I usually use a VM I configured with a PCI passthrough of the second SSD. I can use that Windows Installation both as a VM under Linux or directly boot into it.

Check the video in the next section for an example of it.

The GPU#

I chose the NVIDA RTX4060 because it was perfect for my budget and requirementes. Having never owned a discrete GPU, 8GB of GDDR6 seemed enough for me, but lately I noticed that VRAM is never enough if you start experimenting with AI models.

I chose NVIDIA over AMD because of the popularity of CUDA over OpenCL in deep learning and machine learning libraries. Not that I use them much, but I wanted the feature in case I needed it.

PCI Passthrough

Many recent laptops have something called MUX switch, a device that allows to switch dinamically the graphic card in use. This new feature allows you to pass your discrete graphic card directly to a VM. You could use your NVIDIA GPU in a Windows VM for video editing or gaming.

The BlandManStudios Youtube channel has many videos on the topic.

My PC has a MUX switch. In the future I would like to make a post/video about making it work with Wayland, because I inially had some problems with it.

Here some timestamps for the next video where I demo some games using the GPU passthrough:

  • 00:00 Configuration file for assigning specific cores to the Windows VM. Powering on the VM
  • 02:00 Valley benchmark. IDK why it runs at 60 FPS max. Some apps go faster, some caps at 60 FPS.
  • 04:00 Quick Demo with The Witcher 3 w/ Ultra+ Graphics
  • 05:40 Quick Demo with Deus Ex w/ Ultra Graphics
  • 08:30 Demo Neofetch + The Witcher on a Small Window 😂😂
  • 09:30 Demo of browser hardware acceleration with High Resolution video on Youtube

Hashcat

I have used hashcat only on simple CTF bruteforce attacks and not on something real yet.

But the time has come for a real test: I forgot the password of an old gpg key 🤦‍♂️ I vaguely remember the password, but I can’t seems to find the right combination. I guess I can write a post about it after I’m done with that.

For the output of the hashchat benchmark run on my system, check here.

Stable Diffusion and AI

In the last few weeks I experimented a bit with AI models. I tried a few language models, but mostly used Stable Diffusion.

I’m not an expert on using it, but had fun generating wallpapers and presentation backgrounds. Stable Diffusion

The RAM#

Even though my CPU supports RAM of higher speed, there wasn’t an available option better than the DDR5 Corsair 4800MHz 64GB. I don’t think I would have noticed any difference if my PC had faster memory. It is already very fast.

The SSD#

I don’t have much to say about the Samsung 990 Pro M.2 SSDs. They do their work even if faster SSDs exist and they have both 2TB of space. I currently have one disk with my Arch installation and one disk with a Windows installation:

NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
zram0       253:0    0    4G  0 disk  [SWAP]
nvme0n1     259:0    0  1.8T  0 disk  
├─nvme0n1p1 259:2    0  511M  0 part  /boot
└─nvme0n1p2 259:3    0  1.8T  0 part  
  └─luksdev 254:0    0  1.8T  0 crypt /
nvme1n1     259:1    0  1.8T  0 disk  
├─nvme1n1p1 259:4    0  100M  0 part  
├─nvme1n1p2 259:5    0   16M  0 part  
├─nvme1n1p3 259:6    0  1.8T  0 part  
└─nvme1n1p4 259:7    0  674M  0 part 

Yes, I have big root partition. I don’t know if you agree, but it’s good enough for my desktop PC 🤷🏻‍♂️.

The Display#

I had never experienced more than 60Hz in my life other than on a phone. My display is 240Hz, so now I understand what smoothness is. Images are crisp and the screen opaqueness prevents reflections. Love it!

I’m sure Apple’s screen are better, but I don’t have nothing bad to say about mine.

Contrary to popular belief (and my expectations), I didn’t have problems with xhdpi, high refresh rate or screen tearing on Linux. I guess those are the advantages of using Wayland.

The Battery#

The battery has a 99Wh capacity. Pretty big, but this is not an ARM or low core machine. It needs power!

If you want more precise measurements, check Jarrod’s review of the computer. From my experience, the battery lasts 4/5 hours with normal/light work and 2/3 hours if you are virtualizing Windows or doing other demanding work.

I don’t know how well Linux manages the power saving and I haven’t tried how long it lasts with Windows. I don’t know which OS would last longer. The fact that on Linux I almost never hear the cooling fans start is a clue that Linux may last longer.

The short lasting battery would be a problem for many users, but I don’t mind it. I knew the battery wouldn’t last long on this kind of machine. Moreover, I’ve always owned PCs whose battery lasted at most one and half hours, so 4 hours is a lot for me 😅

Regardless, I rarely use it on battery power.

I don’t know if it’s caused by the permament charging, but my battery already appear degraded. Linux says that its health is at 96%. I guess in a few years I’ll have to change it.

Verdict on battery/energy: not the best, but good enough.

Liquid Cooling#

When I read ‘Liquid Cooled’ on the PC model webpage I was a bit skeptical and didn’t actually interest me. But since I was already spending a lot of money I said:

Fuck it! Why don’t I just risk leaking water into my expensive PC? Let’s also buy the liquid cooler!

And so I did.

I don’t use the water cooling often. I use it when stressing the GPU for a long time: playing games, rendering videos, generating images with AI.

But why specifically the GPU? What about the CPU?

As you can see from the video I linked earlier, the water pipes cool down only the GPU and not the CPU. The liquid cooling is only useful for the graphic card. A bit of a bummer, but I guess it is what it is.

Beside that, it works great. In my own experience, if the GPU stabilizes at 80 °C under a specific workload, if water cooled it stabilizes at 55 °C. Maybe if I had a more powerful and power-hungry GPU (like a RTX4090) it would have a greater effect.

I don’t know if there is a performance boost while water cooled, but even if there is not, I think the GPU would be safer in running at an average lower temperature.

I leaked water from the cooler only once because of a badly attached connector. If you are careful though, there should never be leaks.

Watch the next video for a demo of how the GPU temperature change with and without liquid cooling while using Stable Diffusion and playing games in a VM.

  • 00:00 The Witcher 3 at Ultra+ Graphics in a VM with no liquid cooling. It can get hot. I think it can easily get to 85-90 °C, but I enabled liquid cooling when it got to 80 °C. I don’t like to stress the GPU.
  • 02:30 Enabled Liquid cooling. The Witcher runs in the 60-65 °C range now.
  • 05:50 Pass the GPU to the host and start Stable Diffusion. Stable Diffusion works with GPU in the 45-55 °C range if water cooled.
  • 08:50 Disabled liquid cooling. Now the GPU can get hotter than 80 °C.
  • 09:45 Re-enabled liquid cooling and generated some other random images

The liquid cooling tower costs around 140$.

Manifacturer#

I bought my PC on PC Specialist, a UK based company. I’ve known them for a few years. Some people I know bought various PCs from them and they seemed satisfied, so I gave them a try.

My model is listed as Recoil 16' on PC Specialist’s site, but it seems that this kind of PC is made by a single Hong Kong manifacturer and then sold by different companies in different regions. The Honk Kong company is called Tong Fang and the PC model is GM6PX0X. In America this model is known as XMG NEO 16'.

So I don’t know how to actually refer to this model.

I discovered a good thing a couple months after my purchase.

There is a Germany-based company called Tuxedo that sells the same PC I have, but with Linux! They wrote the keyboard RGB and liquid cooler drivers for Linux for their own line of computers. While PC Specialist gave no warranty on components compatibility on Linux, Tuxedo saved the day.

Since their software is open source, I can now have Tuxedo Control Center(open source) on my PC and I can use my liquid cooler even on Linux.

Arch Linux#

ArchUpdate

Prior to buying this PC I hadn’t used Arch since 2018. On my main laptop I used Manjaro in the 2019-2022 period and Proxmox in 2022-2023.

Yeah, I used Proxmox on a laptop 🐒 (I sometimes miss all the virtualization simplifications it provided).

I haven’t configured much of my current Arch installation. I don’t want to rice it like I used to. Maybe that’s because I spent too much time thinkering with my installation when I was forced by hardware limitations.

I tried the new Arch installation helper for the first time and since it installed everything without problem, I settled for KDE Plasma and never touched it since.

This is my neofetch output:

                  .o+`                   --------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: GM6PX0X Standard 
               `+oooooo:                 Kernel: 6.6.7-arch1-1 
               -+oooooo+:                Uptime: 14 hours, 20 mins 
             `/:-:++oooo+:               Packages: 2054 (pacman), 14 (flatpak) 
            `/++++/+++++++:              Shell: bash 5.2.21 
           `/++++++++++++++:             Resolution: 2560x1600 
          `/+++ooooooooooooo/`           DE: Plasma 5.27.10 
         ./ooosssso++osssssso+`          WM: kwin 
        .oossssso-````/ossssss+`         Theme: [Plasma], Breeze [GTK3] 
       -osssssso.      :ssssssso.        Icons: [Plasma], candy-icons [GTK2/3] 
      :osssssss/        osssso+++.       Terminal: konsole 
     /ossssssss/        +ssssooo/-       Terminal Font: Iosevka NFM 20 
   `/ossssso+/:-        -:/+osssso+-     CPU: 13th Gen Intel i9-13900HX (32) @ 5.200GHz 
  `+sso+:-`                 `.-/+oso:    GPU: NVIDIA GeForce RTX 4060 Max-Q / Mobile 
 `++:.                           `-/+/   GPU: Intel Raptor Lake-S UHD Graphics 
 .`                                 `/   Memory: 8800MiB / 64037MiB 

But, wait… No thinkering? No ricing? Why Arch, then?

Mostly the AUR. It makes installing packages not included in the main repositories so much quicker.

Another reason for Arch is that the repositories contains the latest version of packages. I usually didn’t have problems with older version of programs when using a stable distribution. Though as soon as I started studying or developing in a new technology, a newer version of program or library was needed. And that sometimes caused conflicts with the package manager or other program’s versions.

The downside of a bleeding-edge distro are the frequent updates. If you have CUDA drivers installed, be prepared to download many GB of NVIDIA updates monthly 😭.

Arch is a rolling distribution. A reinstall of the system when a distro version reaches its EOL is not needed. I realized that when I needed to install a new version of Ubuntu on an old laptop. I used rolling distribution for so long that I forgot that this was a thing.

Price#

The total price was €2855.95, but that includes a €80 ASUS C3 webcam, a €230 insurance policy and the €140 liquid cooling system. If we consider just the PC, its price was around €2400. I think it is a very good deal for the specs offered. There are some premium PCs with same specs and better build material, but they usually cost thousands $$$ more.

Conclusion#

Even if this PC has some flaws like the battery I’m very satisfied with it. For a very convenient price I have an excellent PC.

Never in the last 6 month I said:

Well… can’t do that because of my pc.

and I never experienced slowness of the system. Something I never though I would experience in my life lol

Resources#

  • BlandManStudios - This guy has many videos on using VFIO/IOMMU with KVM. Useful for guidance and examples.
  • Jarrod’s Tech review - Jarrod made a review of this PC, but he’s using the new generation liquid cooler. I have the older generation. Watch the video for high quality footage and gaming benchmarks. The PC used in the video has a more powerful GPU though.
  • PC Specialist - The shop where I bought the laptop. I have also used their customer support once and they helped me. I guess am satisfied with them.