Why did adding memory significantly increase gaming performance on an AMD APU?
Solution 1:
When you installed the second memory module, you enabled dual-channel mode and doubled memory bandwidth. GPU performance is highly dependent on memory bandwidth and your frame rates reflect the increase in bandwidth.
The AMD A10-6790K is an "Accelerated Processing Unit" (APU). APUs combine a CPU with a relatively powerful integrated graphics processor (GPU), eliminating the need for a discrete graphics card (at least for lighter workloads). "AMD Radeon HD 8670D" refers to the integrated GPU built into this APU.
The performance of any GPU is heavily impacted by its ability to quickly access graphical data from memory. Without sufficient memory bandwidth, the shader cores on the GPU will often end up waiting for data, preventing the chip from working at its full potential. It's essentially an extreme case of the von Neumann bottleneck: today's GPUs have hundreds, if not thousands of gigaFLOPS of raw processing power and can process data so rapidly that they often can't read data from memory quickly enough to keep themselves busy.
For this reason, today's high-performance video cards use specially-designed video memory, typically GDDR5, to achieve maximum performance. Unfortunately, most integrated GPUs, including those found in APUs, do not get their own dedicated memory, so they need to use the system memory instead.
Because AMD APUs use the system memory as graphics memory, integrated GPU performance is highly dependent on the speed of your RAM. Not only does DDR3 system RAM have significantly less bandwidth than GDDR5 video memory, the integrated GPU needs to share this bandwidth with the CPU for normal application use. Increasing memory bandwidth will directly increase performance by reducing this bottleneck.
When you upgraded your system's memory, you added a second memory module. With two modules, your memory now runs in dual-channel mode, doubling memory bandwidth and dramatically increasing performance as a result. Upgrading to faster RAM (at least DDR3-1866, preferably DDR3-2100 or faster) will similarly increase performance.
The effects of memory bandwidth on GPU performance are well-documented.
Real World Tech has discussed in detail how memory bandwidth affects GPU performance. Among graphics cards with similar or identical GPUs, those with more memory bandwidth were found to significantly outperform those with lower memory bandwidth.
Tom's Hardware has shown that integrated GPU performance on the A10-5800K scales linearly with memory bandwidth up to DDR3-2100. On the newer A10-7850K, PC Perspective reports linear performance scaling with memory as fast as DDR3-2500 (and likely beyond).
Source
- In the Tom's Hardware and PC Perspective articles, the tests were performed with dual-channel memory configurations, so having a single memory module led to the severe performance bottlenecking you observed before you upgraded. It is readily apparent at this point that to get optimal performance with an AMD APU, you need the fastest memory you can get.
Solution 2:
You have an APU, rather than a discrete CPU and discrete GPU. That means that they share system RAM for the texture cache, rather than dedicated on-board memory on a graphics card.
The reason the RAM upgrade sped things up for your game likely is because of texture resource swapping. With more RAM available overall, that means more texture data is able to be loaded and kept in RAM for longer. When you have all your memory allocated, and your operating system needs more to work with a task right now, it will find allocated memory that hasn't been used recently, save the contents to your disk, and then re-allocate the memory for that task. Once that data is needed again, it will swap it back from the disk into RAM. This swapping takes a long time (relatively).
You likely were swapping a lot on texture data. When you upgraded your RAM, you provided more space for textures to be stored, which means less memory swapping, which then translates into a higher frame rate.