I think their unpopularity these days come from three factors:
1. For the gamer crowd, RTX 2000 was a price hike and even the higher end cards were not that impressive for performance. It looks like they were resting on their lead against AMD.
2. People love to root for the underdog and AMD was behind for the longest time.
3. For the developer crowd, the closed source Nvidia drivers were not great for Linux compatibility, and the Mac crowd couldn't care because they couldn't have Nvidia after their fight with Apple.
I think for a sample of the general public who have opinions on Nvidia, it's 1,2 and 3 in that order while for HN users, it's 3, 2 and 1 in that order.
AMD has had pretty much always a solid mid-tier offering in the last five years, but people would still rather buy an nVidia card (like, say, a 1050) instead of the better AMD (at the price point) because of the "1080 Ti" halo effect.
nVidias software stack is pretty bad. Sure, the driver core works pretty well. The nVidia control panel looks like it was last updated in 2004, which is actually true (go find some screenshots of it from 15 years ago running on XP, it looks the same). Now, that doesn't mean it has to be bad (don't fix what isn't broken), but the NCP is actually clunky to use. Not to imply AMD's variant is necessarily better, but at least they're working on it.
The nVidia "value-adds" like shadow play and so on are all extremely buggy. And while their core driver may be good, you still get somewhat frequent driver resets and hangs with certain interactive GPU compute applications.
Do people actually think this way? "I'll buy the nvidia 2060 super rather than the amd 5700 xt (for the same price, and benchmarks higher), because nvidia has the 2080 ti"
Also, there's been constant driver problems literally since the ATI days, just recently drivers basically crippled Navi for the entire duration of the product generation, drivers crippled Vega previously, Fiji was a driver mess, Hawaii and Tahiti were not problem free either (the famous "company A vs B vs C" article [0] notes that "company B's drivers are bad and are on a downtrend" and that was during the heyday of GCN, in 2014, those were the "stable drivers" that everyone rhapsodizes about in comparison to the mess that is Navi/Vega). Terascale was a fucking mess too.
AMD products often have weaker feature sets. It took them years to catch up with G-Sync (offering low-quality products with poor quality control for years until NVIDIA cleaned things up with GSync Compatible certification). NVENC is far better than AMD's equivalent (Navi's H264 encoder is still broken entirely as far as I know, it provides less than realtime encoding speed and extremely poor quality), so if you want to stream with AMD you have to use your CPU and crush your framerate, or purchase a much more expensive CPU. AMD has no answer for DLSS, and is just implementing their first generation RTX support with the next generation.
This is what I refer to as the "NVIDIA mind control field" theory. That consumers are just so wowed by the NVIDIA brand that they can't help themselves. The reality is AMD simply has not been that compelling an offering for that much of the time. There has been a lot of poor execution over the years from the Radeon team and prices have often not been as good as people remember them to be.
And a few good products don't change that either. Like, it took something like 8 years of AMD slacking off (Raja mentioned in a presentation that around 2012 thatAMD management thought "discrete GPUs were going away" [1] and pulled the plug on R&D - certainly a very attractive idea given their budgetary problems at the time) for NVIDIA to reach their current level of dominance. AMD has never led the market for 8 years at a time. Maybe a year tops, usually NVIDIA has responded pretty quickly with price cuts and new products. NVIDIA has never let off the pedal the way AMD did (and yes money was the reason but that doesn't matter to consumers, they're buying products not giving to charity).
[0] http://richg42.blogspot.com/2014/05/the-truth-on-opengl-driv...
I used the Fury(Fiji) and the VII(Vega 20) on linux and windows, and haven't expereinced any of the crazy shit people have claimed. Such as....
>(Navi's H264 encoder is still broken entirely as far as I know, it provides less than realtime encoding speed and extremely poor quality), so if you want to stream with AMD you have to use your CPU and crush your framerate
Where did you hear that? Not even slightly true. I used GPU encoding on both cards (@1080p, 60fps, 5500kbps, 1 second keyframe interval, 'quality' preset, full deblocking filters, and pre-pass turned off because I'm not insane) with zero issues. I would have liked to see more of an improvement in the VII's quality vs the Fury, but I wouldn't go as far as calling it non-functional.
I don't know who managed to get any of those to encode at less than realtime. I've done 1440 at 15500kbps to another machine for re-encoding and I can still play star citizen on High@60 fps with the same pc that's encoding.
And for the record, I also have a GTX 1660, 1080, and had a 770 before the Fury. I'm not fanboying, just relaying my experience.
Edit: Just to be clear, I'm not saying Navi is good to go. I'm refuting the general statement "if you want to stream with AMD you have to use your CPU and crush your framerate"
edit2: Full config for reference
{"CodingType": 0,
"DeblockingFilter": 1,
"Debug": false,
"EnforceHRD": 0,
"FillerData": 1,
"FrameSkipping": 1,
"Interval.Keyframe": 1.0,
"MaximumReferenceFrames": 1,
"MotionEstimation": 3,
"MultiThreading": 1,
"OpenCL.Conversion": 1,
"OpenCL.Transfer": 0,
"PrePassMode": 0,
"Profile": 77,
"ProfileLevel": 51,
"QP.Maximum": 42,
"QP.Minimum": 12,
"QualityPreset": 2,
"QueueSize": 16,
"VBAQ": 1,
"VBVBuffer": 0,
"Version": 562967133290498,
"Video.API": "Direct3D 11",
"Video.Adapter": 63990,
"View": 3,
"bitrate": 18000,
"lastBFrame.Pattern": 0,
"lastBFrame.Reference": 0,
"lastRateControlMethod": 3,
"lastVBVBuffer": 0,
"lastVideo.API": "Direct3D 11",
"lastVideo.Adapter": 63990,
"lastView": 3}
edit3 (lol): I 100% have no way to refute anything navi related. Looks like they completely changed the encoding engine in navi: https://en.wikipedia.org/wiki/Video_Coding_Engine#GPUs. Equally so, that chart incorrectly lists the VII as having version 4.0 instead of 4.1, so it may not be that trustworthy. I can't say until I have a Navi card to play with.It turns out anecdotes are different for everyone, that doesn't make them full of crap.
Indeed, wouldn't have included it if I didn't think the same.
I do however think making a blanket statement which has direct anecdotal evidence refuting it is pretty much bunk.
> I used the Fury(Fiji) and the VII(Vega 20) on linux and windows, and haven't expereinced any of the crazy shit people have claimed. Such as....
I don't know what kind of reply you're expecting. You've managed to use two AMD cards and not have driver crashes? Uh, good for you, but that doesn't mean the rest of us are "full of crap". I've also owned two AMD cards, and for both of them the drivers were flaky, on Linux and Windows. I'm sure they're not broken for everyone, but they were broken for me. Maybe if I bought another AMD card I'd get lucky this time around, but I'm not going to take the risk.
>I'm refuting the general statement "if you want to stream with AMD you have to use your CPU and crush your framerate"
When I used Linux the closed source Nvidia drivers were better than anything else and easily available, the complaints around them seemed mostly to be ideological?
The price complaints seemed mostly about 'value' since the performance was still better than the competition in absolute terms.
The big issue with Nvidia GPUs in Linux these days is with Wayland. There are some graphics APIs that are the current way to create contexts, manage GPU resources etc but Nvidia went their own way which would require compositors to have driver specific code.
Many smaller compositors (such as the most popular tiling one for Wayland) don't want to write or support one implementation for Intel/AMD and one for Nvidia so they either don't support Nvidia or require snarky sounding cli options to enable Nvidia at the cost of support.
I'd suspect part of the reason Nvidia went their own way is because their way is better? Is that the case - or is it more about just keeping things proprietary? Probably both?
If I had to guess, some mixture of ability to improve things faster with tighter integration at the expense of an open standard (pretty much what has generally happened across the industry in most domains).
Though this often leads to faster iteration and better products (at least in the short term, probably not long term).
I'd suggest his users asking for Nvidia support are evidence of this being wrong.
That aside though, it seems like Nvidia's proprietary driver doesn't have support for some kernal APIs and the other vendors (AMD, Intel) do?
I wonder why I've always had better experience with basic OS usage using the Nvidia proprietary driver over AMD in Linux. Maybe I just didn't use any applications relying on these APIs. Nouveau has never been good though.
Not really a surprise given the tone of that blog post that Nvidia doesn't want to collaborate with OSS community.
Don't people rely on Nvidia for deep learning workflows? I thought that stuff ran on Linux? Maybe this is just about different dev priorities for what the driver supports?
It all comes down to there always being two ways to do things when interacting with a GPU under Linux: The FOSS/vendor-neutral way, and the Nvidia way.
The machine learning crowd has largely gone the Nvidia way. Good luck getting your CUDA codebase working on any other GPU.
The desktop Linux crowd has largely gone the FOSS route. They have software that works well with AMD, Intel, VIA, and other manufacturers. Nvidia is the only one that wants vendor-specific code.
> Nvidia is the only one that wants vendor-specific code.
Isn't that because CUDA is better and that tight software/hardware integration is more powerful?
If it wasn't then presumably people would be using AMD GPUs for their deep learning, but they're not.
NVIDIA has been more or less good with desktop Linux + Xorg for the last 5-7 years (not accounting for the non support for hybrid graphics on Linux laptops).
I think you can use an NVIDIA GPU as a pure accelerator without it driving a display very easily.
Just because company A makes the fastest card does not imply that company A makes the faster card at every price point.
Well - they charged more at each price point because they were faster.
At some prices I think it wasn't enough to justify the extra cost from a price to performance ratio, but that doesn't seem like a reason to think they're bad.
It's possible I'm a little out of date on this, I only keep up to date on the hardware when it's relevant for me to do a new build.
Are you joking? How is it the same price point when they are charging more?
E.g. the bottom of this page: https://www.anandtech.com/show/14618/the-amd-radeon-rx-5700-...
At the lower price point nVidias line up is similarly crowded: https://www.anandtech.com/show/15206/the-amd-radeon-rx-5500-...
Either way, there would be no reason to group the 350$ and the 400$ card but not the 300$ and the 350$ card.
BTW, AMD definitely didn't always have a price/performance advantage, e.g. the nice scatter plots here from ten years ago (that I randomly found): https://techreport.com/review/19342/gpu-value-in-the-directx...
Before that mess (around the 900 series), nouveau was fast.
I had my Linux install in a VM for a number of years because fglrx was an aggravating experience (unstable, often broke on kernel updates) to use and radeon had abysmal performance on my 290x. To the point that my laptops 540m (on nouveau) would outperform the 290x under linux.
I still have that 290x in one of my systems, and since amdgpu supported it it has been a very pleasant experience. But even that took a while as they started with 3xx and supported the 4xx cards before going back for the 2xx cards.
I would add also Nvidia's hostility towards standards. They are pretty much the Apple of the GPUs : Optix, RTX, CUDA, etc. they are screwing up the whole ecosystem by making closed APIs that only work on their platform.
If you are a graphic or ML dev you can only hate Nvidia for how they are hurting standards and making our job so much harder while we could just agree on Khronos standards.
Hopefully some standards catch up (raytracing in Vulkan coming) but some other don't (ML is CUDA only)
With CUDA I get a comfortable C++ dev environment that integrates with their products AND Visual Studio, FOR FREE. I played a bit with raw OpenCL a couple years ago, and it's.. uncomfortable. I've looked for free (as in beer) SYCL implementations... couldn't find any. IDEs with integrated debugging for OpenCL... couldn't find any, at least not for free. (Intel charged $$$ for their full-fledged OpenCL tools.)
CUDA is popular because the development environment is free AND comfortable. Has the situation changed the last years?
> Khronos standards
You could argue the other way: CUDA has become the de facto standard in certain areas and other vendors should release CUDA-compatible tooling for their products. I as a developer want to get work done and I don't care about ideals like "standards". I choose and recommend tooling that gives the shortest way to the result.
---
I'm mostly working with REST these days and I curse the HTTP protocol and URIs, etc. that are a mishmash of hacks to get it work with 7-bit charsets. At one occasion I said: "Just because something has a 30 year old RFC doesn't mean it's suitable for use in _today's_ applications." Standards can just as much hold back and prevent better ideas from emerging as they can help with interoperability.
The "I'm just doing my job" mentality often gets us in very bad situations down the road (be it for Privacy, Ecology, Standards, etc.)
Totally agree that for "getting the job done" and having free tools then yes CUDA is better.
For your REST example, I understand your frustration, but now think what would it be like without standards :
You would have to pay 100$ to use Apple.iHTTP©®™ + implement a version for Google G.HTTP + implement yet another version for Microsoft Visual.HTTP™. For each you would have to get a licence, agree to conditions, you would have to buy both a windows & mac because ofc they wouldn't be cross platform, each one would only work in one browser, they could decide over a night to remove your right to use HTTP, Microsoft Visual.HTTP dev tools would be crap but couldn't use the cool one from another company because not compatible, etc.
Might seems like an exaggeration but when you look at the Epic vs. Apple, Google AMP, DirectX & Metal, Apple developer fees & conditions, Web DRMs, the lack of cross-compability, etc. Well that's what HTTP would look like if people didn't care about standard.
Also standard don't have to always be backward compatible (for e.g OpenGL vs. Vulkan) that's specific to the web, not to standardisation.
Are you blaming NVIDIA for Vulkan not being on par with their proprietary APIs? Presumably Nvidia is not sabotaging Vulkan, rather the issue could be that Vulkan is an abstraction that supports multiple GPUs, and that improving Vulkan is resource intensive.
Windows drivers are starting to work better now that Microsoft adopted the Linux model of centralizing them. But they still aren't any great. For any non-usual hardware the drivers still come bundled with all kinds of shit, stop working after a while, and get bugs at random.
No. Intel ships WHQL Certified broken WiFi drivers via Windows Update. It took me three weeks to try all available versions, settings etc to troubleshoot. At last, I've roll backed the driver to earliest version and pinned it there. Now the wireless card is working as intended.
Device is an HP Spectre X2 convertible tablet so everything is a package.
Edit: Use kinder words.
The problem is, Intel's all newer drivers are broken for that particular card, even the ones installed by Intel's Driver Update Utility (I've tried that too, yes).
It's the same time that Intel's e1000e Linux drivers started breaking older cards so, there's something off in that department IMHO.
The add insult to injury, both Windows and Linux drivers' release notes claim that the cards in question are supported by the respective, newer drivers.
They don't even have to do that. All they have to do is allow nouveau to actually drive the graphics card. Maybe it won't be as performant as the proprietary driver but it will actually work out of the box with no system instability.
I think that Backslash against Nvidia is due to it's somewhat hostile nature towards OpenSource (to be accurate, they didn't open source Nvidia's Graphic Drivers).
But, Nvidia's drivers work well(Nvidia's Linux drivers are somewhat on parity with Windows ones) . I heard that until AMD open sourced their drivers, lot of them were preaching that Nvidia is only way to Play high end games on Linux(also CUDA).
Personally, I prefer AMD GPU. I find their drivers to work great with Linux.