Question Overclocking the GPU for GPD MicroPC and Chuwi Hi10X (Intel Celeron N4100/N4120)

Sep 20, 2021
5
0
10
Hello. Please help with overclocking the GPU for GPD MicroPC and Chuwi Hi10X (Intel Celeron N4100 and N4120), Intel made a limitation of 8.5 watts per GPU.

Google Translate is used.

8.5 watts = 700 Mhz.

GPD MicroPC vs GPD Win 2 performance comparsion

GPD MicroPC is 2 times weaker than GPD Win 2? Why? After all, the TDP of their processors is the same, both have a maximum TDP of 15 watts, both are on the 14 nm process technology, the processors were released with a difference of 1 year.

In fact, the Intel Celeron N4100 is the same as the Intel Core m3-7Y30, but the Celeron has reduced the performance of the video card and blocked undervolting. These processors have almost the same performance in Cinebench CPU, but differ 2 times in Cinebench OpenGL.

How to bypass the CPU power limit
How to bypass the GPU power limit

My overclocking commands:

Code:
Rw.exe /Min /Nologo /Stdout /Command=”W16 0xFED170A8 0000″
Rw.exe /Min /Nologo /Stdout /Command=”W16 0xFED170AC 0000″
Rw.exe /Min /Nologo /Stdout /Command=”WRMSR 0x610 0x0 0x00000000″

I tried tweaks from these sites, but all I was able to achieve was to remove the limit on the total TDP of the entire processor. When I tried to remove the GPU limitation, a blue screen appeared (tried MSR 640 and 638).

GPD Win 2 has a graphics processing unit (GPU) overclocked to 14 watts in FurMark. And the central processing unit (CPU) also overclocks to 14 watts in the AIDA64 stress test.

The GPD MicroPC has a central processing unit (CPU) can overclock up to 14 watts, but the graphics (GPU) never overclocks above 8.5 watts, no matter what I do.

I tried ThrottleStop, but the only thing that he could do was to control the TDP limit for the entire processor, but GPU remained limited and slow.

Intel XTU does not work on Celeron processors.

How to overcome this problem? Please help who understands. I want to remove this limitation and get the same performance as on GPD Win 2.

Also I've tried using the IGPU=X setting in the ThrottleStop ini file, but it doesn't do anything.

I tested the GPU load with a complete lack of CPU load, one by one.
 
Last edited:
Hello again. I googled for a long time, and found 2 people with a similar purpose, one of them provided a lot of useful information. But I don’t understand anything about it.

I need help too.

----------------------------------------------------
Intel HD500 Overclock Apollo Lake Soc with N3450. Is it possible? change ratio
02-19-2018, 14:12

Hi, i have many dubts about the possibility to change frequency at intel HD500: i have started reading intel datasheet for Apollo Lake and under chapter P-unit, I've noticed that is possible to read\write the ratio power of GPU (RW), page 1864 volume2.
I also noticed that with old video driver (before Feb 2018) GPU can go up to 700MHz only when cpu load is lower than full stress; while with the newer gpu driver the gpu goes up to 450MHz with aida stress test so the newer driver manages in a different way the GPU ratio directly from windows.
GT Hardware P-state control request is located MEM register 32bit offset 8068h (P_CR_GT_HWP_REQ_0_2_0_GTTMMADR)
and 7-0bit are RW and include Quality of service P-state: the gt driver programs this to definite a desidered performance floor. This floor is useful as a hint to power and thermal control algorithms to balance system resources appropriately in order to ensure a minimum graphics performance floor. Described in 16.67MHz reference clock units,e.g. a ratio of 24 results in a clock frequency of 400MHz.
Does any know how to access to this memory part? I'm using Rweverything program but i can understand how to insert the correct address.
I belive should calculate address mixing my data,like reported in other intel document, where Memory address is given by PCI Express Configuration Register (ex. F0000000h)+ Bus Number (ex.15h)+ Device Number(ex.00h)+ Function Number (ex.05h)+ Register Offset (ex.84h)...total memory address F1505084h.
So if VGA is Bus 00, Device 02, Function 00 how can access to MEM register?
vga-png.220713
----------------------------------------------------

----------------------------------------------------
Was wondering if someone could provide a little help with a project I am working on. I have a system with a Gemini Lake N4100 in it that I have done a fan mod to it that keeps it very cool. I already removed the TDP time limits and increased the Watts and now both the GPU and CPU are running at 700 mhz and 2400 mhz respectively with no throttling. Had to find an extra place outside of the MSR where it also had a throttle set but got that removed finally. After going through the Intel papers and doing some research, it appears that the GPU speeds are writable and can be increased. With what I am using it for this would be a big boost as I have a decent amount of CPU headroom but would love to see if I could get the GPU speed increased a bit. I am not sure if it could be accessed via a memory dump in RW or in MMIO, and have no idea how to enter the correct address or offsets in the Intel papers in RW. Here is a quote from a forum where a guy basically was trying to do the same thing with the Apollo Lake SOC which is basically the same silicon as mine.

Thank you for your answer. I'm still looking for how to access to GT P-unit register (intel datasheet for Apollo Lake and under chapter P-unit, I've noticed that is possible to read\write the ratio power of GPU (RW), page 1864 volume2)
GT Hardware P-state control request is located MEM register 32bit offset 8068h (P_CR_GT_HWP_REQ_0_2_0_GTTMMADR)
and 7-0bit are RW and include Quality of service P-state: the gt driver programs this to definite a desidered performance floor. This floor is useful as a hint to power and thermal control algorithms to balance system resources appropriately in order to ensure a minimum graphics performance floor. Described in 16.67MHz reference clock units,e.g. a ratio of 24 results in a clock frequency of 400MHz.
Does any know how to access to this memory part? I'm using Rweverything program but i can understand how to insert the correct address.
I belive should calculate address mixing my data,like reported in other intel document, where Memory address is given by PCI Express Configuration Register (ex. F0000000h)+ Bus Number (ex.15h)+ Device Number(ex.00h)+ Function Number (ex.05h)+ Register Offset (ex.84h)...total memory address F1505084h.
So if VGA is Bus 00, Device 02, Function 00 how can access to MEM register?

Not sure if this is the exact place that I would need to change it, I guess there would be maybe a few different ways to do it. But to me removing the maximum MHZ limit and increasing the multiplier might be the way to do it, or simply increasing the multiplier on its on so it could go over the 700 mhz limit. Already seen huge improvements in performance in the programs I am running, but as they tax the gpu to 100% it would be nice if I could use some of the headroom to bump up the mhz a bit more on that. Not sure if it's possible or not, but any help would be greatly appreciated.
----------------------------------------------------

----------------------------------------------------
Does anyone have any idea why I have getting all 0s in RW for memory addresses FED10000 and FED15900? Again I am on a Intel Gemini Lake N4100 cpu with 8 gigs of ram, can't understand why they are not showing up! EDIT I am guessing the memory is mapped completely differently here than the rest of the Intel family, anyone got any clue where these might be?
untitled-jpg.220720
----------------------------------------------------
 
Due to the rise in prices for video cards and electronics, I am not able to buy a powerful PC.

Plus, there are very few GPD MicroPC counterparts in such a small size with so many USB ports and touchpad, at a good price. All analogs cost at least $ 1000, and at least 2 times larger in size.

----------------------------------------------------

Performance improvement potential of 50% to 70%. The 15w TDP package has 4-6 watts of headroom for graphics performance.

For example: 8.5w + 5w = 13.5w for GPU. And the remainder of 3-4 watts for the CPU (13.5w + 4w = 17.5w total).

GPD Win 2 at the maximum load on the CPU and GPU simultaneously reached 18 watts of power consumption.

He broke the 15w limit by a couple of points.

With GPD MicroPC, this also happens if all components are loaded at the same time.

Therefore, there is a huge headroom for the GPU.

I should try to catch up with GPD Win 2 in performance as soon as I figure out how to do it.

Please don't tell me that this is useless, I just want to try it to improve performance at least to the level of UHD Graphics 610.
 
For now, I can only say that I have no idea what base address should be used for offset 8068. In Intel Celeron N4100 only used FED170 addresses (here there are TDP and DPTF limits). I checked all the bits in this zone, but I couldn't find anything.

I added 8068 to various adresses and here are the results:
FED00000 - everything around is filled with FF (emptiness)
FED08068 (FED00000 + 8068) - everything around is filled with FF (emptiness)
FED10000 - everything around is filled with FF (emptiness)
FED18068 (FED10000 + 8068) - everything around is filled with FF (emptiness)
FED15000 - everything around is filled with FF (emptiness)
FED1D068 (FED15000 + 8068) - everything around is filled with FF (emptiness)
FED17000 - I checked this address and all the bits that were on the nearest lines, but they have a different structure, they all do not fit
FED1F068 (FED17000 + 8068) - everything around is filled with FF (emptiness)
FEE001B8 - everything around is filled with FF (emptiness)
FEE08220 (FEE001B8 + 8068) - everything around is filled with FF (emptiness)

Also, I checked all bits from address FED00000 to FF300000. I toggle the Intel Graphics Power Plan setting and checked if the bit was changing or not. And I do this with every bit different from FF and 00. But none of the checked bits changed.

There is a suspicion that the Intel Graphics Power Plan is controlling the very limit that I am looking for.

img_20211014_195343-jpg.220951
img_20211014_213128-jpg.220952
img_20211014_213843-jpg.220953


Or is it in MSR? How can I test all MSR registers without BSOD? BSOD appears if I try to read MSR that is not in use.

The rest of the details and tests I published in the correspondence.

If you are an expert who wants to help me, write about it here, and I will add you to a personal correspondence on this site. Several people can participate in the correspondence.

I am always ready to pay for the time spent.
 
I checked all MSRs, but none of them are used to regulate GPU power. In addition, the MSR 0x640 was unavailable, it was missing from the list after being dumped by MSRdump.exe. Either Intel is no longer using this MSR, or have they blocked it in some way?

After that, I was able to catch a process that started every time the Intel Graphics power plan was switched. Process Hacker helped me with this.

This svchost.exe process uses the umpo.dll file, and these system services are also associated with this process:
BrokerInfrastructure
DconLaunch
Power
SystemEventBroker

And all this ultimately refers to the acpipmi.sys file.

This is an ACPI PMI device, it is located along the ACPI\ACPI000D\PMI path, and is responsible for power management of various PC components.

powermeter-1-png.223676


But since I'm new to all this, I can't figure out where this ACPI PMI is in memory. And how to edit this memory.

Here's the information I could find on Google about the UMPO service:
User-Mode Power Service
Overview of the Power Metering and Budgeting Infrastructure
ACPI Power Meter Interface
Overview of the ACPI 4.0 Power Metering Objects
Power metering
pmi.h header
IOCTL_PMI_SET_CONFIGURATION IOCTL (pmi.h)
Power Meter Interface
Ioctl.cpp