Nouveau Begins To Work Towards Unreleased GK110

Written by Michael Larabel in NVIDIA on 7 September 2012 at 06:39 PM EDT. 3 Comments
NVIDIA
While the hardware hasn't even been released yet by NVIDIA, support for the very interesting and powerful GK110, a.k.a. "Kepler 2", is already starting to materialize within the open-source reverse-engineered Nouveau driver.

The GK110 graphics processor is coming later in the year and is massive: it's home to approximately 7.1 billion transistors, or nearly double that of the current-generation Kepler GPUs in the GeForce 600 series. This next-gen Kepler is going to really ramp up the double floating-point performance (as much as 2~3x faster) plus other optimizations for much greater GPGPU/Compute abilities. The initial graphics card to sport a GK110 will be the NVIDIA Tesla K20 GPU-compute accelerator and then later on should work from the workstation/cluster market into consumer-grade market.

The GK110 is a radically different GPU design compared to current-generation Kepler GPUs. By now you have likely read all about the GK110 for months if you're interested in low-level graphics processor details. NVIDIA has publicly released a 24-page white-paper on the GK110 architecture, which is viewable as a PDF.
"Comprising 7.1 billion transistors, Kepler GK110 is not only the fastest, but also the most architecturally complex microprocessor ever built. Adding many new innovative features focused on compute performance, GK110 was designed to be a parallel processing powerhouse for Tesla® and the HPC market. Kepler GK110 will provide over 1 TFlop of double precision throughput with greater than 80% DGEMM efficiency versus 60‐65% on the prior Fermi architecture. In addition to greatly improved performance, the Kepler architecture offers a huge leap forward in power efficiency, delivering up to 3x the performance per watt of Fermi."
What's interesting though is that Nouveau GK110 work has already begun in a very early form... NVIDIA officially doesn't back the Nouveau project at all, they aren't an open-source-friendly company, Nouveau has no official corporate backer besides Ben Skeggs being employed by Red Hat and some sponsorship by PathScale, and the expensive GK110 hardware isn't even publicly available yet.

The first Nouveau GK110 commit I spotted happened earlier today hit mainline Mesa Git. The commit, which introduced nearly 1,700 lines of new code, was authored by Christoph Bumiller. Bumiller is a student out of Vienna that has long committed to the Nouveau driver. This Git commit is entitled "nvc0/ir: add initial code to support GK110 ISA encoding."

From the NVC0 Gallium3D driver, this code provides the basics of a code emitter for the GK110 encoding of the Fermi/Kepler instruction set architecture. Much work is left before the GK110 ISA code emitter is fully ready for the Gallium3D driver, but it's a measurable start with 1,691 lines of fresh code.

I have yet to see any GK110-related code hit the xf86-video-nouveau DDX or the Nouveau DRM tree for the Linux kernel driver to provide kernel mode-setting, etc. Still though it's noteworthy that GK110 in the Nouveau world is already being thought about when initially this hardware is just targeting the HPC market where Nouveau really doesn't have much of a presence with its OpenGL and OpenCL/CUDA support not being up to scratch. There's basic OpenCL support now in the Gallium3D world plus a basic open-source CUDA run-time, but it's far from parity for now with the officially supported NVIDIA Linux binary blob. Nouveau doesn't even have proper power management support yet.

It's interesting that the GK110 Nouveau support has begun, albeit in a very early and yet-to-be-usable form with the DRM driver changes not even having been made yet to provide mode-setting support, but noteworthy nevertheless. It's also unknown right now what the motives are for Christoph Bumiller to be working on support for the unreleased NVIDIA graphics processor.

With the current-generation GeForce 600 "Kepler" series, there was also an interesting incident where this community-based reverse-engineering driver managed initial same-day support for the GeForce GTX 680. At least two Nouveau developers managed to get their hands early on GeForce GTX 680 graphics cards and were able to begin working on the support, albeit going from Fermi to Kepler the initial driver changes weren't too extensive. The same-day Kepler support worked, but required first running the NVIDIA binary driver in order to extract some important firmware (the "FUC" microcode) so the graphics card can later initialize with the Nouveau driver.

Within the mainline Linux kernel this Kepler acceleration support is still limited until the DRM driver can generate its own support. In addition, there isn't yet any re-clocking or power management support for Nouveau Kepler, so the performance is quite slow with the boot speeds tending to be very low. At least these limitations have since been addressed with Nouveau's support for the previous-generation NVIDIA Fermi GPUs, but there they're still working on better re-clocking support and other improvements.

Anyhow, in terms of the Linux support for the GK110-based graphics cards on launch day, there will be official support for sure within the binary NVIDIA Linux graphics driver.
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