Tensor Chip Weird Chip Configuration

A lot of articles are very confused by rumors of Google's new Tensor SoC's configuration. Namely, that it is rumored to have 2 very powerful cores, 4 very typical efficiency cores but then 2 mid range cores that are a full 2 generations old. Whereas most phones have a 1 large, 3 medium and 4 small core split with all cores being from the same generation.

And, if true, it is weird simply because no one has done it before. The complaint being that the older cores are less efficient and less powerful than the more modern variations.

The first problem, and I need to get it out of the way, is that none of this is confirmed.

The second problem however is that there may be 2 very good reasons for this; real world value and cost.

Obviously if the bulk of the work takes place on the medium cores then yes, using slower, more power hungry cores is going to come back to bite you. However, if it turns out that the medium cores aren't needed as much, then it may pay off.  

In short, I don't know how surprised I would be if the rumors turned out to be true.

The longer version of the story is this. I don't know what typical SoC processor utilization looks like. And, I doubt many of the people critiquing the decision do either. But, here is what I can say... while it definitely sounds like a compromise. On paper, it may actually make a lot of sense as the right place to make that compromise.

Here is the thing... most modern smartphones including Android ones limit what a background process can do and how often it can do it. In essence... background processes are largely going to find themselves limited to the 4 little cores anyway, and won't be using them all that often either. So, what really matters is what the foreground process and OS are doing and how good the system is at managing which cores are being used by those. 

While applications are generally getting better at being multi-threaded, this does NOT mean that applications are generally getting to a point where they can evenly distribute their load across all available cores and threads. In fact, aside from benchmarks and certain niche scenarios it is typically hard to fabricate real world use cases that do anything approaching this. Most things that a program needs to do simply cannot be broken up this way.

As a result, you will likely find that in most cases there is only one thread which need to consume a lot of CPU power and the rest of the parallel work can often take place on much lower powered cores without holding anything up.

I actually suspect that the real world usage will line up quite well with the configuration Google has chosen. When 1 big and 4 little cores aren't enough, it is likely because there is either another completely separate task running which would benefit from the other large core, or some other completely separate task off the main thread running which, again, would benefit more from the big core. 

If those tasks were relegated to medium cores, they might take longer to run, and that might force more threads to be needed which may in turn utilize even more medium cores. 

Again, I don't know what the real world data from Google says. But, it seems possible that by doubling the number of large cores, and by being a bit better with core management that the medium cores may end up not being used most of the time.

And perhaps thread management is part of where the new AI will come in to help the system optimize CPU utilization.

Of course, it is also a possibility that they made a huge mistake and this compromise will serious hamper the chip as a flagship competitor. But, with the all of the concessions smartphones make to boost battery life by limiting everything except the OS and foreground app, I have a hard time believing that the 2 medium cores will get enough usage that their drawbacks will have much impact.

It makes a lot of sense to have the latest tech in the big and little cores. The little cores are there for efficiency and each new generation gets a bit more efficient. The big cores are there for performance, and each new generation gets a bit faster. But, the mediums cores already exist as a compromise. They are just there for when the big cores are too busy and the little cores can't handle the load needed. 

So, as I said at the beginning... unless the majority of the work takes place on those 2 medium cores... it makes sense to make the compromises there if you feel you need to compromise for some savings.

I'm sure the benchmarks won't do Google any favors. Those are there to stress the internals and any weakness will show. But, I think that real world tests will show the decision to be a competent one. 

Comments

Popular Posts