8 ms·
Red Hat to author new Linux driver for Nvidia GPUs in Rust
- bionhoward 3y agoThis is great news. Likely to make it easier to use these GPUs in Linux.
- adamnemecek 3y agoThe tide is turning.
- superkuh 3y ago>and without the Nouveau baggage that's built up over the years in supporting NVIDIA GPUs going back to its early days. Not supporting most nvidia hardware is not a good thing. I hope it's adoption by commercial users (home users don't have the latest nvidia gpu generally) doesn't mean Nouveau bitrots from lack of companies with deep pockets paying for dev work. As for the inherent memory safety, well, remember how safe memory safe java was?
- nickpsecurity 3y agoJava the language was memory safe. The runtime and libraries weren’t all memory safe. The JIT’s can break memory safety. Applets had integration issues. So, what hurt Java were opportunities to go around memory safety instead of attacking that memory-safe code. Memory-safe, system languages (eg Ada, Rust) address this by having as much as possible in memory safety with either little or zero runtime. Rust makes things safe that weren’t before. It has unsafe which is less used than some other languages. The type checker can also catch many logic-level errors. The safety situation is better with Rust than Java code. That doesn’t mean it will solve NVIDIA users’ problems, though. They are usually worried about compatibility, performance, and reliability. Rust mostly helps in one area. We’ll see about the rest, especially compatibility, as you said.
- KerrAvon 3y agoJava was crippled by a terrible standard UI library and a failure to recognize the opportunity for a natively-compiled systems language other than C++.
- pjmlp 3y agoJetBrains is doing quite well with such terrible UI library, with I would take any day over Electron crap, and AOT compilers have been available since 2000, even if only on commercial JDKs, which naturally did not did well on communities that won't pay for their work tools.
- kelnos 3y agoI think the GP is talking about AWT, which is indeed terrible. JetBrains uses Swing, which is... still not really the best, but IIRC they've done a lot of work to write their own abstractions and helpers and whatnot on top of it to make it more bearable.
- pjmlp 3y agoSwing is quite powerful, the only downside is that it requires reading books like "Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications" to actually understand how to take advantage of its features, and the bad decision to not use by default the platform's L&F.
- opless 3y agoActually AWT wasn't awful. It was certainly more performant than swing, in fact swing was the main thing that had me avoiding UI work and eventually dropping java in favour of .net I thought jetbrains used their own UI layer for their IDE, or am I confusing it with Eclipse there?
- pjmlp 3y agoEclipse, they use SWT.
- cozzyd 3y agoindeed, already new official nvidia drivers don't support the aging Nvidia card I have in my desktop at home (the desktop is newer than the video card, I moved it from an older computer).
- lproven 3y agoI had this problem at $JOB-1 where I had a big fat Dell desktop workstation with an nVidia card in it. I don't remember the model but it was a "pro" grade device: Fire or Quadro or some such BS marketing name. There were lots of old LCD monitors around the office. As soon as I could, I went dual screen. Then I decided to go triple-head. Problem. I found a 2nd card, another nVidia, but it was a different GPU generation. The same Nouveau driver can run it, but not the nVidia driver, and you can't have two nVidia drivers installed side-by-side. I tried multiple nVidia cards from the office spares pile but I couldn't find two the same generation of GPU for ages. When I finally did, the next kernel upgrade nuked the nVidia legacy driver -- it only supports a certain range of kernel versions. In the end, a colleague took pity and lent me one of his own cards, an old gamer's card with 4 outputs, 3 usable at once. Perfect. But when he wanted it back, to sell it, it was back into driver hell. In the end, I managed to get a huge fat double-slot AMD card from the IT department, with 4 outputs, and it Just Worked™ with a FOSS driver. NVidia driver versions are a massive cluster-fsck and perfectly good working cards are now e-waste because nVidia doesn't maintain its proprietary drivers, doesn't support more than a handful of GPU families in each release, and won't let you install >1 driver at a time. I am not a gamer. I don't give a rat's ass about 3D performance or CUDA or any of those toys. I just want a shedload of pixels in front of me, updated quickly, with some screens in portrait and some in landscape. (And a desktop that properly supports vertical panels so I can use those screens in any orientation I want with effective use of space.)
- uluyol 3y agoThe chances of getting Nouveau working well on older Nvidia hardware are essentially zero. There are legal issues with firmware redistribution. > Little hope of reclocking becoming available for GM20x, GP10x and GV100 as firmware now needs to be signed by NVIDIA to have the necessary access From https://nouveau.freedesktop.org/ https://nouveau.freedesktop.org/
- kelnos 3y agoWhen they say "early" days, I think they mean really old GPUs, like before the reclocking locks started becoming a thing.
- deleted 3y ago[deleted]
- rascul 3y agoLooks like the oldest card nouveau supports is the Riva TNT from 1998. I think it's fine for nouveau to support that and a new driver not to. I didn't get the impression that nouveau is going away any time soon.
- doix 3y agoI am totally out of the loop here, but wasn't the main problem with Nouveau the lack of documentation from Nvidia? They had to reverse engineer things to get it working. I get that some of the architectural choices no longer make sense, and starting from scratch will address those. But is the goal to have performance that is somewhat comparable to the proprietary drivers? Or just good enough to run the desktop environment with hardware acceleration.
- porphyra 3y agoMy understanding is that nowadays most of the heavy lifting is done by magic going on in the firmware, so the actual driver is relatively simple and is open source: https://github.com/NVIDIA/open-gpu-kernel-modules https://github.com/NVIDIA/open-gpu-kernel-modules
- roenxi 3y agoAny efforts by Nvidia are welcome, but that raises the question of why Red Hat are writing a new driver. Presumably there is some aspect of the OSS component that is dissatisfying Red Hat. It is weird for a 3rd party to be maintaining a 2nd driver when the first party has a reasonable OSS driver.
- doctorpangloss 3y agoThere are a few things someone would pay Red Hat dearly to do. In my opinion the most likely are: - No telemetry. - Enabling software blocked features. - Emulation. There are few possibilities about making a performant OSS driver: - This is impracticable, because the software you want to run on the GPU is so complex, and the hardware is so complex, that you will never get enough insights to make something that compares with the people who can see it all. - This is eminently practicable because: (1) the software is much simpler, and the GPU hardware much simpler. Perhaps there is a lot of obfuscation of the simplicity. Or (2) the application that best utilizes the hardware only needs a limited feature set that is within scope. I'm leaning on "application limited scope" and "telemetry." It aligns best with what is actually happening, which is NVIDIA is scooping up a lot of valuable intelligence on LLM workloads; and that there isn't enough competition for LLM "ASICs" to make them cheap enough to be worthwhile.
- aumerle 3y agoSigh. So yet another rewrite, which will result in yet another round of regressions. Hopefully, at the end of it we will have something better than yet another unofficial driver with partial functionality that lags behind in support for newer hardware. It's a real shame that many things in Linux land are so badly designed/maintained that they have to be re-written from scratch every few years. The major exception being the base kernel itself I suppose.
- tristan957 3y agoThis is completely on Nvidia. Don't buy a GPU from them if you care about Linux support.
- Mathnerd314 3y agoMy understanding was that the proprietary drivers work fine.
- fayalalebrun 3y agoEven though the newest nvidia drivers have started to support GBM, the Wayland compatibility story is still not great. In my experience on Wayland, several OpenGL programs refuse to work, and Vulkan does not work at all. This is with driver 545.
- saidinesh5 3y agoDoes anyone know How or where would this fits alongside the recent NVK driver by collabora? www.collabora.com/news-and-blog/news-and-events/introducing-nvk.html
- nan60 3y agoThis new driver (along with the modules Nvidia have released as OSS [1]) are kernel drivers and do not break userspace. NVK is a Vulkan implementation for Nvidia GPUs as part of the Mesa project (the same project that AMD's userspace drivers are a part of, even though AMDs kernel drivers are in tree). They are both needed to make a cohesive driver. [1] https://github.com/NVIDIA/open-gpu-kernel-modules https://github.com/NVIDIA/open-gpu-kernel-modules
- uluyol 3y agoThe kernel driver manages things like display setup, memory management (isolation between processes), and funneling of commands from user space to the hardware. This is more a replacement for Nouveau than NVK. NVK generates the commands to send to the hardware, by converting vulkan APIs to Nvidia-specific instructions, and feeds them to the kernel driver.
- toughruck 3y agoDoes the compilation time bother anyone?
- sph 3y agoWhen's the last time you have compiled the kernel? I bet waiting for Rust drivers to compile on a modern CPU should not take much longer than the last time I compiled the kernel by hand on a Core 2 Duo, circa 2013
- atlasduo 3y agoYou make two short-sighted assumptions: 1. "Nobody compiles a kernel these days". Sure, maybe not for daily use for most, but lots of people do for work and experimentation. Also, Gentoo. 2. "Everybody runs a modern CPU". Plenty of people still run decade-old hardware, and even older, because it works and in that decade objectives of PC have not significantly changed, so why would hardware?
- throawayonthe 3y ago[dead]
- sph 3y agoI honestly do not think the Linux Kernel team should worry too much about the very small niche of people that insist on compiling on slow CPUs. Cross compiling exists, and 99% of Linux users run a precompiled vmlinuz binary. On the other hand, the Rust language team should do their utmost to improve the speed of their compiler.
- thelastparadise 3y agoI agree with you, but: This driver is almost certainly not targeting 10 year old hardware. So when you define your kernel config, you wouldn't include this driver. The new code would be entirely skipped over at compile time. (Still think "rewrite everything in rust to solve all our problems" is a bit dumb.)
- 3y ago
- ListeningPie 3y agoNow that Nvidia is the leader in AI, there is more of a business case for them to work properly in Linux.
- ZiiS 3y agoTheir AI stuff has always been Linux first, they have just not cared about Wayland at all or X11 very much.
- ListeningPie 3y agoIs it on their graphics cards or is it a separate product line?
- resource_waste 3y agoAs the other person mentioned. AI has been flawless on Linux IMO(maybe not when it tries to use RAM instead of VRAM). When I use a server, I have 0 issues. I used to get an occasional nvidia issue with 2 monitors and steam, but that went away at some-point.
- ListeningPie 3y agoDo they use different drivers than on their GeForce cards. A NVIDIA driver update broke my kernel.
- ta12312344 3y agoI don't get it - they want to sell hardware. Microsoft v Linux v MacOS aside, why don't they care at all? I can understand Linux might get a little ... fickle. But why weigh into this? Put all your energy into drivers for all, and sell more product.
- thelastparadise 3y ago> they want to sell hardware Tight control of software and licensing is a core part of their business model.
- someguydave 3y agoNvidia clearly thinks that their driver and SDK is part of their moat and they are mostly correct