[Google Pixel 6 Pro] Freak07:
Hello everyone,

This thread will be used as a hub where I share some discoveries/observations which I stumbled upon mostly during working on my kernel projects.

I´ll clone the same thread over to the Pixel 7 forum as well. So without much further ado let´s just dive right into it.

A year ago everyone was excited for the Google SoC called Tensor 1 called GS101. One year later there is Tensor 2 called GS201.

I suggest to read about the differences, updated modem, ISP, TPU and GPU in various tech related articles.

Here´s a table so everyone gets up to speed on cores used, max freqs and other details:

View attachment 5744229

But how does that translate on the devices?

There were quite a few rumors before the actual release of the Tensor 2 SoC being manufactured on 4nm Samsung node instead of 5nm. However that was just wild speculation and unfortunately turned out to be not accurate. Tensor G2 is still manufactured in the 5nm process as confirmed by Google. This was quite a negative surprise to myself, as I don´t have good experiences from SD888 that´s also being manufactured in Samsung 5nm node and is quite a hot chip. While the switch to Samsung 4nm node, wasn´t all that great either (check sd8 gen1 on samsung 4nm vs sd8+ gen1 on tsmc 4nm) it would still have been an improvement.

While I was very excited for the Tensor G1 when the Pixel 6 devices launched, that excitement ebbed down the work I worked on the Pixel 6 series. The more I learned about the source, the more I stumbled upon Exynos driver over exynos driver, some are just left exactly like on Exynos device, some were "re-branded" by Google. Some Google did customize, but most of the drivers are just very much Exynos.

So all in all the following excerpt from Andrei Frumusanu´s article here sums it up pretty fitting:

The same is true for the Tensor 2, despite minor upgrades there. As I learned over the time, Tensor shares a lot of Exynos characteristics, one of those is performance vs thermals as hinted by in the linked Anandtech article. So let´s just jump into that first topic I want to cover.

I will cover more topics, those will also be probably interconnected to each other, but we have to start somewhere.

Thermals, Thermal Ceiling, Exynos Roots and Maximal Performance

To start things of: Thermals is a term that actually sums up a few mechanisms. Lets split this into two main areas.

The thermal ceiling (let´s call it that) that´s being implemented in the kernel, as the maximal temperature the SoC is allowed to be operated at.

The thermal-hal uses combined sensors, also virtual sensor, and restricts different subsystems, based on the temperature of those sensor. Those can be called skin temps, shell-temps, battery temperature, modem temperature etc.

First let´s explore the thermal ceiling on the two SoCs:

GS101 on Pixel 6 devices is allowed to be operated at 90°C. GS 201 on Pixel 7 devices raised the thermal ceiling by 10°C to 100°C.

If changes to the internal design allowed them to raise this, without further increasing heatup of the device, or if they just applied changes to the thermal-hal to better keep this in check I don´t know at this moment.

Let´s get back to the Exynos characterstics. I talked to a few other developers I met along that way with Exynos "experience". Exynos SoCs reach the thermal ceiling extremely quickly, as I learned. This means, the SoC can´t keep its max CPU freqs for more than a few seconds without touching the thermal ceiling and getting restricted. This is in a way also the case for other SoCs, but Exynos is very extreme in this regard. But it´s just the characteristics of the SoC, like previously mentioned.

That means in turn: The thermal ceiling is setting the maximal performance allowed, to a great extent. If the thermal ceiling is raised, the maximum performance can be held longer.

Here´s a demonstration of this:

Pixel 6 Pro in its default configuration running at 90°C temp ceiling:

New video by freak 07

photos.app.goo.gl

Pixel 6 Pro with temperature ceiling raised to 100°C, instead of 90°C running at Pixel 7 Pro clocks

New video by freak 07

photos.app.goo.gl

Pixel 7 Pro, with the default configuration of 100°C

New video by freak 07

photos.app.goo.gl

Now what´s interesting, the big cores get the hottest at the quickest rate. Once the ceiling is reached, the max performance drops, as maximal performance will be restricted by restrict max cpu freqs.

That´s the case after a few seconds on both SoCs, in typcial Exynos fashion.

Let´s make the next connection:

Although I´m not necessarily a friend of benchmark apps, how does that change the results of a CPU oriented benchmark like Geekbench you might ask yourself. There are other benchmarks, but I want to keep this simple for now.

The answer is: The Pixel 6 Pro with GS101 gets pretty close to the results of the Pixel 7 Pro with GS201.

So for comparisons sake:

On the left Pixel 6 Pro in its default configuration running at 90°C temp ceiling.

On the right Pixel 6 Pro with temperature ceiling raised to 100°C, instead of 90°C running at Pixel 7 Pro clocks.

The kernel used was the same, no changes to anything that could impact performance.

The left screenshot above was taken from the Pixel 7 Pro review from XDA, while the right one was taken on my Pixel 7 Pro running my kernel.

Please don´t start benchmark contests now, It´s just for comparisons sake.

It makes sense for single-core to be less impacted, as single core benchmarks don´t put as much thermal pressure on the SoC -> not touching the thermal ceiling as much and therefore no cutback are applied.

Geekbench applies a series of short benchmarks to the device. Usually not longer than 3-8 seconds, which is ideal for a SoC like the Tensor. Short bursts with max performance, so it can run "nearly" without touching the thermal ceiling.

If a benchmark is structured differently, like the CPU stress test you will see QCOM SoCs holding their max-freqs for minutes, instead of seconds.

Well that´s the first part. More to come. I hope everyone enjoyed this little writeup so far.

I wish everyone a nice evening.