A company selling knives is not considered a butcher or cook, despite the main uses of knives being just that.
Next up: quantum. And that will be the end of them.
And other than maybe the crypto stuff, luck had nothing to do with it. Nvidia was ready to support these other use cases because in a very real way they made them happen. Nvidia hardware is not particularly better for these workloads than competitors. The reason they are the $4.6T company is that all the foundational software was built on them. And the reason for that is that JHH invested heavily in supporting the development of that software, before anyone else realized there was a market there worth investing in. He made the call to make all future GPUs support CUDA in 2006, before there were heavy users.
They quietly (at first) developed general purpose accelerators for a specific type of parallel compute. It turns out there are more and more applications being discovered for those.
It looks a lot like visionary long term planning to me.
I find myself reaching for Jax more and more where you would have done numpy in the past. The performance difference is insane once you learn how to leverage this style of parallelization.
At some point, maybe it isn’t luck anymore but a general trend towards parallel computing.
Basically, almost half of their revenue is pure profit and all of that comes from AI.
While the slide looked a lot nicer, the data is also available on their site https://nvidianews.nvidia.com/news/nvidia-announces-financia...
In a way it's the scientific/AI/etc enterprise use of Nvidia hardware that enables the sale of consumer GPUs as a side effect (which are just byproducts of workstation cards having a certain yield - so flawed chips can be used in consumer cards).
Source (I am not sure how reliable this is because I got this from ChatGPT, but I remember seeing something similar from other sources): https://www.fool.com/investing/2024/02/12/gaming-was-nvidias....
Not as technicial but similarly cool.
There is plenty of competition there: Qualcomm, Samsung, Apple, MediaTek and of course Intel and AMD, and things are moving fast. The best phone APUs nowadays are more powerful than my not so old MacBook Air M1.
And I'm not sure that space has been economical for a long time. Integrated GPUs have more-or-less reached a point where they can handle PC games (albeit not at the latest-and-greatest resolutions/frame-rates/ray-tracing/etc), and the market for multi-thousand-dollar dedicated GPUs just isn't very big
Could you render the scene in the simplest most efficient way possible, then train a special model that takes that picture, along with the coordinates of lights, depth maps, text descriptions of materials, etc, and adds detail?
DLSS - Render at low resolution, use an ML model to upscale
Frame Gen - Render a frame, use an ML model to generate the next frame. Render the next, gen the next....so on
(I think in practice, Frame Gen is more complicated due to fluctuation between FPS but that's another can of worms)
Anyway, I think you should change friends. Or study subjects. Either way.
Btw, these look like parasites or worms under microscope.
These friends don't get it!
Even that is more about control over the rendering process than what silicon is doing the work. With a lot of (older?) graphics APIs, you're implicitly giving the GPU's driver a lot of control over the output and how it is generated. This is how we got events like [0] where GPU vendors would make their drivers 'cheat' on benchmarks by trading image quality for speed when certain criteria were detected.
I imagine that tradeoff has changed somewhat as the industry has moved towards graphics APIs intended to give the programmer more direct control of the hardware.
[0] https://www.reddit.com/r/quake/comments/168btin/does_anyone_...
The simple calculations typically used for rendering graphics can easily be parallized on the GPU, hence it's faster. But the result should be identical if the same calculations are done on the CPU.
Also GUI frameworks like iced and egui typically support multiple rendering backands. I know iced is renderer agnostic, and can use a number of backands including the GPU graphics APIs Vulkan, DX12 and Metal.