Advertisement

Path of progression?

Started by July 17, 2024 09:35 PM
25 comments, last by Juliean 1 month, 3 weeks ago

JoeJ said:
So, assuming programming remains a thing and we're not all replaced by AI bots

Ask ChatGTP how many “r”s there are in the word “Strawberry", and I think that fear will sort itself out :D

JoeJ said:
Ifaik, you currently generate native x86 instructions. But assuming we get many ARM devices, and maybe RISC-V in ten years or who knows what, i guess such native approach becomes more and more unpractical in the future.

Yes, exactly, I generate x86_64 instructions directly. I mean, I wouldn't mind if there was some level of abstraction for this kind of stuff, preferably on the CPU itself (so we don't have to rely on libraries to the specific compilations). But I have not enough experience with RISC-V and ARM to really judge that 🙂 I do dread the day I have to add another architecture though, that would take a long fucking time xD

JoeJ said:
I assume we could generate something like Clang LLVM byte code instead x86 instructions, then use Clang as a library to compile that to native?

That's also a possibility, yes. I personally prefer using less external tools/libraries, for no particular reason :D Even if it's really inefficient - I spent like 6 months on the last iteration of the x64-JIT which could have been spent somewhere else. I just enjoy dealing with those type of low-level problems, what can I say, that's why son I even write my own engine in the first place :D

JoeJ said:
But if we did this on client, with all software not just scripts, Chip designers could change their instruction sets with every generation, like currently happening with GPUs. Which might be very helpful to counteract the stagnation on shrinking transistors.

I mean, we kind of already have that, with microcode, only that it's more hidden away and specific. As you probably know, x86 is not actually what's being executed on those type of CPUs at all anymore. Stuff like “test rax; jcc 15” are already fused into one op; registers are renamed all over the places… so what you are proposing would kind of just be a common format that all chips share, which would then replace the current ASM-code for those chips, and there would still be an internal “micro-code” instruction set per processor/manufecturer that is actually executed on the CPU?

Juliean said:
Ask ChatGTP how many “r”s there are in the word “Strawberry", and I think that fear will sort itself out :D

Hehe, i fear the living, not the dead. ; )

Juliean said:
I wouldn't mind if there was some level of abstraction for this kind of stuff, preferably on the CPU itself

But that's exactly what we could get rid off. x86 already has such translation layer to convert the ancient risc instructions to the modern, internal simd instructions. And we pay for this waste of silicon and its unavoidable inefficiency for decades.
(Afaik ARM has no such layer, but not sure)

And there is no extra dependency on a library for software developers. They need to use some compiler anyway, so the dependency is already there.

I want software to become independent from HW, but OS as well. For the latter we could replace native OS function calls with an API that abstracts Windows, Linux, MacOS, etc. Seems not hard to do either, if those guys can sit on a table and agree on something.

Regarding game engines, the major challenge is currently scalability. Game wants to run on an enthusiast monster PC, but also on a Steamdeck. On a PS5 and on a Switch.

In an ideal world, we would need to release just one version, which then runs an any current and future HW. Platform holders can implement their walled gardens and DRM crap on top of that, if they really want.

That's what i want. But what do i get?
For my next CPU, which will be an APU in a mini PC, i need to pay for an NPU. Which is not needed, since this APU will have a powerful iGPU which can run the AI crap faster than a NPU anyway. And personally i will not even use AI for anything.
Still, i need to pay for those NPU extra cooling pads just because Lisa thinks that 'everybody will want an AI-PC', which is wrong.

Looking at the achievements of the HW industry from the past 10 years:
Putting a iGPU on every CPU, but too weak to play games - waste of silicon.
Coming up with perf. vs. efficincy cores on one CPU, but only P-cores can do AVX512 - waste of silicon, they disable AVX afterwards by physically destroying the circuits on the chips they sell to people, lol
Convincing people to buy 2000$ 500W GPUs, just to play a single bad game with path tracing - waste of money and power
RDNA3 is so buggy, they insert streams of dozens of NOPs to your shaders, so results are guaranteed to be ready when they're needed.
CPUs so buggy they crash your game after they're half a year old - too bad, buy a new one

You know, i might agree to the saying that the games industry has a little crisis currently.
But the HW industry became much, much worse. No wonder they think AI is the next big thing. They surely could need some extra smartness.

I think we need open standards, so new competing companies can form to make better HW.
This means x86 has to die. That's sad, but it's just way too old.

Juliean said:
I just enjoy dealing with those type of low-level problems

I wonder: Why do we enjoy this?
Personally i know two levels of joy. One is just about making things work, which is a mild joy on daily work.
But there also is a rare and intense form of joy, which happens rarely, mainly when figuring something out, solving an open problem. I had this for example when i made realtime GI work for the first time, or when the ragdoll made it's first steps. I had the same feeling when i came up with catchy guitar riffs as a teen.
So i guess we have some reward mechanism in our brain. An experiment of nature, and it made us a creative and innovative species. Maybe it's the secret of our success.
Though, my dog looks excited too, once it figures out it has to push a button to get a cookie. : )

Advertisement

JoeJ said:
I want software to become independent from HW, but OS as well. For the latter we could replace native OS function calls with an API that abstracts Windows, Linux, MacOS, etc. Seems not hard to do either, if those guys can sit on a table and agree on something.

We can also already do that, there are libraries which aim to provide such a thing, for quite some time, like SDL. But what you want is for this to be done by the OS-manufacturers themselves, instead of relying on external APIs? Not gonna happen 🙂 Those companies already want to make people stick to their OS. Just look at how Microsoft pushes their Edge-browser, Apple has a total monopoly on their infrastructure… Unfortunately, the thought of those companies coming together to agree on something that makes users and developers not depend on any specific OS anymore is an utopian thought.

JoeJ said:
For my next CPU, which will be an APU in a mini PC, i need to pay for an NPU. Which is not needed, since this APU will have a powerful iGPU which can run the AI crap faster than a NPU anyway. And personally i will not even use AI for anything. Still, i need to pay for those NPU extra cooling pads just because Lisa thinks that 'everybody will want an AI-PC', which is wrong.

Unfortunately, that's also just the norm. For a long time, we've had to pay for all those crypto-related crap in GPUs, that most people never used. Now it's AI. I personally do use AI and plan on doing so as it becomes more advanced, but for now I've never had anything related to AI run on my own machine, so I do agree that it's kind of a waste, personally. If they had specialized chips that ran faster for that kind of thing, that you can buy if you want to, then it would be ok.

JoeJ said:
I think we need open standards, so new competing companies can form to make better HW.

New companies for CPUs? Also not gonna happen. Just look at how shitty the launch of Intels dedicated GPUs was. Their GPUs had such large-scale driver issues that rendered most games eigther physically incapable of running, or slow as a brick. They still have to patch this to this day. And Intel is a company with lots of experience manufacturing both HW and SW, they also had integrated GPUs for a while. The amount of complexity that is required just to make any type of GPU or CPU alongside the required firm/software is so great, the chance of a new company just getting started and developing something, let alone something that competes and pushes the envelope, is pretty slim. I guess an open standard would make it easier, but I sadly still don't see it happening.

JoeJ said:
I wonder: Why do we enjoy this?

Hm, an interesting philosophical question, but I've personally stopped wondering about this a while ago :D I just do what my brain thinks is rewarding, with just the right amount of discipline to keep moving forward, somewhat. Not having real deadlines or shareholders makes that a lot easier for game-dev as a hobby. But that's why also like it more than professionally working on games, because it's a lot more freeform, and you don't have to constantly consider going for the shortterm-fast path, building up technologycal debt due to deadlines etc…

JoeJ said:
But there also is a rare and intense form of joy, which happens rarely, mainly when figuring something out, solving an open problem.

I rarely work on really open problems, at least not that I know of, so for me the highest form of joy is simply having solutions and tools that are better than whats commonly available. Coming up with workflows thats 10 times faster than Unity and Unreal and all else, that's what I mainly strive for. I hate nothing more than having to do the same mindnumming tasks over and over again, so I mainly come up with solutions to remove or reduce those :D

JoeJ said:

Just one version, which then runs an any current and future HW. Platform holders can implement their walled gardens and DRM crap on top of that, if they really want.

That's what i want. But what do i get?
For my next CPU, which will be an APU in a mini PC, i need to pay for an NPU. Which is not needed, since this APU will have a powerful iGPU which can run the AI crap faster than a NPU anyway. And personally i will not even use AI for anything.
Still, i need to pay for those NPU extra cooling pads just because Lisa thinks that 'everybody will want an AI-PC', which is wrong.

Looking at the achievements of the HW industry from the past 10 years:
Putting a iGPU on every CPU, but too weak to play games - waste of silicon.
Coming up with perf. vs. efficincy cores on one CPU, but only P-cores can do AVX512 - waste of silicon, they disable AVX afterwards by physically destroying the circuits on the chips they sell to people, lol

  1. what you want is not necessarily going to give you what you actually need, nor what others need. and designing 40 different SKUs to match everyone individually is more waste than anything, manhours, design work, manufacturing line etc
    2.iGPU on every CPU is in many ways the same thing, the silicon isn't really all that big, and if most office work only need an iGPU no need for a dGPU, and I like iGPUs alot more than the times when you had a small chip on the motherboard, even worse when you had the ports, but you needed a CPU with an iGPU to use it, now an iGPU can infact do work and still use dGPUs output which is great, low power desktop rendering, movie with the iGPU, and the option to use the more powerful dGPU for when you actually need it.
    3. Kinda agree on the NPU. 😉

Juliean said:
We can also already do that, there are libraries which aim to provide such a thing, for quite some time, like SDL.

Yeah, but SDL does not help to port SSE code to Neon, and they can do nothing if Apple decides to ditch all Khronos APIs, etc. We are far from the point where any software can be cross platform by default.

Juliean said:
Unfortunately, the thought of those companies coming together to agree on something that makes users and developers not depend on any specific OS anymore is an utopian thought.

Yes, but it might be possible to force them, e.g. if Linux starts to eat their user base by a noticeable amount.
But well, my personal attempt to migrate to Linux is still wip. I always have something more important to do… : )

We give those companies too much power, and in return they do not much for us. That's for sure.

Juliean said:
For a long time, we've had to pay for all those crypto-related crap in GPUs, that most people never used.

Afaik there was no extra functionality added to GPUs for crypto, so nobody payed for unused stuff.
(The only exception was NVs failing attempts to slow down crypto on gaming GPUs.)

But if i would buy an NV GPU now, i would need to pay for RT cores which can't use because the API made by the genius NV+MS dreamteam makes them literally useless.
And i would need to pay for tensor cores, which so far are only used for upscaling, which does not justify the waste of silicon.

Personal opinion. But that's why i still use a Vega GPU, and it shall be the last dGPU i've ever bought.

Juliean said:
If they had specialized chips that ran faster for that kind of thing, that you can buy if you want to, then it would be ok.

Yes, and according to this poll, only 7% of people are interested in AI acceleration in their PCs.
So i'm not the only one loosing confidence in modern HW.

On the other hand, i don't believe in specialized chips anymore. Too expensive. It should be all in just one chip. So i'll accept some useless crap in it, assuming those 7% become a bit more over time.

Juliean said:
New companies for CPUs? Also not gonna happen.

It did not happen because x86 requires a license, which NV for example did not get, although they wanted one.

But just wait and see. I bet next year NV presents their own ARM based AI SoC to give Intel a little death stab. Qualcomm and MS already did the necessary preparations.

That's already two new CPU companies in the PC space then. Samsung, MediaTek and others will probably follow.

You can already buy the fat book about those cute little ARM instructions. : )
And personally i hope NVs dominance will not increase even further with this, but probably it will… /:O\
So the ideal case might be indeed that ARM on Windows just fails, and good old x86 remains the dominant arch for games. : /

Juliean said:
Just look at how shitty the launch of Intels dedicated GPUs was.

I think it was pretty good. Drivers for all those countless legacy APIs just takes a lot of time and money.
It's really a shame their market share was so tiny, because they were the only ones offering GPUs with good specs for a fair price.

Juliean said:
The amount of complexity that is required just to make any type of GPU or CPU alongside the required firm/software is so great, the chance of a new company just getting started and developing something, let alone something that competes and pushes the envelope, is pretty slim.

Yep, but it would be much easier without this jungle of broken APIs.
But i'm aware it's wishful thinking. Still, in the log run some cleanup and open standards would help anybody, including those tech behemoths.

Juliean said:
Coming up with workflows thats 10 times faster than Unity and Unreal and all else, that's what I mainly strive for. I hate nothing more than having to do the same mindnumming tasks over and over again, so I mainly come up with solutions to remove or reduce those :D

Hehe, keep it up.
I mean, you worked 16 years already on the RPG and engine. Likley you would be long done if you had used slow Unity.

But i do the same. It took me 5 years to get the ragdoll balanced, and making it walk and run is till in front of me. But then i don't need to waste time on old school animations.

Seems neither of us really saves time. But does not matter. We just need to follow the path, towards to what feels right.
I think it's this kind of thinking which gave birth to video games and some other good things. Making it a business is just a byproduct. : )

JoeJ said:
Yes, but it might be possible to force them, e.g. if Linux starts to eat their user base by a noticeable amount. But well, my personal attempt to migrate to Linux is still wip. I always have something more important to do… : ) We give those companies too much power, and in return they do not much for us. That's for sure.

The only way to force them is via regulations. EU regulations for chargers forced Apple to ditch their proprietary charger. Meaning, customers can't really do much, except stop buying their products. But that only works if enough people do it. Kind of with micro-transactions, where the 0.5% pay 80% of the games bills, so they just keep doing it even if most people are against it …

JoeJ said:
Afaik there was no extra functionality added to GPUs for crypto, so nobody payed for unused stuff. (The only exception was NVs failing attempts to slow down crypto on gaming GPUs.)

Been too long, I read something a time ago how newer GPUs are missing some features required for crypto-mining. But not too sure anymore.

JoeJ said:
I think it was pretty good. Drivers for all those countless legacy APIs just takes a lot of time and money. It's really a shame their market share was so tiny, because they were the only ones offering GPUs with good specs for a fair price.

Well, then my point still stands about Intel being a big company in the first place, so just imagine how hard it would be for a newcomer or smaller company. But hey, I'd be better if they at least had a shot, monopoly is always bad.

JoeJ said:
I mean, you worked 16 years already on the RPG and engine. Likley you would be long done if you had used slow Unity.

Yeah, I could be done if I just had the willpower to do the chimp work :D The Rpg-Maker XP that I started out with was a real slog, but even then I could have probably been finished by now if I kept with it. But after getting a glimpse of what's possible, I just couldn't go on. The game certainly got better by porting it (Rpg-Maker was sooo limiting), but choosing Unity and just pushing through it would have allowed me to make the same level of quality, in less time, sure. But I hate Unity just way too much, and I'd rather spend 6 months working on engine-stuff and then 1 month on creating game-content, than 2 months on the same content with no engine work :D

JoeJ said:
Seems neither of us really saves time. But does not matter. We just need to follow the path, towards to what feels right. I think it's this kind of thinking which gave birth to video games and some other good things. Making it a business is just a byproduct. : )

Yeah, exactly. As long as there is no consideration about budget and timeframes, we're all free to do what we like. For me, making anything buisness-viable is a very long shot away. I cannot sell the Rpg (it's an unlicenced fan-game), and marketing the engine would require even more work with things like documentation, polishing… oh well, maybe I someday will have something I can sell :D But it's no must.

This topic is closed to new replies.

Advertisement