That said, I think AMD isn't really competing with Nvidia. Sure, their R&D budget is smallish but it feels like they're somewhat fine with the current status quo.
So does AMD.
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/lin...
And while they have an open version of the userland, it's also missing features compared to the proprietary one, etc.
Besides, in the end it truly hardly matters whether the firmware is loaded at runtime or lives in updateable flash. It's still not "your PC" in the Stallman sense either way, it's been tivoized regardless of whether firmware is injected at runtime or during assembly.
Firmware is also the only way to get proper HDMI support... which is why AMD still does not support HDMI 2.1 on linux. HDMI Forum will not license the spec openly and implementations must contain blobs or omit those features.
Can we really assign blame to them specifically for not fighting the hdmi forum on our behalf?
That people will go with what is easier and works?
That open source and open standards don't win by default? That it takes a lot of persistence and effort.
AMD is working on moving to things like the open source form of AGESA. They plan to start deploying openSIL by 2026.
"Open source" by itself is not a magic dust you can sprinkle on your projfcts that will make your software work well.
It probably takes a lot of confidence in your software developers to make this kind of decisions.
NVidia decided to use gimmicks to sell their cards including texture compression, lighting tricks, improved antique video encoders, motion smoothing, bad proprietary variable refresh rate, ray tracing, cuda and now machine learning features.
Nvidia is fortunate that machine learning has taken off. That is masking AMD winning market share from weak overpriced NVidia 3D products!
Texture compression: Useful for games, ongoing work, although I wish they would make cards with appropriate amounts of VRAM
Lighting tricks: Not sure what this is referencing
Improved antique video encoders: NVENC started out with only h.264, but now it supports h.265 and AV1, which aren't antique at all. Niche, but widely used in the streaming industry.
Motion smoothing: The hardware optical flow accelerators in newer cards are important for DLSS, which is a bit gimmicky but works mostly as advertised.
Bad proprietary vrr: No argument here, gsync sucked.
Ray tracing: All 3d games are going to be ray traced sooner or later. Getting a head start on it is a good move, and it's a big head start. The 4090 is ~100% faster than the 7900xtx.
CUDA: No one can seriously call CUDA a gimmick.
Machine learning features: Tensor cores are great.
CUDA isn't a "technology", its a shader language that has been supplanted by better industry-wide standards.... the same standards whose shader languages are compiled by the same Nvidia shader compiler.
CUDA is a moat whose muddy waters has long since ran dry, and you're drinking koolaid if you think its still relevant for greenfield projects.
So I want to start a new GPU compute project today. Obviously this will primarily be deployed to AWS/Azure/etc, which means only high-end GPUs available are Nvidia. What do you recommend developing this application with?
The way I see it, you would have to be drinking koolaid to use anything besides CUDA.
OpenCL is the actual intended replacement for all the pre-standard APIs, and has achieved its goals. If you want SPIR-V IR, OpenCL allows this and all the major vendor impls support it.
CUDA has no equivalent for SPIR-V, and never will. Nvidia's own internal IR is not, and never will be, documented nor stable across driver versions. This is a massive downside for ML middlewares, as they have no way of directly emitting optimal code that cannot easily be represented in the HLSL-flavored syntax in CUDA.
Are you talking about Vulkan? If so, I'm not sure 'supplanted' is the right word.
As someone who uses industry-wide standards in a related field...
The proprietary implementation often has the benefit of several more years of iteration with real products than the open standards. 'Supplanted' can only really be evaluated in terms of popularity, not newness or features, because features on paper aren't features in practice until they pay for their migration cost.
thats not true, since the switch is based on an nvidia platform. since it's still 1/3 of the market, it's not as bad as it used to be.
At some point, hardware (necessarily?) evolves to become optimized to do one thing, and then you have to just treat the driver as an API to the hardware.
Even "simple" things like keyboards and mice are now small computers that run their own code, moreso more complex devices like sound cards and hard drives.
And since graphics card performance seems to be the bottleneck in a lot of computing, it has become super specialized and you just hand off a high-level chunk of data and it does magic in parallel with fast memory and spits it out the hdmi cable.
I would consider their open efforts to be "not serious" for anyone but the consumer space - games, desktop users, maybe even professional text editors. If you're using the GPUs for "professional" applications in a one-off scenario, even AMD falls short.
I'm honestly not sure what the moral of this story is.