Raspberry Pi 4 achieves Vulkan 1.1 conformance, gets GPU performance boost
cnx-software.com
cnx-software.com
If you focused on supporting the official raspberry pi keyboard, mouse, and touchscreen you could circumvent a lot of the pains around driver issues. Then people could actually get up and running with your OS with real hardware, and you could start dogfooding it.
I’ve heard people say that the software we use is up to 100 times slower than it needs to be. So my hypothesis is that if the software was written smarter, and used the fact that we know the hardware ahead of time, we should easily hit a 100 times performance increase across the OS.
Also if it were possible, it would be cool if this OS supported a minimal boot mode, that could be configured to only run the bare minimum amount of apps required for a certain piece of software. So for example a game mode that ran the game, and the bare minimum amount of OS the game needed to run.
And since we are in full on fantasy land we can take this one step further. Same basic concept, but with a RISC-V SBC, with an open GPU. Bonus points if you can get up and running with a touchscreen, keyboard, mouse, case, and SD card for $150
>you focused on supporting the official raspberry pi keyboard, mouse, and touchscreen you could circumvent a lot of the pains around driver issues
I'm afraid that's how closed, non-extensible systems are born, and later inevitably die.
A reasonable game is performance focused and is spending most of the computing power directly on itself (even if perhaps not optimally and not utilizing specific GPU hardware to its full extent) and not in OS routines, so an OS providing a specific "game mode" with only the bare minimum amount of OS the game needed to run can perhaps bring a 5% or 10% performance improvement, but not 50% and definitely not 100 times performance increase.
For software that was written in a performance insensitive way (i.e. not games) you perhaps could achieve a 100 times performance increase by a full rewrite avoiding various overheads. However, you would not really need an OS change for that, the main performance-relevant changes would be in the app itself and you can get almost all of that by running the optimized app on a standard OS - but you would need a rewrite of all the actual software.
The example of this article about UnrealEngine and Vulkan is a good illustration - a game targeting the specific hardware directly could achieve the same performance (and more!), however, they are not going to, nobody is going to rewrite the game because that's expensive, so getting an OS abstraction layer like Vulkan - which inevitably adds some extra performance overhead, not reduces it - is the only reasonable way to go.
> For software that was written in a performance insensitive way (i.e. not games) you perhaps could achieve a 100 times performance increase by a full rewrite avoiding various overheads. However, you would not really need an OS change for that, the main performance-relevant changes would be in the app itself and you can get almost all of that by running the optimized app on a standard OS - but you would need a rewrite of all the actual software.
I think this is insightful. I agree that not everything would be 100x, but I feel like at the level of an RPI 4 even a 5-10% improvement that bumps a game into 30 or 60fps territory would be noticeable. And even a 2x improvement in regular apps would have impact.
Before 2000, many many commercial games and software were written using “classical” C/C++ and had any performance critical areas written in assembly language. People would actually profile their apps and optimize their code and loops. Most any language that had large runtimes or included a garbage collector was not considered an option. Only the most complex, data oriented or GUI oriented parts of the code would be written in high level language. A good example of this mixed language code base is the Allegro 4.x Game Programming Library for DOS, Linux, and Windows.
Going back further into the 80s and 90s, many many commercial games and software were written in all assembly language. Look at the old MS DOS code bases on GitHub for a reference.
All that to say that modern software does a ton things in periphery that old software considered superfluous. We know some of it makes easier to write software, or that the software is more secure, or that it can take advantage of the features of the hardware old machines didn’t have. However, that is still extra code that needs run, often in (event) loops which multiples the amount of time dedicated to that code.
Look at codegolf or other minimal code challenges to see what could be accomplished with a different programming process.
Linux and NetBSD can be configured to be as good as if they were written just for RPI4.
N64 was another story, but N64 emulators have improved a bunch since last time I tried. I think the only game I found that played acceptably on the Pi2 was Mario64. Most of the rest were slideshows or didn't run at all.
Vulkan is mainly about reducing CPU overhead, don't expect it to do much for complex shaders or other things that are already GPU-bound.
Most of the time with crappy drivers that are a shadow of their DirectX ones?
Additionally iOS and Apple have much better tooling for Metal than plain DirectXTK/Pix, or that toy SDK from Khronos (that Google also uses on Android), if we compare vendor tooling.
Any game dev gems have basic examples on doing an API loading layer.
Vulkan is mostly a Linux thing, and even the Switch has its own native API, NVN, it is not Vulkan nor OpenGL on the driving seat.
Here enjoy, https://www.ogre3d.org/
On Windows 11, it’s OpenGL 3.3 on top of DX12, because Qualcomm doesn’t provide an OpenGL ICD at all.
> crappy drivers
Special mention to the Intel OpenGL graphics driver on Windows. If you thought that the AMD Windows one was bad, the Intel one was somehow significantly worse.
Yet Vulkan, shows they cannot fix their love for extensions spaghetti.
Thats exactly what every graphics API has done, because the underlying chip architecture is never free and open (and often, is neither).
If the issue is that you are targeting a proprietary intermediate API rather than bare metal, that is also how Nvidia's drivers work.
One of them: https://github.com/KhronosGroup/MoltenVK/issues/1244
https://developer.apple.com/documentation/metal/gpu_features...
Ecosystems with great UX and paid subscriptions plus a 30% cut on all transactions are far more profitable than the margins you make selling commodity hardware. Just ask famous phone manufacturers like Siemens, Nokia and Blackberry why that is. That's why SW dev salaries are much higher than HW dev salaries as the former generates way more revenue than the latter. That's why Apple doesn't roll out their own cloud datacenters and instead just gets Amazon, Microsoft and Google to compete against each other on pricing.
Apple only rolls out their solutions when they have an impact on the final UX, like designing their own M1 silicon.
And number two, selling chips comes with a lot of hassle like providing support to your partners like Intel and AMD do. Pretty sure they don't want to bother with that.
Before they start selling chips I would rather they open iMessage to other platforms to eliminate the bubble color discrimination.
Everything runs faster, cooler, quieter and battery lasts longer. Is that not part of the product UX?
The Apple chips are made for running macOS/iOS. Seems there are some hardware instructions that are tailor made for increasing the performance of Apple software so they can make sure everything is working toward a common goal.
They are trying to compete, and have different levers to pull with varying success. When the performance per clock or per watt levers don't work well enough, then they increase the power, and the end result is heat and inefficiency.
On the flip side, integrated solutions add another lever... writing hardware that does exactly what your software needs to improve the user experience.
AMD, ARM, and even Intel have some cool, efficient solutions, but not across their whole portfolio of products, and not at the higher ends of performance. But they are always competing, incrementing and working to get closer to that ideal.
Apple was able to focus on their exact market segment and get there rapidly.
It allows apple to focus on what they want without being limited by and two their hardware provider’s strategy.
Outside of the countries where iOS is on par with Android (I think US, Canada and UK are the only ones, maybe also Australia) in terms of popularity, I don't know or have seen a single person using iMessage, of course there's a lot people using iphone outside of the mentioned countries, but absolutely nobody uses iMessage.
The whole discrimination of the color bubble seems to only happen in those countries were iOS is the same or more popular than android and people is actually using iMessage.
0: https://finance.yahoo.com/news/apple-i-phone-ownership-among...
Uhm, iMessage works transparently. I just use Messages app, if my recipient uses iPhone it get an iMessage, if they use something else, they get SMS.
Right now 99.9% of those Russians who use the internet can be reached via either VKontakte or Telegram. WhatsApp is also popular, but thankfully not around me so I was able to delete my account and never look back.
It’s probably easier to just move to one of the 99% of countries where nobody uses iMessage.
That doesn't affect me though as i don't live in the US and am too old for that kind of stuff but I do remember how easy it was to be mocked or bullied as a teen for not having the same stuff as the herd, even before smartphones were a thing.
When so many telcos charge outrageous prices for SMSs, it's a useful feature.
https://www.phoronix.com/scan.php?page=news_item&px=SiFive-P...
Should be roughly M1 performance, but on RISC-V.
who knows when that is coming and when are we going to be able to buy regular laptops from e.g. Lenovo, HP, Acer, etc with that.
By the time that happens, Apple may already be on their third, fourth? generation on M1. Which is going to much much much faster than M1.
Will it really?
It isn't a given. They might bring amazing progress, or not.
Ultimately, it doesn't matter all that much if it isn't available to third parties. It's not as if everybody else is sitting on their ass.
SiFive's not a fat company, their research budget is tiny, relative to the likes of Apple. And yet, they're coming up with competitive cores.
Things are so much easier when not restricted by a shitty ISA (x86). I have taken a look, and I really like RISC-V; I find it better than ARM.
Also, the RPi's SoC is made in an older 28nm process (that's one of the reasons why it's cheaper).
Other folks are starting to get there but only from the mobile device direction, e.g. Tensor. Maybe I should look closer at what Microsoft has done with ARM Surface.
As for Amazon specifically though, I've got no idea. They're a large enough company that they could buy out an entire fab or foundry if they wanted, AWS makes more than enough money to cover the costs.
What are the innovations in them? From everything I've heard, they just basically reverted all the changes most people hated for the last few years and slapped a new chip in there.
Walled gardens are inherently anti consumer market plays that make things worse for everyone except the people milking money from the idiots paying into the walled garden.
It's not like Apple has a meaningful moat around state of the art silicon. And that's a Good Thing.
Broadcom chips are not available on the open market and they won't sell to you unless you are an enormous company(or have a "special relationship" as RPi did). Effectively you can only buy one attached to a Pi.
It doesn't say so at kompute.cc, but I found that it depends on Vulkan 1.1.
For the Switch:
> The GPU cores are clocked at 768 MHz when the device is docked, and in handheld mode, fluctuating between the following speeds: 307.2 MHz, 384 MHz, and 460 MHz
It’s much better than what it was before. nouveau works ootb, including reclocking too.
It’s also to be noted that all Tegras have an open-source kernel mode GPU driver (nvgpu) even when using the proprietary stack. However, that driver isn’t in an ideal state today.
The one nvidia provides is not stock.
- this: 24
- Ryzen 5600g: 200(CPU)
- Jetson nano: 235
- GeForce GT1030: 1127
- Ryzen 3rd IGP: 2100
- Apple M1X: 5200
- Apple M1 Pro: 10400
- RTX3080: 35580
1030 can be had for $110 even at this height of GPU shortages, not that much more than a Nano. hmm
Vulkan is too low level, but AFAICS it is not something one use directly, instead a library which uses it as a back-end should be used.
For the RPi4 specifically:
That GPU has hardware limitations that make it unable of OpenGL 3.0. However, it supports GLES 3.2.
If you want GL desktop minus the unsupported features by the hardware, you can set MESA_GL_VERSION_OVERRIDE=3.3 for example. That will however never be compliant.
Vulkan has many extensions to allow it to work on hardware which doesn’t support the full feature set. (by not implementing them, instead of having only version numbers)
I'm not quite completely clueless, but I have the feeling that clarification on this point will nudge me in the right direction to understanding these things better.
The OpenGL driver also doesn't have to emit 1 logical hardware operation for each OpenGL API call.
Unconditionally exposing the latest GL version by emulating missing GPU functionality sounds like a recipe for applications to fall off performance cliffs.
https://www.reddit.com/r/MachineLearning/comments/ilcw2f/p_v...
Like the Steam Deck, but better, since developers will get 88% of revenue instead of 65% on Steam.