By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), March 21, 2021 2:38 pm
Room: Moderated Discussions
wumpus (wumpus.delete.delete@this.this.lost.in.a.hole) on March 21, 2021 12:24 pm wrote:
>
> Your best (only) bet would be to forget about a new architecture for general purpose programming
> and try to optimize some niche with a market big enough to support it. Best guess is machine learning,
I think that's true, but it's a bit of a cop-out. It's not replacing - or even really modifying - the core CPU architecture, it's just adding logic on the side.
It might be augmenting your load it to the point where 99% of the silicon is used for ML, but it doesn't make that core GP CPU ISA go away. It's still there, doing the management functionality and controlling the beast. No different from how a GPU doesn't replace a CPU, and all those GPU instruction sets haven't really had any effect on core CPU architecture, and how having a fast GPU requires a fast CPU to feed it.
I doubt it will even make the GP GPU shrink. Generally, the heavier lifting you do with a coprocessor, the higher the management requirements end up being. This is not just for games and GPU's - my go-to-example was people complain about one of the Xeon Phi HPC computers to me about how bad the NFS performance was. Because that's what they used to actually feed the monster. My response was to basically say "what do you expect, when your GP CPU side is bad?"
So the general-purpose problems don't go away just because you then have a very heavy specialized load. It doesn't even tend to make the GP CPU less important.
You don't want your ML engine managing your memory layout or your TCP stack, or your filesystem. "But my ML engine won't even have virtual memory or a filesystem - it just does everything in onboard memory", I hear you say. But that doesn't change the basic issue, and you'll need some other thing that transfers all the data the right way and into the right position.
Linus
>
> Your best (only) bet would be to forget about a new architecture for general purpose programming
> and try to optimize some niche with a market big enough to support it. Best guess is machine learning,
I think that's true, but it's a bit of a cop-out. It's not replacing - or even really modifying - the core CPU architecture, it's just adding logic on the side.
It might be augmenting your load it to the point where 99% of the silicon is used for ML, but it doesn't make that core GP CPU ISA go away. It's still there, doing the management functionality and controlling the beast. No different from how a GPU doesn't replace a CPU, and all those GPU instruction sets haven't really had any effect on core CPU architecture, and how having a fast GPU requires a fast CPU to feed it.
I doubt it will even make the GP GPU shrink. Generally, the heavier lifting you do with a coprocessor, the higher the management requirements end up being. This is not just for games and GPU's - my go-to-example was people complain about one of the Xeon Phi HPC computers to me about how bad the NFS performance was. Because that's what they used to actually feed the monster. My response was to basically say "what do you expect, when your GP CPU side is bad?"
So the general-purpose problems don't go away just because you then have a very heavy specialized load. It doesn't even tend to make the GP CPU less important.
You don't want your ML engine managing your memory layout or your TCP stack, or your filesystem. "But my ML engine won't even have virtual memory or a filesystem - it just does everything in onboard memory", I hear you say. But that doesn't change the basic issue, and you'll need some other thing that transfers all the data the right way and into the right position.
Linus