Microarchitectures per Linux legacy driver: can you confirm these?

I’m adding some more advanced nvidia data to the graphics report of the inxi tool, for legacy drivers. By odd coincidence, I was working on this feature at the same exact time the opensourcing of the 515 kernel driver component was announced, and the initial foss github kernel driver code was published. This makes the new feature even more relevant, since many users will want to know if their nvidia cards are going to support the new free driver kernel module. This will also be useful for forum and other support people I believe, for the same reason.

I’d liike to confirm some of the advanced data I’ve gathered. This page lists the microarchitectures by series:

and this nvidia page lists the product ids per legacy driver:

Some of the legacy drivers seem to have some crossover between microarchitecture series, so it would be nice to get this confirmed:

71.86.xx - Fahrenheit,Celsius (2 from celsius, 256 series)
96.43.xx - Celsius,Kelvin
173.14.xx - Rankine
304.xx - Curie
340.xx - Tesla
367.xx - Kepler
390.xx - Fermi
470.xx - Kepler [did it include some Fermi too?]

Unknown yet is if Maxwell, Pascal, Volta series will be covered by the turning/ampere 515 open source driver, or if they will constitute a new legacy driver that will come after 470 but before the foss 515 supported cards.

I’d like to get this information technically correct out of the box, so any confirmations or corrections appreciated.

Support timeframes for Unix legacy GPU releases | NVIDIA lists the last microarch for some of the legacy drivers, and some of the kernel/xorg last supported, but not all. I used my sgfxi tool to fill in that missing data since it goes back to the first 71.xx series driver with xorg and kernel tests.

thanks, appreciate any feedback

Working sample (in pinxi):

  Device-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel
    legacy-nonfree: series: 173.14.xx status: EOL last-supported: kernel: 3.12
    xorg: 1.15 ports: active: VGA-1 empty: DVI-I-1,TV-1 bus-ID: 01:00.0
    chip-ID: 10de:0322 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.3 driver: X: loaded: nouveau
    unloaded: fbdev,modesetting,vesa alternate: nv,nvidia gpu: nouveau
    display-ID: :0 screens: 1

I’m going to tweak this output a bit to make it more user friendly, and probably add an --nvidia option to show more granular type info like the microarch support etc.

Hi harald,

My recommendation would be to use the same header that nvidia-installer uses to recommend legacy driver versions based on the device ID: nvidia-installer/nvLegacy.h at main · NVIDIA/nvidia-installer · GitHub

In case it helps, there is also some discussion here about better documenting which GPUs are supported by open-gpu-kernel-modules:

That’s a useful resource, thanks, I’d forgotten the 367.xx legacy series. However, it doesn’t confirm my list of microarchitecture names per legacy series. Some are easy since they are short runs, like 73 and 96 and 173 and 367, but others I’m not sure I got the microarch names accurately.

Right now, all resources are helpful, thanks.

While the coincidence of my adding this feature the same hour that nvidia announced the foss 515 driver amazes me, the exact purpose for this feature is almost exactly to show the information to users in a clear and easy way, since obviously people will want to know if their card is supported by the foss kernel module.

That link answers another question I had, whether volta/pascal etc were also supported by free 515 kernel module. Also the suggestion Kepler may be added.

I’m working on this feature now, and given this data suddenly jumped from ‘nice to have’ to ‘important for users/support people’, I’m changing and tweaking it a bit.

This must be a huge amount of work (and code license reviews) for you all, so this is really appreciated, re the open sourcing of the kernel module.

Note aritger’s comment:

For GeForce and Workstation, product names can make it difficult to infer what GPU architecture is in a product.

Extending supported-gpus/supported-gpus.json with an identifier, and including it in this github repository, is a good idea.

is similar to what I am looking for, and what inxi will provide fairly soon if I can lock this down in the next days.

Right now I’m looking at showing the basic stuff people need to know with -Ga, which is graphics data plus full admin mode verbosit, and with --nvidia, for complete -Ga plus precise nvidia legacy and current information. Since the vast majority of inxi users don’t read the help or man page, and use the -F full output, with varying verbosity levels, the goal here is to show users who run -Fa all the information that they need to know what series their card is, and what microarch.

Note that the wikipedia does a decent job matching the product name/series with the microarchitecture, with notes about oddities in naming, marketing changes etc, mobile changes, but it doesn’t contain product ids, and the nvidia provided support pages provide product ids and names, but not microarchitecture names per product id/name item. It also is helpful to learn that marketing numbering, like G800M, actually are G700 based gpus, which was helpful to me to understand the numbering schemes.

I have to deal with a similar issue with cpu microarchitecture names, and their family/model/stepping ids in inxi to show that information, the data is not provided in one single place (and never by the cpu vendor, I have to use 3rd party sites like cpu-world.com to get that info), you have to combine resources to get it figured out, which is a pain.

inxi will go fairly far to alleviate some of this, though there’s no way to provide a granular product id => microarch since one legacy driver level can contain > 1 microarch, and for 515, it looks like it may contain 5? Maxwell, Pascal, Volta Turing, Ampere?

There’s a tentative PCI ID matching set here: No documentation on which GPUs this driver supports · Issue #18 · NVIDIA/open-gpu-kernel-modules · GitHub if anyone finds it useful.

Since it’s a regex hack parsing the 5.15 series supported device list against the wikipedia maxwell > ampere product name/ids, it’s obviously not going to be perfect, but it’s a start, and is largely good enough for a start.

Ideally this data would be collated by nvidia in a complete form somewhere or other to remove the room for error, it’s quite difficult tracking down these sequences due to frequent marketing type re-naming of specific series, but this is closer.