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

32 Comments

View All Comments

  • lamga - Saturday, March 07, 2009 - link

    Creative Labs had the dubious honour of gigantic SoundBlaster drivers back in 2000. I remember they refused to host the full Audigy driver suite on their website because it was so large - they only offered patch files which you had to apply to an existing install derived from your driver CD. Reply
  • devilxc - Friday, February 27, 2009 - link

    Have you ever used the DiNovo Keyboard / Mouse combination from Logitech? The drivers are a massive 107Mb! For a mouse and keyboard that can be detected by windows.

    Incidently they are s*** drivers. They cause an unreponsive and laggy mouse.

    Thank god we're not using 56k dial up!
    Reply
  • Zak - Thursday, February 26, 2009 - link

    I think it's about time. Since all the innovating competition is gone ATI and Nvidia are just playing catch up games with each other. Little innovation really. Even though I'm happy with my dual 285s I don't like where this is going: more, bigger and hotter GPUs. Maybe Intel will enter with a big bang and raise the bar and force both ATI and Nvidia to start innovate again. More competition is good for us. I think it's hard to talk about competition when we have just two companies locked in a ring with each other.

    Z.
    Reply
  • hellcats - Thursday, February 26, 2009 - link

    I bought an HP laser printer. Its "device driver" weighed in at 650 Mb (an entire CD). Of course it wasn't really just a device driver. It was like 10 Mb of device driver and 640 Mb of shovel-ware. But even the "minimal" install took like 320 Mb and over 30 minutes to install. Unbelievable. I remember "Hello World" on the original Mac 128 taking like 4800 bytes (including the stdio runtime). Heck, the entire original Mac, floppy drives and all would fit inside the Core 2's secondary cache. Fastest MacWrite on the planet! Reply
  • cosmotic - Thursday, February 26, 2009 - link

    nVidia dropped the single driver model a long time ago. Saying it includes drivers for other cards are lies. You MUST click the model on your card on their website to get the driver.

    I agree with nubie. The old tab UI was bad, but the new window is WAY WAY worse.

    I agree with Jaguar36, that's a LOT of code. Hes not saying they wrote a lot of code and that's why its huge, hes saying there's a ton of garbage and unoptimized crap in there.

    Regarding compression, using install shield is a mistake to begin with. They could easily pack that stuff in a NSIS installer and save 4MB right there.

    And even if they really are storing code for all the different hardware in one file, it's still ridiculous. That means 10 copies of the same thing in memory. Great.

    There are no excuses. The only two reasons these drivers are huge are the developers are amateur/inexperienced/uneducated/stupid and lazy.
    Reply
  • Gannon - Friday, February 27, 2009 - link

    "Saying it includes drivers for other cards are lies."

    Go to nvidia.com --> drivers, then select the the lowest gpu, then do it for the highest one... notice how they all link to the same damn file.
    Reply
  • nubie - Thursday, February 26, 2009 - link

    "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."

    Riiight, I guess I will continue to add a coolbits and sedonadisable registry key and continue using the "Classic Control Panel" complete with hardware monitoring and overclocking options.

    I was very pissed when the new control panel came out and the tagline was always "enabling greater control with more options in an easy to use manner". I thought it was Bullshit. But I also thought they would fix it in due course, well 4 years later I am still waiting.

    Greater Control - BS - I have yet to see as many options on any new control panel.

    More Options - BS - Features are consistently missing, such as LCD digital control.

    Easy to Use - BS - Please help me understand how it is easier to use, maybe because it has less functionality? After all, simple things are by definition simpler.

    Bad nVidia, there was a time when your control panel and drivers were the envy of ATi, just because they are retarded enough to require .NET framework 2.0 for their "flash and awe" control panel doesn't mean you need to drop your quality control on functional drivers.
    Reply
  • Mr Roboto - Monday, March 02, 2009 - link

    I hate the new control panel. I'd much rather use the older one but in Vista you have no choice. It's awful, clunky and ugly as hell. I hate the "Windows" look and it was an especially rude awaking when I first saw it.

    Anyways back on topic, System Tools With ESA, CUDA, PhysX and nTune all suck and are nothing but gimmicks. Pointless software.
    Reply
  • hechacker1 - Thursday, February 26, 2009 - link

    They could do better just by changing their compression. I downloaded the x64 182.06 and extracted it. Then I simply compressed it using 7-zip latest stable.

    7-zip lzma compression, "Maximum" compression level:
    93.7MB
    Nvidia with crappy installshield:
    100MB

    And that is just compressing already poorly compressed files! Their driver contains .cab files, And the PhysX installer is a .msi.

    I never understood why people continue to use outdated compression. Especially a big company where bandwidth = $$$
    Reply
  • mariush - Saturday, February 28, 2009 - link

    The problem is the 7-zip LZMA compression on maximum probably requires about 300MB of continous memory to decompress, which is a lot compared to cab's 100KB-1MB requirement.

    Some computers still have nVidia cards and only 512MB of memory and the installer would just crash on those computers as the OS would not be able to allocate so much memory.

    For 7MB of download less, it's not worth getting thousands of support requests about this.

    Also, keep in mind cabs are standardized and the installer used by nVidia, Installshield ,uses them.

    Installshield is a service inside Windows which is pretty large, lots of MB.

    The setup file that you download only has a small 200-500 KB small executable which decompresses the large 100MB exe file into several CAB files and scripts and then a script is passed to the Installshield service on the user's computer and then the whole 100 MB setup is processed by the service on the user's computer.
    Reply

Log in

Don't have an account? Sign up now