• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

NVIDIA Releases Open-Source GPU Kernel Modules

bug

Joined
May 22, 2015
Messages
13,996 (3.95/day)
Processor Intel i5-12600k
Motherboard Asus H670 TUF
Cooling Arctic Freezer 34
Memory 2x16GB DDR4 3600 G.Skill Ripjaws V
Video Card(s) EVGA GTX 1060 SC
Storage 500GB Samsung 970 EVO, 500GB Samsung 850 EVO, 1TB Crucial MX300 and 2TB Crucial MX500
Display(s) Dell U3219Q + HP ZR24w
Case Raijintek Thetis
Audio Device(s) Audioquest Dragonfly Red :D
Power Supply Seasonic 620W M12
Mouse Logitech G502 Proteus Core
Keyboard G.Skill KM780R
Software Arch Linux + Win10
I get it, backwards compatibility can be a damned if you do, damned if you don't kind of situation; I understand that.

But let's face the facts here. Microsoft has tried multiple times to remove backwards compatibility support for older hardware in the past only to be faced with the Internet equivalent of an angry mob with pitchforks and torches. Case in point, Windows 11's removal of support for older processors. They received ungodly amounts of blowback for that. Truly a no-win scenario for Microsoft.
I'm not denying any of that. I'm just saying, they're different approaches and neither is objectively better that the other. Your wish for stable APIs in the Linux kernel just sounds like "grass is greener on the other side" argument to me.
 
Last edited:
Joined
Aug 20, 2007
Messages
21,661 (3.40/day)
Location
Olympia, WA
System Name Pioneer
Processor Ryzen 9 9950X
Motherboard GIGABYTE Aorus Elite X670 AX
Cooling Noctua NH-D15 + A whole lotta Sunon, Phanteks and Corsair Maglev blower fans...
Memory 64GB (2x 32GB) G.Skill Flare X5 @ DDR5-6000 CL30
Video Card(s) XFX RX 7900 XTX Speedster Merc 310
Storage Intel 5800X Optane 800GB boot, +2x Crucial P5 Plus 2TB PCIe 4.0 NVMe SSDs
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) TOSLINK->Schiit Modi MB->Asgard 2 DAC Amp->AKG Pro K712 Headphones or HDMI->B9 OLED
Power Supply FSP Hydro Ti Pro 850W
Mouse Logitech G305 Lightspeed Wireless
Keyboard WASD Code v3 with Cherry Green keyswitches + PBT DS keycaps
Software Gentoo Linux x64 / Windows 11 Enterprise IoT 2024
You can put some of the blame on the Linux kernel itself, namely in the fact that every time you turn around, they change an internal API thus breaking shit. Now if only the kernel had a stable set external APIs that developers would be able to rely on not changing from this week to the next things would be great, but the Linux kernel community is allergic to this idea. Their answer to that issue is to just put your code in the mainline kernel tree and if things happen to break, we'll fix it for you.

But what if you don't want your code to be open source? Oops, sorry. We don't care about you.
And now that nvidia's kernel code is open source, this is a completely moot point really.

Anytime you have a closed binary targeting an actively updated kernel (windows kernel seldom updates) you were going to have a similar issue. It's progress vs stagnation at that point.
 
Joined
Mar 6, 2017
Messages
3,369 (1.17/day)
Location
North East Ohio, USA
System Name My Ryzen 7 7700X Super Computer
Processor AMD Ryzen 7 7700X
Motherboard Gigabyte B650 Aorus Elite AX
Cooling DeepCool AK620 with Arctic Silver 5
Memory 2x16GB G.Skill Trident Z5 NEO DDR5 EXPO (CL30)
Video Card(s) XFX AMD Radeon RX 7900 GRE
Storage Samsung 980 EVO 1 TB NVMe SSD (System Drive), Samsung 970 EVO 500 GB NVMe SSD (Game Drive)
Display(s) Acer Nitro XV272U (DisplayPort) and Acer Nitro XV270U (DisplayPort)
Case Lian Li LANCOOL II MESH C
Audio Device(s) On-Board Sound / Sony WH-XB910N Bluetooth Headphones
Power Supply MSI A850GF
Mouse Logitech M705
Keyboard Steelseries
Software Windows 11 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
It's progress vs stagnation at that point.
And then you have the old adage... If it ain't broke, don't fix it. If it works, great. Don't touch it!
 

bug

Joined
May 22, 2015
Messages
13,996 (3.95/day)
Processor Intel i5-12600k
Motherboard Asus H670 TUF
Cooling Arctic Freezer 34
Memory 2x16GB DDR4 3600 G.Skill Ripjaws V
Video Card(s) EVGA GTX 1060 SC
Storage 500GB Samsung 970 EVO, 500GB Samsung 850 EVO, 1TB Crucial MX300 and 2TB Crucial MX500
Display(s) Dell U3219Q + HP ZR24w
Case Raijintek Thetis
Audio Device(s) Audioquest Dragonfly Red :D
Power Supply Seasonic 620W M12
Mouse Logitech G502 Proteus Core
Keyboard G.Skill KM780R
Software Arch Linux + Win10
And then you have the old adage... If it ain't broke, don't fix it. If it works, great. Don't touch it!
You're not a software developer, are you?
 
Joined
Mar 6, 2017
Messages
3,369 (1.17/day)
Location
North East Ohio, USA
System Name My Ryzen 7 7700X Super Computer
Processor AMD Ryzen 7 7700X
Motherboard Gigabyte B650 Aorus Elite AX
Cooling DeepCool AK620 with Arctic Silver 5
Memory 2x16GB G.Skill Trident Z5 NEO DDR5 EXPO (CL30)
Video Card(s) XFX AMD Radeon RX 7900 GRE
Storage Samsung 980 EVO 1 TB NVMe SSD (System Drive), Samsung 970 EVO 500 GB NVMe SSD (Game Drive)
Display(s) Acer Nitro XV272U (DisplayPort) and Acer Nitro XV270U (DisplayPort)
Case Lian Li LANCOOL II MESH C
Audio Device(s) On-Board Sound / Sony WH-XB910N Bluetooth Headphones
Power Supply MSI A850GF
Mouse Logitech M705
Keyboard Steelseries
Software Windows 11 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
You're not a software developer, are you?
No, not professionally. I do tinker a bit and have written my own programs for my own needs but that's about it. The last big program I had that people were actively using has been retired for years.
 

bug

Joined
May 22, 2015
Messages
13,996 (3.95/day)
Processor Intel i5-12600k
Motherboard Asus H670 TUF
Cooling Arctic Freezer 34
Memory 2x16GB DDR4 3600 G.Skill Ripjaws V
Video Card(s) EVGA GTX 1060 SC
Storage 500GB Samsung 970 EVO, 500GB Samsung 850 EVO, 1TB Crucial MX300 and 2TB Crucial MX500
Display(s) Dell U3219Q + HP ZR24w
Case Raijintek Thetis
Audio Device(s) Audioquest Dragonfly Red :D
Power Supply Seasonic 620W M12
Mouse Logitech G502 Proteus Core
Keyboard G.Skill KM780R
Software Arch Linux + Win10
No, not professionally. I do tinker a bit and have written my own programs for my own needs but that's about it. The last big program I had that people were actively using has been retired for years.
Then let me explain why "if it works, don't fix it" doesn't work for software: developers come and go, in a few short years nobody will understand the code, even if it's still working. And working code still needs maintenance, be it for bug/security fixes or dealing with new CPU architectures.
It sucks, I know, but that's just a fact in the software development world. Every single project that I have worked on that was left as it is for 5+ years, inevitably ended up needing a complete rewrite.
 
Joined
Mar 6, 2017
Messages
3,369 (1.17/day)
Location
North East Ohio, USA
System Name My Ryzen 7 7700X Super Computer
Processor AMD Ryzen 7 7700X
Motherboard Gigabyte B650 Aorus Elite AX
Cooling DeepCool AK620 with Arctic Silver 5
Memory 2x16GB G.Skill Trident Z5 NEO DDR5 EXPO (CL30)
Video Card(s) XFX AMD Radeon RX 7900 GRE
Storage Samsung 980 EVO 1 TB NVMe SSD (System Drive), Samsung 970 EVO 500 GB NVMe SSD (Game Drive)
Display(s) Acer Nitro XV272U (DisplayPort) and Acer Nitro XV270U (DisplayPort)
Case Lian Li LANCOOL II MESH C
Audio Device(s) On-Board Sound / Sony WH-XB910N Bluetooth Headphones
Power Supply MSI A850GF
Mouse Logitech M705
Keyboard Steelseries
Software Windows 11 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
Then let me explain why "if it works, don't fix it" doesn't work for software: developers come and go, in a few short years nobody will understand the code, even if it's still working. And working code still needs maintenance, be it for bug/security fixes or dealing with new CPU architectures.
It sucks, I know, but that's just a fact in the software development world. Every single project that I have worked on that was left as it is for 5+ years, inevitably ended up needing a complete rewrite.
But that's why a good developer comments his or her code so that later, when someone new comes along, they know what the hell is going on.

That was one thing that they hammered into our heads back when I was taking beginning programming classes in college. Comment your code! And when you're done commenting, comment some more. Make it damned sure that anyone will be able to look at your code and tell what the hell you did.
 

bug

Joined
May 22, 2015
Messages
13,996 (3.95/day)
Processor Intel i5-12600k
Motherboard Asus H670 TUF
Cooling Arctic Freezer 34
Memory 2x16GB DDR4 3600 G.Skill Ripjaws V
Video Card(s) EVGA GTX 1060 SC
Storage 500GB Samsung 970 EVO, 500GB Samsung 850 EVO, 1TB Crucial MX300 and 2TB Crucial MX500
Display(s) Dell U3219Q + HP ZR24w
Case Raijintek Thetis
Audio Device(s) Audioquest Dragonfly Red :D
Power Supply Seasonic 620W M12
Mouse Logitech G502 Proteus Core
Keyboard G.Skill KM780R
Software Arch Linux + Win10
But that's why a good developer comments his or her code so that later, when someone new comes along, they know what the hell is going on.
That only works to a degree (and trust me, everything that's not open-source, it's usually very poorly documented). For example, it's hard to document business decisions (e.g. we're not going to support more than 16 channels here, because manager X said we don't need that in prod), because that kind of documentation does not belong in the code. And everything that's not in the code get stale and forgotten.
There's CMMI certifications to work around that, but very few companies bother with those if they're not doing something critical, like software for planes or nuclear power plants.
 
Joined
Mar 6, 2017
Messages
3,369 (1.17/day)
Location
North East Ohio, USA
System Name My Ryzen 7 7700X Super Computer
Processor AMD Ryzen 7 7700X
Motherboard Gigabyte B650 Aorus Elite AX
Cooling DeepCool AK620 with Arctic Silver 5
Memory 2x16GB G.Skill Trident Z5 NEO DDR5 EXPO (CL30)
Video Card(s) XFX AMD Radeon RX 7900 GRE
Storage Samsung 980 EVO 1 TB NVMe SSD (System Drive), Samsung 970 EVO 500 GB NVMe SSD (Game Drive)
Display(s) Acer Nitro XV272U (DisplayPort) and Acer Nitro XV270U (DisplayPort)
Case Lian Li LANCOOL II MESH C
Audio Device(s) On-Board Sound / Sony WH-XB910N Bluetooth Headphones
Power Supply MSI A850GF
Mouse Logitech M705
Keyboard Steelseries
Software Windows 11 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
No wonder why the same old tired security flaws keep coming back to bite us in the ass. You'd think that at some point we'd have fixed all the damn bugs already.
 

bug

Joined
May 22, 2015
Messages
13,996 (3.95/day)
Processor Intel i5-12600k
Motherboard Asus H670 TUF
Cooling Arctic Freezer 34
Memory 2x16GB DDR4 3600 G.Skill Ripjaws V
Video Card(s) EVGA GTX 1060 SC
Storage 500GB Samsung 970 EVO, 500GB Samsung 850 EVO, 1TB Crucial MX300 and 2TB Crucial MX500
Display(s) Dell U3219Q + HP ZR24w
Case Raijintek Thetis
Audio Device(s) Audioquest Dragonfly Red :D
Power Supply Seasonic 620W M12
Mouse Logitech G502 Proteus Core
Keyboard G.Skill KM780R
Software Arch Linux + Win10
No wonder why the same old tired security flaws keep coming back to bite us in the ass. You'd think that at some point we'd have fixed all the damn bugs already.
There's an additional reason for that. As language grow towards higher level, people just don't learn the basics anymore. For example, I'm working a lot with Java. And Java goes to great lengths to shield the programmer from the platform details and memory management. And when uncle Bob comes out with his "clean code" lecture, what do people understand? Write methods that are no more than dozen lines in length. If they're longer than that, break up the function. As if function calls were for free... Probably today half of the Java programmers don't understand how a function works anyway.
 
Joined
Feb 18, 2022
Messages
50 (0.05/day)
Processor Ryzen 5900X
Motherboard Asus ROG CROSSHAIR VII HERO
Cooling Noctua NH-U12S
Memory 4x Kingston HyperX 16G 3000MHz
Video Card(s) Asus ROG Strix 4800
Case Inwin 909
Power Supply EVGA Supernova 750 P2
Mouse Razer Lancehead Wireless
Keyboard Razer Huntsman V2 TKL
Software Debian Linux / Win11
You can put some of the blame on the Linux kernel itself, namely in the fact that every time you turn around, they change an internal API thus breaking shit. Now if only the kernel had a stable set external APIs that developers would be able to rely on not changing from this week to the next things would be great, but the Linux kernel community is allergic to this idea. Their answer to that issue is to just put your code in the mainline kernel tree and if things happen to break, we'll fix it for you.

But what if you don't want your code to be open source? Oops, sorry. We don't care about you.

When Qualcomm drivers are already compiled, it's not only about API compatibility, but mainly about ABI compatibility which is even stricter. Since Linux kernel needs to evolve and the architecture is monolithic, it needs to break internal APIs, but keep external API (for userspace) stable. But it can't be that hard to assign two people to maintain drivers, right?
 
Top