Sure, the Nvidia driver is closed-source and a pain to work with for OS developers, but for the use-cases it's designed for (CUDA etc), it's far and away the best-in-class on Linux.
To my knowledge, there are no systems in the TOP500 running AMD chips or GPUs. Intel has some competition in the CPU space (POWER series, some ARM, etc) but if GPUs are in those systems, they're Nvidia.
It's unfortunately a sad truth.
CUDA won, And is now the de-factor standard for almost every application that run over GPU. Nvidia succeeded to jailed the entire HPC community to their bloated, badly maintained crappy software stack and this is very regrettable.
Any admin / integrator that had to deal with NVidia bloatwares under Linux hate it, and for very good reasons.
Biggest issue with AMD on Linux right now is that they sometimes seem to forget to fully enable support in patches before release. Like the RX 590 had to have firmware updates post release because they forgot to do everything I guess.
nVidia GPUs were always recommended over AMD because their support was significantly better before the mainoine Radeon/Radeon si/amdgpu drivers really started being great. nVidia will still run better now, but the benefit of the open source driver ecosystem out weighs that for me.
Wanted to try out SwayWM, but they don't work around how nvidia handles things in comparison to what everyone else does.
Works in Ubuntu, but could not for the life of me get 2 monitors working in Arch.
How it works with open source drivers is that you main-line your drivers so that the kernel maintainer maintain the drivers for you, for free. Choosing to keep your drivers closed source means committing to keeping your drivers up-to-date with changes in the kernel, or writing an open-source shim that does that. Which approach is more "fragile?"
Graphics card drivers happen to be very complex beasts, somewhere along the stack they do need a compiler for multiple custom and often proprietary architectures, which most definitely no-one will maintain for free for you. There is a huge incentive to keep most of the code platform independent and only maintain a minimal kernel specific component. This part of the code base is a comparatively trivial part, essentially the kernel should get out of the way as much as possible. The kernel specific abstractions like KMS are examples of such comparatively trivial things.
Not sure what do you mean by "maintain for free". Full coverage testing is not free.
However, they're hot and need serious juice to run, so you cannot just shove 36 of them to a rack and just power them on.