0
\$\begingroup\$

In pretty much all modern computers and mobile devices, the CPU can have varying amounts of memory (either to be configured by the user or fixed at point of assembly). Apart from historical form-factor reasons (where GPUs just came as 'a card' that was actually composed of the GPU itself, power management, I/O and memory), is there any fundamental reason (ie, electronic engineering reason, not marketing) why GPUs don't come in different amounts of memories for a specific GPU model?

Of course, different models of GPU might have different amounts of memory, but to my knowledge, a specific GPU model will always come with a specific amount memory (for example, the AMD R9 280x in my workstation always has 3 GB of memory).

For general consumer applications, I can understand that there might be a cost/complexity argument - it is simply easier and cheaper to have one configuration. But for applications that are more GPGPU oriented, it seems like linking memory configuration to processor configuration could be limiting? (for example, my place of work recently acquired a number of GPGPU servers. Each of the GPU's comes with I think 24 GB or RAM, but the FDTD simulations they run don't need anywhere near that amount of RAM).

\$\endgroup\$
1
  • 3
    \$\begingroup\$ You can actually buy GPUs with different memory configurations. The Geforce 1060 comes in 3GB or 6GB. You can see the different memory configurations for Nvidia here: en.wikipedia.org/wiki/GeForce_10_series \$\endgroup\$ May 2, 2020 at 18:47

3 Answers 3

3
\$\begingroup\$

Is there any fundamental reason (ie, electronic engineering reason, not marketing) why GPUs don't come in different amounts of memories for a specific GPU model?

Don't know whether you mean that with "marketing reason" but: memory slots, the boards and auxillary electronics of exchangeable RAM "modules" cost money. That's the main reason why you don't do that.

Technically, RAM chips can behave quite differently, and that's why you have the SPD information on the EEPROM of your PC RAM module: the memory controller needs to know how to even use the specific RAM you just plugged in.

That flexibility of course makes the whole thing both more prone to errors, and complex – not something you want, again, on cost level.

Don't forget that restricting the number of possible RAM configurations (as in amount, and sizes of individual RAM ICs) also simplifies not only the memory interface, but the system architecture and probably even reduces die size of the actual processing units: if you know how much memory you have at which physical addresses, you don't have to even think about designing in e.g. address remapping units that are flexible.

Then: When you add a connector to the mix, the whole host-RAM connection, which, especially in graphic cards, is a very high-rate bus, gets significantly less deterministic than when you solder the memory to the same high-quality multi-layer board. That means that your memory controller now needs to do way complex things, like effectively equalizing the received signal from the RAM, and that drives up complexity, too. In fact, it will shift the development effort of "make damn sure your RAM traces are within specs, dear graphic cards designer" towards "make damn sure the integrated memory controller can deal with all sorts of absurd channel effects, dear GPU manufacturer"; and you can see how that is non-desirable to companies that form an duopol on high-end GPUs.

or example, my place of work recently acquired a number of GPGPU servers. Each of the GPU's comes with I think 24 GB or RAM, but the FDTD simulations they run don't need anywhere near that amount of RAM

Yep, but exactly in the market of datacenter / HPC things, where hardware cost is less of an issue than reliability and extensibility, Nvidia GPUs with interfaces to "standard" DDR RAM modules exist. Nvidia themselves has the DGX-1 rack server.

\$\endgroup\$
4
  • \$\begingroup\$ I meant 'marketing' in a more 'have a way to provide tiers of products to optimize your sales'. I thought about the memory slots, but I feel like this isn't the entire answer because then why wouldn't 3rd party vendors make GPU cards with more/less ram? But you make a good point with the memory controller aspect. \$\endgroup\$
    – Joren Vaes
    May 2, 2020 at 11:41
  • 1
    \$\begingroup\$ @JorenVaes ah, what I forgot to say, let me add that to the answer in a minute, is of course that e.g. Nvidia gets to define really only a small number of working memory configurations, which again makes their life easier all through the architecture. \$\endgroup\$ May 2, 2020 at 11:42
  • \$\begingroup\$ @hacktastical um, that's fine and all, but unrelated to the question. \$\endgroup\$ May 2, 2020 at 19:05
  • \$\begingroup\$ @hacktastical also, until people tear down their AMD and NVidia HPC clusters, I'd be very careful about claiming cost efficiency for "similar workloads". \$\endgroup\$ May 2, 2020 at 19:17
1
\$\begingroup\$

The other answers are correct, but also, some GPUs do come in different amounts of memory for the same model.

It seems less common now though, probably for the reasons discussed in other answers.

\$\endgroup\$
1
\$\begingroup\$

This goes back to the question of scalability of work loads: the more going on in parallel, the more memory you need.

On the CPU side, since the mother board needs to support a range of CPUs from 2-core to 32-cores, it also needs to support a wide range of memory options

However for video cards, since the GPU is soldered on the card, the range of memory is significantly narrowed down to the point that only one or two memory options are necessary for a particular GPU.

Had the CPU been soldered onto the board, soldered main memory could be a viable option as well. A lot of new laptops offers only soldered memory precisely because of this.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.