NVIDIA Starts Publishing GPU Hardware Documentation To Help Open-Source Drivers

Written by Michael Larabel in NVIDIA on 7 August 2019 at 02:22 PM EDT. 85 Comments
Today is a wild one for open-source/Linux users. Let's begin with the unexpected news: NVIDIA is releasing more GPU hardware documentation at long last! Yes, freely-available hardware interface documentation to assist in the development of the open-source NVIDIA Linux driver (Nouveau).

Here's the direct official quote I was emailed from NVIDIA in alerting me to this new effort they are ready to announce:
NVIDIA has released public, freely available (MIT licensed) documentation of portions of its GPU hardware interface. This is a work in progress; not all interfaces have been published.

NVIDIA is releasing this documentation to support open-source development for their GPUs with the Nouveau project being their first known user/project.

This has been a multi-year undertaking that has now been launched on GitHub and the documentation under an MIT license.

The documentation made public at this point primarily covers Maxwell, Pascal, Volta, and Kepler generations of NVIDIA graphics as more is being worked on -- obviously the latest-generation Turing we'd certainly like to see sooner rather than later. When asking about open-source Turing documentation, I hear it's a work-in-progress.

The initial documentation published covers their BIOS tables, device control block, device initialization, security around their Falcon engine, memory clocking/tweaking, shader program headers, power states, and various other bits. While not fully exhaustive documentation, it's a lot more than we have seen out of NVIDIA to date. Generally they have just released random small scraps over the years and this is the first time they are outing their documentation under a unified repository/project/space with more documentation in tow. It goes back to at least 2012 when they said they would release more docs while now it appears they are living up to that promise for helping Nouveau.

Before anyone asks in the forums: unfortunately, no, at this stage it doesn't help with Nouveau's biggest challenge of re-clocking / signed firmware since GTX 900 series making it a real obstruction to be able to re-program the hardware to operate at its effective clock speeds rather than the lower boot clock speeds. When asking NVIDIA about it, they are aware of the situation but no solution to announce right now.

NVIDIA's new home for GPU open-source documentation can be found via NVIDIA/Open-GPU-Doc on GitHub and the HTML view.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week