NVIDIA 7900GT + NVClock
Since the public launch of the NVIDIA GeForce 7900 series this past week (March 09, 2006) we have been assisting Roderick Colenbrander, or better known as NVClock's Thunderbird, in appending support for these GPUs under this Linux NVIDIA utility. For those that have never used NVClock, it is a text-based and graphical (GTK or Qt) utility released under the GNU General Public License and was originally designed as the lone NVIDIA overclocking utility. Since its inception, NVIDIA has brought CoolBits to Linux and integrated it with its display drivers. Even with CoolBits available, NVClock now has the option to rely upon it or to use its own low-level backend for overclocking. Various features have also since been added such as the ability to override the GPUs fan speed as well as controlling other hardware aspects of the GeForce/Quadro product. As we had shared in our NVIDIA GeForce 7900GT 256MB Preview (EVGA 7900GT CO SUPERCLOCKED 256MB), the NVClock code from early March on the SourceForge CVS server was quite aware of the card's general information and was able to detect some settings correctly, however, the clock speeds were incorrect as well as the memory type, and the GPU registers were not all displayed. On top of these NVClock issues, NVIDIA has yet to deliver to the public their new Linux display drivers. In addition to the Linux GeForce 7300/7600/7900 support, there are also a great deal of other changes that are expected, as we had shared in previous articles and news items. A great deal of *NIX users (including Phoronix) were anticipating the new drivers to be released on March 9, similar to what we encountered on June 22 of last year with the GeForce 7800GTX launch, but we still have yet to see these new drivers. We are presently working with eVGA and NVIDIA to deliver these new Linux results as soon as possible, as well as getting a better understanding for when these drivers will be launched for the general public. Back onto the topic of NVClock support of the GeForce 7900 series, Roderick has made a few changes to the NVClock v0.8 code that should get the card working. This code should appear on the NVClock SourceForge CVS server soon. With this G71/NV49-aware code, there are many corrections from what we had seen when writing our GeForce 7900 preview, however, portions of NVClock still have difficulties with this new card. Roderick does believe he has a temperature sensor fix, which should be merged later this week. Presently in NVClock there are fan speed adjustment issues, such as with the 7800GS and these problems have carried over to the GeForce 7900 series. No word yet when the fan speed should be working appropriately. It is believed the fan speed adjustment is not yet working as it uses a register to which NVClock does not know about. Attempting to set the fan speed will yield "Error: Your adjustment of the fan speed isn't supported on your type of videocard!". We have been testing this revised code today and have additional NVClock information to provide as to its present status.
#nvclock -i -- General info -- Card: nVidia Geforce 7900GT Architecture: NV49 A2 PCI id: 0x291 GPU clock: 449.999 MHz Bustype: PCI-Express -- Pipeline info -- Pixel units: 6x4 (111111b) Vertex units: 8x1 (11111111b) HW masked units: None SW masked units: pixel b vertex 00000000b -- Memory info -- Amount: 256 MB Type: 256 bit DDR Clock: -2147483.750 MHz -- Sensor info -- Sensor: GPU Internal Sensor GPU temperature: 92C
Running nvclock -i, the pipeline and sensor information are now printed, however, the GPU clock and memory clock continue to provide inaccurate readings. On the other hand, the memory type is now correctly reporting a 256-bit interface. From the sensor information, the GPU core temperature had a reading of 92°C, and in some instances of our testing was reporting values upwards of 110°C, which is obviously wrong and Roderick has been alerted to these problems. He had also stated the clock calculation is different, yet again, and he is not sure yet what this new formula is like.
#nvclock -D --- nVidia Geforce 7900GT GPU registers --- NV_PMC_BOOT_0 (0x0): 049100a2 NV_10F0 (0x10f0): 00007fff NV_1540 (0x1540): 73ffff3f NV_15B0 (0x15b0): 40000000 NV_15B4 (0x15b4): 08000000 NV_15B8 (0x15b8): 98800f08 NV_15F0 (0x15f0): 00000000 NV_15F4 (0x15f4): 00000000 NV_15F8 (0x15f8): 7fffffff NV_C010 (0xc010): 00000000 NV_C014 (0xc014): 14000000 NV_C018 (0xc018): 00000000 NV_C01C (0xc01c): 00000000 NV_C020 (0xc020): 00000000 NV_C024 (0xc024): 00000000 NV_C028 (0xc028): 00000000 NV_C02C (0xc02c): 00000000 NV_C040 (0xc040): 3c0bc3ff NV40_NVPLL_A (0x4000): c0010000 NV40_NVPLL_B (0x4004): 19060801 NV_4008 (0x4008): 03310000 NV_400C (0x400c): 00000000 NV_4010 (0x4010): c003003d NV_4014 (0x4014): 17050e02 NV_4018 (0x4018): c003003d NV_401C (0x401c): 17050e02 NV40_MPLL_A (0x4020): a4300000 NV40_MPLL_B (0x4024): 00003102 NV_4028 (0x4028): 00000000 NV_402C (0x402c): 00000000 NV_4030 (0x4030): 00000000 NV_4034 (0x4034): 00000000 NV_4038 (0x4038): a4300000 NV_403C (0x403c): 00003102 NV_4040 (0x4040): 00000000 NV_4044 (0x4044): 00000000 NV_4048 (0x4048): 00000000 NV_404C (0x404c): 00000000 NV_4050 (0x4050): 00000000 NV_4054 (0x4054): 00000000 NV_4058 (0x4058): 00000000 NV_405C (0x405c): 00000000 NV_4060 (0x4060): 00000000 NV_PFB_CFG0 (0x100200): 43002073 NV_PFB_TIMING0 (0x100220): 0916271f NV_PFB_TIMING1 (0x100224): 0c01070c NV_PFB_TIMING2 (0x100228): 2028060a NV_NVPLL_COEFF_A (0x680500): 00000000 NV_MPLL_COEFF_A (0x680504): 00000000 NV_VPLL_COEFF (0x680508): 00030e02 NV_PLL_COEFF_SELECT (0x68050c): 00000004 NV_NVPLL_COEFF_B (0x680570: 00000000 NV_MPLL_COEFF_B (0x680574: 00000000
Also fixed is the debugging output, which now properly displays the GeForce 7900GT GPU registers. For those interested in the GTK interface, on the following page are a few shots from the 7900GT NVClock panel. Overall, NVIDIA GeForce 7900GT support is quickly approaching NVClock (perhaps even faster than the status of NVIDIA's proprietary Linux drivers). There still is a lot of work to be done, however, for those users running these newer GeForce cards you are invited to submit the debugging output (-D) and other pertinent information. We also hope to share some NVClock Linux 7600 information soon. As additional Linux-based hardware events occur with these next-generation solutions, we will certainly be covering these happenings.