Last week I got an interesting email the day after NVIDIA dropped their 182.06 GeForce drivers to coincide with the launch of FEAR 2. To sum up the relevant bits of the email, the question was “Why are NVIDIA’s drivers so big?”

Although the most immediate answer to that is not particularly interesting – they’re as big as they need to be because they must be – this made for a great excuse to do some exploratory dissection. The latest GeForce Windows Vista 64 drivers weigh in at 100MB, which is not necessarily huge given that broadband is (mostly) plenty and disk space is cheap, but none the less it’s a bit of an infamous mark to hit if only because it wasn’t that long ago that 100MB was the size of an entire operating system. Just to be clear we’re not knocking NVIDIA here (we’ll get to why everything is so big in a moment) but the size of their drivers does make for an interesting discussion. What’s in a 100MB driver?


NVIDIA 182.06

We’re not going to list every single file (there are 59 of them, most of which are small files we don’t care about) but we’ll hit the highlights. Right off the bat, we run in to the matter of redundancy. Anyone who has seen the structure of Vista 64 has seen that there are a number of seemingly redundant applications and libraries. The reason for this being that Vista 64 needs both 64bit and 32bit versions of most libraries so that it can run native 64bit applications and run 32bit applications through WoW64. This kind of redundancy sneaks in to video drivers too due to the way the OS is structured. All told the Vista 64 driver package is 18MB larger than the Vista 32 package due to the need for a separate 64bit OpenGL driver (nvoglv64), a separate 64bit Direct3D driver (nvd3dumx), and finally due to general binary bloat (64bit binaries are slightly larger due to the larger instructions).

Next on the list we have the NVIDIA control panel, which is spread amongst several files. We’ll call it 15MB, but it’s probably a bit larger than that. We’ll follow that up with the Vista kernel driver (nvlddmkm) at nearly 5MB, the 32bit OpenGL driver (nvoglv32) at 4.5MB, the display server (nvDispS) at 3.5MB, and the CUDA driver (nvcuda) is well down the list at 1.2MB. There are a few other files bigger than this, and many more smaller than this, but it quickly adds up.

The single biggest file however is PhysX_9.09.0203_SystemSoftware, which as the name implies is the PhysX installer. The PhysX software is for all intents and purposes its own beast; it’s a CUDA application that doubles as its own drivers and libraries. Of the 100MB for the entire GeForce driver package, 40MB of that is just for PhysX. As for why it’s so big, most of this is due to the structure of the PhysX drivers as inherited by NVIDIA upon their purchase of AGEIA last year. Every version of the PhysX middleware requires its own version of the PhysX core library (PhysXCore) along with some object code for the still-supported AGEIA PCI and PCIe PPUs. There are 25 versions of the middleware included in NVIDIA’s PhysX drivers at this moment, which is what leads to large size of the PhysX installer.

Finally, there is the matter of the compressed and installed size of NVIDIA’s drivers. So far we’ve been quoting the compressed size of everything since that’s how the driver is downloaded, but it’s worth mentioning the installed (uncompressed) size of the drivers too. This isn’t quite as easy to track and add up as with the compressed drivers, but we’d estimate the total size is in the ballpark of 250MB. This is roughly split evenly between the GPU drivers and the PhysX drivers. Also keep in mind that this doesn’t include NVIDIA’s optional System Tools software needed for GPU overclocking, GPU monitoring, etc. That’s another 82MB compressed.

We also took a quick look at some previous GeForce driver packages for Vista 64, to get an idea of how much the drivers have grown over the past couple of years. Drivers are like any other software: more computing power and more space eventually leads to everything getting a bit bigger, so there’s no real surprise here that they grew in size.


NVIDIA 163.75


NVIDIA GeForce Driver Installer Size (Vista 64)
Version
PhysX Installer
Total Size
163.75 N/A 43MB
175.19 N/A 50MB
178.13 50MB 103MB
180.48 35MB 91MB
182.06 40MB 100MB


The 163 drivers are from November of 2007, so this covers roughly a 1.25 year time span. The big leap in size with the 178 drivers is when NVIDIA started including the PhysX installer with the GeForce drivers, which actually made those drivers slightly bigger at 103MB (due in large part to a 50MB PhysX installer). Excluding the PhysX installer, there’s no specific pattern in growth - between 163 and 182 virtually every driver file got bigger. The control panel and OpenGL drivers are the biggest culprits here due to their large size in the first place. As for the PhysX installer, the aforementioned need for it to include several versions of the PhysX libraries makes it an outlier. NVIDIA did beat 15MB out of it for the 180 drivers (down to 35MB) only for it to jump up to 40MB for 182. While we only have a short window of time to judge from, so far it’s the single biggest reason that NVIDIA’s GeForce drivers are growing as much as they are, and it looks like that will be continuing in to the future.

Not to be left out, we also cracked open ATI’s latest Catalyst 9.2 drivers to take a look at their size. The 62MB driver package is a bit bigger on the driver side than the control panel side (40MB/22MB or so) and we’d estimate the total installed size is around 140MB, although it’s even harder to gauge than NVIDIA’s drivers. This makes them roughly as big as NVIDIA’s own GPU drivers and control panel; the difference between the two comes down to the PhysX software.

And for those of you curious about platform differences, the latest NVIDIA GeForce drivers for Linux x64 (180.29) are 20MB.


ATI Catalyst 9.2

POST A COMMENT

33 Comments

View All Comments

  • brausekopf - Thursday, February 26, 2009 - link

    They have two different code paths for the cards before the 8000 breed and one for the newer cards. In some places they have several code paths depending on the host CPU. Sometimes they use differing optimizations based on the benchmark/game that uses the driver. They support DirectX, OpenGL and CUDA. They bring just-in-time compilers for the shader languages cg (Nvidia) and HDSL (Microsoft). They bring Vendor-specific patches for Laptops. They brng PhysiX. Common, in former times a whole OS was simpler... Reply
  • icebox - Thursday, February 26, 2009 - link

    Considering that a realtek sound driver weights around 40 mb these days nothing surprises me. Thinking that a driver is something loaded with the system and always "on" and running you'd think that more optimization is required. But hey in a 12 GB Vista install it fits :) Reply
  • Wikantoro - Wednesday, March 5, 2014 - link

    OMG it's more than 1 GB now. I noticed 1,3 GB change in my hdd space when I ONLY install drivers manually from the Graphics.Driver folder Reply

Log in

Don't have an account? Sign up now