# Why PCs still have separate memory for CPU and GPU...

**URL:** <https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276>\
**Category:** Factual Questions\
**Created:** [August 12, 2012, 4:12pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276 "2012-08-12T16:12:27Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Qwertol](https://avatars.discourse-cdn.com/v4/letter/q/e274bd/32.png) [@Qwertol](https://boards.straightdope.com/u/Qwertol)\
**Post date:** [August 12, 2012, 4:12pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/1 "2012-08-12T16:12:27Z")

</div>

and not single, common (and fast) memory for both of them, just like most consoles?  
Not only it would be more efficient (no syncing issues, something especially important in GPGPU) but probably easier and more flexible to program to…

---

<div class="post-metadata">

**Author:** ![Rubixcube](https://avatars.discourse-cdn.com/v4/letter/r/8e7dd6/32.png) [@Rubixcube](https://boards.straightdope.com/u/Rubixcube)\
**Post date:** [August 12, 2012, 4:37pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/2 "2012-08-12T16:37:04Z")

</div>

Many computers do in fact use common system memory for both. Most computers come stock with integrated graphics as part of the motherboard or CPU and just use the system memory. Only the separate graphics cards use their own RAM. As to why I’ll have to leave that to the more technically inclined on the board.

---

<div class="post-metadata">

**Author:** ![steronz](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/steronz/32/11765_2.png) [@steronz](https://boards.straightdope.com/u/steronz)\
**Post date:** [August 12, 2012, 4:44pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/3 "2012-08-12T16:44:39Z")

</div>

Graphics cards care more about speed than reliability, so they generally use a different type of RAM, focusing on low latency and ignoring errors. It also helps to have dedicated memory which you don’t have to worry about losing to other system processes. That reduces overhead.

---

<div class="post-metadata">

**Author:** ![Qwertol](https://avatars.discourse-cdn.com/v4/letter/q/e274bd/32.png) [@Qwertol](https://boards.straightdope.com/u/Qwertol)\
**Post date:** [August 12, 2012, 4:49pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/4 "2012-08-12T16:49:21Z")

</div>

> [@Rubixcube](#):
>
> Many computers do in fact use common system memory for both. Most computers come stock with integrated graphics as part of the motherboard or CPU and just use the system memory. Only the separate graphics cards use their own RAM. As to why I’ll have to leave that to the more technically inclined on the board.

Yeah, but they do that for economical reasons. Cheap chip, cheap memory, and sadly very poor performance. What I don’t understand why they are not making something similar with high performance systems (only using fast memory chips like GDDR5 or something like that, yeah that would be expensive, but gamers usually don’t care that much).

---

<div class="post-metadata">

**Author:** ![beowulff](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/beowulff/32/542_2.png) [@beowulff](https://boards.straightdope.com/u/beowulff)\
**Post date:** [August 12, 2012, 4:59pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/5 "2012-08-12T16:59:15Z")

</div>

Using the same memory for both CPU and GPU would slow everything down. Having separate data busses increases your memory bandwidth tremendously. Also, it’s a very rare case that the CPU cares what the video memory is doing.

---

<div class="post-metadata">

**Author:** ![Michael63129](https://avatars.discourse-cdn.com/v4/letter/m/3da27b/32.png) [@Michael63129](https://boards.straightdope.com/u/Michael63129)\
**Post date:** [August 12, 2012, 5:49pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/6 "2012-08-12T17:49:07Z")

</div>

> [@beowulff](#):
>
> Using the same memory for both CPU and GPU would slow everything down. Having separate data busses increases your memory bandwidth tremendously. Also, it’s a very rare case that the CPU cares what the video memory is doing.

It is becoming more common to [use the GPU to perform general purpose calculations](http://www.nvidia.com/object/what-is-gpu-computing.html) that were once only done on the CPU, since a GPU is far faster than any CPU (hundreds to thousands of processing units, although not necessarily able to do everything a CPU can do). In this case, shared video memory would be advantageous; CPU manufacturers are also even starting to make [combined CPU/GPU units](http://www.pcworld.com/article/260500/amds_new_firepro_processors_include_cpus_and_gpus.html). The advantage of GPU computing is enormous; the fastest GPUs can exceed a \*teraflop \*- something once associated with football-field size supercomputers:

> [@](#):
>
> [As of 2010](http://en.wikipedia.org/wiki/FLOPS), the fastest six-core PC processor reaches 109 GFLOPS (Intel Core i7 980 XE)[14] in double precision calculations. GPUs are considerably more powerful. For example, Nvidia Tesla C2050 GPU computing processors perform around 515 GFLOPS[15] in double precision calculations, and the AMD FireStream 9270 peaks at 240 GFLOPS.[16] In single precision performance, Nvidia Tesla C2050 computing processors perform around 1.03 TFLOPS and the AMD FireStream 9270 cards peak at 1.2 TFLOPS.

(note “as of 2010”, which is very outdated in the computing world)

---

<div class="post-metadata">

**Author:** ![beowulff](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/beowulff/32/542_2.png) [@beowulff](https://boards.straightdope.com/u/beowulff)\
**Post date:** [August 12, 2012, 5:56pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/7 "2012-08-12T17:56:39Z")

</div>

> [@Michael63129](#):
>
> It is becoming more common to [use the GPU to perform general purpose calculations](http://www.nvidia.com/object/what-is-gpu-computing.html) that were once only done on the CPU, since a GPU is far faster than any CPU (hundreds to thousands of processing units, although not necessarily able to do everything a CPU can do). In this case, shared video memory would be advantageous; CPU manufacturers are also even starting to make [combined CPU/GPU units](http://www.pcworld.com/article/260500/amds_new_firepro_processors_include_cpus_and_gpus.html). The advantage of GPU computing is enormous; the fastest GPUs can exceed a \*teraflop \*- something once associated with football-field size supercomputers:
> 
> (note “as of 2010”, which is very outdated in the computing world)

Yeah, I know.  
But, the types of problems that GPUs can solve are not very prevalent in the universe of PCs. Only a tiny fraction of PC users need to render photo-realistic images, for example.

---

<div class="post-metadata">

**Author:** ![Qwertol](https://avatars.discourse-cdn.com/v4/letter/q/e274bd/32.png) [@Qwertol](https://boards.straightdope.com/u/Qwertol)\
**Post date:** [August 12, 2012, 7:01pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/8 "2012-08-12T19:01:21Z")

</div>

> [@beowulff](#):
>
> Yeah, I know.  
> But, the types of problems that GPUs can solve are not very prevalent in the universe of PCs. Only a tiny fraction of PC users need to render photo-realistic images, for example.

In fact it’s great underestimation of what GPU can do. Any algorithm that can be paralleled will potentially benefit from use of GPU and CG related algorithms are not the only ones…

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [August 12, 2012, 7:16pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/9 "2012-08-12T19:16:38Z")

</div>

Physics research, for one, has benefited greatly from calculations done one GPUs. Though I’m not sure that really invalidates the point that most PCs aren’t used for tasks like that. What does the typical user ever do that could benefit from massive parallelization?

---

<div class="post-metadata">

**Author:** ![running\_coach](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/running_coach/32/15836_2.png) [@running\_coach](https://boards.straightdope.com/u/running_coach)\
**Post date:** [August 12, 2012, 7:20pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/10 "2012-08-12T19:20:05Z")

</div>

> [@Chronos](#):
>
> Physics research, for one, has benefited greatly from calculations done one GPUs. Though I’m not sure that really invalidates the point that most PCs aren’t used for tasks like that. **What does the typical user ever do that could benefit from massive parallelization?**

Parking?

---

<div class="post-metadata">

**Author:** ![beowulff](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/beowulff/32/542_2.png) [@beowulff](https://boards.straightdope.com/u/beowulff)\
**Post date:** [August 12, 2012, 7:22pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/11 "2012-08-12T19:22:30Z")

</div>

> [@Qwertol](#):
>
> In fact it’s great underestimation of what GPU can do. Any algorithm that can be paralleled will potentially benefit from use of GPU and CG related algorithms are not the only ones…

I never said they were.  
But, there simply aren’t that many applications in everyday computing that really cry out for GPU processing. If you think there is such a crying need, name 5 problems that are currently a bottlenecked by lack of processing power (and, I don’t mean problems that require a supercomputer, like weather prediction, or nuclear weapons modeling) - problems that your average PC user is facing.

---

<div class="post-metadata">

**Author:** ![zoid](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/zoid/32/336_2.png) [@zoid](https://boards.straightdope.com/u/zoid)\
**Post date:** [August 12, 2012, 7:27pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/12 "2012-08-12T19:27:41Z")

</div>

> [@Rubixcube](#):
>
> Many computers do in fact use common system memory for both. Most computers come stock with integrated graphics as part of the motherboard or CPU and just use the system memory. Only the separate graphics cards use their own RAM. As to why I’ll have to leave that to the more technically inclined on the board.

I’m using one right now. The advantage is that I get fairly good graphics performance (AMD Radeon HD 6310) at a pretty cheap price.  
The disadvantage is that for reasons noted above it’s just fairly good - I could never play Skyrim for example.

---

<div class="post-metadata">

**Author:** ![Gagundathar](https://avatars.discourse-cdn.com/v4/letter/g/a183cd/32.png) [@Gagundathar](https://boards.straightdope.com/u/Gagundathar)\
**Post date:** [August 12, 2012, 7:30pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/13 "2012-08-12T19:30:57Z")

</div>

I use Bryce 7 in my work.  
It takes a LOT of time to render a scene since I am only using an E2200 CPU.  
In fact, if I do an intensive render, I have to release one of the cores just so I can surf the web while I wait the 15-45 minutes that a high res picture takes to be complete.

I can’t imagine why a GPU wouldn’t be an order of magnitude better in terms of speed.

I suppose there are several companies working on this because relatively cheep desktop animation is right around the corner or already here.  
That would genuinely change my workflow and would justify the purchase of a new computer.

---

<div class="post-metadata">

**Author:** ![Rysto](https://avatars.discourse-cdn.com/v4/letter/r/ecccb3/32.png) [@Rysto](https://boards.straightdope.com/u/Rysto)\
**Post date:** [August 12, 2012, 7:39pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/14 "2012-08-12T19:39:12Z")

</div>

Game console can share memory between the the CPU and the GPU because they’re designed as a discrete unit. In a desktop, though, the GPU and the CPU are separate. In theory you could still share memory, but that would require a custom bus to allow the GPU to fast access to memory. PCIe isn’t designed for that.

Having separate CPU and GPU memory has the following advantages for manufacturers of GPUs:

- They can use the standard PCIe bus, which is used for other high-bandwidth I/O applications like networking or solid state storage. This is cheaper and easier than designing a custom bus.
- Network effects are also in play here: GPU makers design PCIe cards because motherboards have PCIe slots, motherboard designers put PCIe slots on their motherboards because people want to put PCIe cards (including GPUs) in their machines. A GPU maker who wanted to go with a shared memory design would have to design their card for a custom bus, and would likely fail in the market because very few motherboards (if any) would actually support the bus. This is a big reason why new versions of the PCIe standard are backwards compatible with previous revisions – to prevent network effects from killing interest in the new version.
- By putting their own memory on the graphics card, the designer can guarantee the amount of memory that they have available and the performance level of the memory. I imagine that this makes it significantly easier to write the drivers and software that uses the card.
- Also, one way that a GPU maker could segment their market is by having different cards with different amounts of memory, or different memory speeds

---

<div class="post-metadata">

**Author:** ![BunnyTVS](https://avatars.discourse-cdn.com/v4/letter/b/977dab/32.png) [@BunnyTVS](https://boards.straightdope.com/u/BunnyTVS)\
**Post date:** [August 12, 2012, 7:51pm UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/15 "2012-08-12T19:51:30Z")

</div>

> [@Gagundathar](#):
>
> I use Bryce 7 in my work.  
> It takes a LOT of time to render a scene since I am only using an E2200 CPU.  
> In fact, if I do an intensive render, I have to release one of the cores just so I can surf the web while I wait the 15-45 minutes that a high res picture takes to be complete.
> 
> I can’t imagine why a GPU wouldn’t be an order of magnitude better in terms of speed.
> 
> I suppose there are several companies working on this because relatively cheep desktop animation is right around the corner or already here.  
> That would genuinely change my workflow and would justify the purchase of a new computer.

45 minutes! I’m a (very amateur) user of Luxrender on a quad core athlon 2400. I render some scenes for several hours! Then of course you realise you realise you set the specularity on the nose different to the rest of the face…

---

<div class="post-metadata">

**Author:** ![Askance](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/askance/32/8281_2.png) [@Askance](https://boards.straightdope.com/u/Askance)\
**Post date:** [August 13, 2012, 2:13am UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/16 "2012-08-13T02:13:56Z")

</div>

> [@Qwertol](#):
>
> Why PCs still have separate memory for CPU and GPU… and not single, common (and fast) memory for both of them, just like most consoles?

Generate a dxdiag.txt for your PC. Most likely you will see something like this (obviously depending on hardware and Windows version):

```auto

---------------
Display Devices
---------------
          Card name: ATI Mobility Radeon HD 5800 Series
       Manufacturer: Advanced Micro Devices, Inc.
          Chip type: ATI display adapter (0x68A1)
           DAC type: Internal DAC(400MHz)
         Device Key: Enum\PCI\VEN_1002&DEV_68A1&SUBSYS_10611462&REV_00
     Display Memory: 2797 MB
   Dedicated Memory: 1014 MB
      Shared Memory: 1783 MB

```

So you are almost certainly already using “common memory for both”.

---

<div class="post-metadata">

**Author:** ![jz78817](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/jz78817/32/1028_2.png) [@jz78817](https://boards.straightdope.com/u/jz78817)\
**Post date:** [August 13, 2012, 2:54am UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/17 "2012-08-13T02:54:10Z")

</div>

> [@Qwertol](#):
>
> and not single, common (and fast) memory for both of them, just like most consoles?  
> Not only it would be more efficient (no syncing issues, something especially important in GPGPU) but probably easier and more flexible to program to…

no, for several reasons.

1. graphics cards have RAM chips soldered onto their boards, with the traces for the DRAM bus(es) carefully laid out so that the high data rates they use can, you know, work. CPUs generally have to deal with memory expansion slots, and at the frequencies we’re talking about, you simply could not have DIMMs which work reliably at the data rates of graphics RAM.

2. consoles may have “shared” memory, but it’s only “shared” inasmuch they’re using the same DRAM chips. The RAM used by the CPU and that used by the GPU are partitioned off. And since the GPU is still addressed using memory-mapped I/O, it can be no other way right now.

> [@Michael63129](#):
>
> It is becoming more common to use the GPU to perform general purpose calculations

General-purpose _floating-point_ calculations. consumer stuff is not really floating-point-intensive aside from 3D games, and in those cases the GPU is better used for graphics.

> [@](#):
>
> CPU manufacturers are also even starting to make combined CPU/GPU units.

though they’re on the same piece of silicon, in terms of bus topology they still connect to each other as though they were discrete parts. The GPU is still a PCIe device and still receives and sends data using memory-mapped I/O.

> [@](#):
>
> The advantage of GPU computing is enormous; the fastest GPUs can exceed a teraflop - something once associated with football-field size supercomputers:

Eh, so what? The Core i5 I’m using has the kind of performance once associated with gigantic supercomputers.

> [@Qwertol](#):
>
> In fact it’s great underestimation of what GPU can do. Any algorithm that can be paralleled will potentially benefit from use of GPU and CG related algorithms are not the only ones…

we’re getting close to being a decade into multi-core CPUs. The problems that can be solved via parallelism have been found already. GPGPU applications excel at “embarrassingly parallel” situations like HPC. They’re lousy at the kinds of things the average person does with their PC. they work great for stuff like SIMD, single-precision floating-point, and the like.

---

<div class="post-metadata">

**Author:** ![Harmonix](https://avatars.discourse-cdn.com/v4/letter/h/3ec8ea/32.png) [@Harmonix](https://boards.straightdope.com/u/Harmonix)\
**Post date:** [August 13, 2012, 3:23am UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/18 "2012-08-13T03:23:45Z")

</div>

Could GPGPU work on … say excel?

I would buy a monster video card just for speeding up Excel if microsoft did that.

(I regularly push the limits of what should be done in excel)

---

<div class="post-metadata">

**Author:** ![beowulff](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/beowulff/32/542_2.png) [@beowulff](https://boards.straightdope.com/u/beowulff)\
**Post date:** [August 13, 2012, 4:04am UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/19 "2012-08-13T04:04:16Z")

</div>

> [@Harmonix](#):
>
> Could GPGPU work on … say excel?
> 
> I would buy a monster video card just for speeding up Excel if microsoft did that.
> 
> (I regularly push the limits of what should be done in excel)

Doubtful, unless you are using the same formula in each of your cells…

---

<div class="post-metadata">

**Author:** ![Tim\_T-Bonham.net](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@Tim\_T-Bonham.net](https://boards.straightdope.com/u/Tim_T-Bonham.net)\
**Post date:** [August 13, 2012, 4:25am UTC](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276/20 "2012-08-13T04:25:49Z")

</div>

A common memory would require communication via the main system buss. That runs slower than the dedicated I/O channel on a GPU memory card.

In addition. the display & GPU must address the memory quite often. If they had to do so on the same bus that the CPu is using to read memory, get keyboard/mouse input, send/receive info from the Internet, and fetch/store data from the disks, that buss would be seriously congested and the system would frequently be waiting for a free moment on the buss. A separate graphics memory with a dedicated I/O channel frees up the main system buss a lot.

[Next page](https://boards.straightdope.com/t/why-pcs-still-have-separate-memory-for-cpu-and-gpu/631276.md?page=2)
