Software

From NvWiki
Revision as of 15:28, 20 April 2025 by Starfrost (talk | contribs) (Created page with "Nvidia has produced many pieces of '''software''' for users of their graphics cards. The main piece of software required is their drivers: they are required to make the GPU function at all, beyond the very basic (VGA, VESA, or Windows Advanced Rasterisation Platform - WARP in Windows 7 and later) level of compatibility assured for all forms of graphical hardware that are supported by Windows; any Nvidia-specific features require their drivers to be installed on the syste...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Nvidia has produced many pieces of software for users of their graphics cards. The main piece of software required is their drivers: they are required to make the GPU function at all, beyond the very basic (VGA, VESA, or Windows Advanced Rasterisation Platform - WARP in Windows 7 and later) level of compatibility assured for all forms of graphical hardware that are supported by Windows; any Nvidia-specific features require their drivers to be installed on the system. The first version of the Nvidia drivers was the series of VxDs running under Windows 3.x that allowed the NV0 to be simulated. There have historically been several sets of drivers for Nvidia hardware: initially, the first was Nvidia's drivers, based on their Resource Manager, which started development in 1994, and the very early versions of the NT miniport driver which programmed the hardware directly rather than through the RM, as a stopgap measure until the real Resource Manager was fully starting in roughly 1996. There was also a semi-official, very basic nv driver set for Linux, which was not judged sufficient for use of the cards, was infrequently updated and Nvidia required to be partially obfuscated (and was generally hard to deal with as a company)[1] : several driver projects started to provide a more complete emulation, with nouveau under the purview of the freedesktop project being the most popular and long-lasting, although Utah GLX (which successfully achieved 3D acceleration on the Riva 128 at least) and RivaTV, aimed at using the TV-out functionality and Mediaport of these cards, also existed. nv was also ported to BeOS and several other operating systems to allow Nvidia GPUs to be used on their operating systems. Later on, most of these projects declined in activity or were entirely discontinued, as Nvidia ported their full Resource Manager drivers to Linux and eventually partially open-sourced them, although parts of it were moved to the firmware running on modern nVidia GPUs' on-die Falcon and RISC-V cores prior to this.

Nvidia has also provided several custom APIs for their products for both graphics and non-graphics related applications, such as Cg (C for graphics) starting on the NV20, and for GPGPU applications, CUDA (Compute Unified Device Architecture) starting on the G80. However, these are largely implemented as Resource Manager clients or otherwise as parts of their drivers: for example, the game physics API PhysX, the Nintendo Switch graphics API nvn and its Switch 2 successor nvn2, the extremely confusingly named "NVIDIA Riva" AI speech generation API, NeMo for generative AI, RAPIDS for data science, CUDA-X for general AI libraries, and many more are all implemented in a similar fashion.

Supported platforms

Notes

^Leading to the infamous "Fuck you, Nvidia!" comment by Linus Torvalds in 2012