NVIDIA has finally introduced their first Kepler-based graphics card: the GeForce GTX 680. The new Kepler graphics architecture is an exciting successor to Fermi, but how well does this new graphics processor work under Linux? Here’s a glimpse in what to expect for the NVIDIA GeForce GTX 600 series on Linux.
First of all, the NVIDIA GeForce GTX 680 is designed to compete with AMD’s Radeon HD 7970 Southern Islands graphics card. The GTX 680 has a 28nm GK104 Kepler GPU with 1536 CUDA cores, 128 texture units, 1006MHz core clock, PCI Express 3.0 support and initially there’s just 2GB of GDDR5 video memory on a 256-bit bus. The GeForce GTX 680 has a 195 Watt TDP and carries a $500 USD price-tag.
At the moment I don’t have a GeForce GTX 680 “Kepler” graphics card, but I should hopefully have a sample arriving in the coming days from NVIDIA Corp for carrying out some Linux benchmarks of this new high-end offering. In terms of the Linux expectations for the GTX 680 and other to-be-launched GeForce 600 Keplers: the binary driver should be in great shape while the open-source support will continue to lag.
On the binary driver side, NVIDIA’s official binary Linux driver should already handle Kepler. Going back to the Linux driver releases from late last year I’ve heard there is Kepler support in place already, but is certainly being polished with the more recent releases. As of Thursday morning there hasn’t been any new Linux driver release to officially bring in the GeForce GTX 680 support, but I would expect a new release soon.
NVIDIA’s current official driver release is version 295.20, which came in mid-February. NVIDIA’s already overdue for a new driver release (or at least a beta), so I would expect something soon and based upon their past history for the better part of a decade quickly releasing new Linux / Solaris / BSD drivers with official product support following major GeForce product announcement. Even with using the current NVIDIA binary blobs, at least you won’t see an annoying (and amdconfig-restricting) unsupported hardware watermark like was the case with AMD Radeon HD 7000 “Southern Islands” GPUs and their Catalyst driver up until recently.
If past NVIDIA generations are any indication, the initial NVIDIA Linux binary driver should be roughly on-par with the Windows driver for the GeForce GTX 680 — both in terms of features and performance. The driver code-base remains largely shared between all supported operating systems, though lately the support has deviated a bit.
With the NVIDIA GeForce 400/500 “Fermi” generation, the Linux driver went without overclocking support. Fermi Linux overclocking support with CoolBits from the NVIDIA driver remains unsupported while it’s long been exposed under Windows. The reasoning from the NVIDIA Linux engineers about this missing feature is that with the Fermi architecture it’s a lot more complicated to handle and it’s on their TODO list to implement overclocking support, but it’s a lower priority. I suspect that Kepler also won’t be able to be overclocked under Linux since the support is still M.I.A. from Fermi, but I’ll see what NVIDIA Corp has to say on the topic.
If you go out to buy one of these $500 NVIDIA graphics cards in the coming days, expect it to work well with the Linux binary driver. However, on the open-source side, that’s a very different story.
NVIDIA still doesn’t provide any open-source support or documentation at all for their new GPUs, since they dropped supporting their next-to-useless un-accelerated UMS-only xf86-video-nv driver prior to Fermi (NVIDIA Drops Their Open-Source Driver, Refers Users To VESA). At least though there’s no apparent signs of policy changes with Kepler. NVIDIA’s stance towards the Nouveau driver project remains that they do nothing to help nor hinder their reverse-engineering open-source effort.
Nouveau now has a tough road ahead in reverse-engineering the Linux binary driver’s Kepler support and to then write the new hardware enablement code. This, unfortunately, will be a long and drawn out process. Nouveau developers are still working on Fermi support with some graphics cards still being problematic, power management remains less than ideal, re-clocking is still a work in progress, and the performance is still behind NVIDIA’s official binary driver, among other open work items for this community-powered driver.
No Kepler on Linux fun, yet…
While no official word has come out of the Nouveau camp, I would be surprised if they will be able to land Kepler support prior to the Linux 3.6 kernel, which would be late in 2012. If they manage to hit anything for the Linux 3.5 kernel, it would probably be just the un-accelerated kernel mode-setting support. When any accelerated support does land, they may need to battle the same challenges as previous generations with needing to worry about external firmware for a while, etc. Kepler is effectively another restart in the project; I would be surprised if they have any reliable and worthwhile open-source Kepler support prior to the end of 2012. This means don’t expect a reputable “out of the box” Linux experience for the GeForce 600 series until at least the first round of Linux distribution releases in 2013, but it would be a pleasant surprise if they manage to get a stable level of support earlier than these expectations.
That’s about it for now with the GeForce GTX 680 “Kepler” on the Linux side. Hopefully I’ll have out some GTX 680 Linux benchmarks in the coming days, and/or there’s a great likelihood that others will soon begin uploading their own Kepler Linux results to OpenBenchmarking.org via the Phoronix Test Suite, if there aren’t any results up there already.
More information on the GeForce GTX 680 can be learned from NVIDIA.com or found via the OpenBenchmarking.org indexing engine is already a number of NVIDIA GeForce GTX 680 reviews, albeit it’s all Microsoft Windows-based testing. For now you can also look at some Radeon HD 7950 Linux benchmarks using the Catalyst driver, the open-source support for AMD Southern Islands was just released this week.