Wednesday, April 20, 2011

Why Win 7 Shared Graphics Ram

Allowing for more parallelism in the GDI will noticeably make things more responsive, but that wasn’t the only evolution that the software team made for the new OS. Windows 7 will now be more efficient in its use of RAM, which will have the positive effect of making everything run smoother – particularly on systems with shared graphics memory.

In Windows Vista, the more application windows you had open, the more memory required. Every window accounts for two memory allocations – one in video memory and one in system memory – which hold identical content.

The way Windows Vista does it
The DWM (desktop window manager) is responsible for drawing the desktop with the GPU, which obviously requires the application window data in video memory. The same application window data is duplicated again in system RAM for the CPU to render independent of graphics hardware. This was inefficient obviously because of data redundancy.

The way Windows 7 does it
Windows 7 changes this by getting rid of the system memory copy entirely, which effectively cuts the memory consumed in half. Unlike the changes to the GDI stack detailed earlier, this new memory-saving behavior requires new drivers.

“We achieved the reduction in system memory by accelerating the common GDI operations through the graphics hardware - the WDDM drivers accelerate these to minimize the performance impact of the CPU read-back of video memory,” explained Ameet Chitre, a program manager on Microsoft’s Desktop Graphics feature team. “Since you save a lot of system memory, the paging activity gets reduced – as a result, your system responsiveness improves for the same workload.”

The new drivers that support the memory-saving change are designated WDDM 1.1. Older Windows Vista WDDM 1.0 drivers will still work fine with Windows 7, but do not take advantage of the new feature.

Desktop Window manager memory consumption comparison using WDDM 1.1 v. WDDM 1.0
This change positively impacts real-world usability, but benchmarks may show a degradation in performance since the CPU has to fetch data from video RAM.

“The elimination of the duplicate system memory copies which ‘speed up’ certain operations introduced slightly reduced performance as the CPU now has to read data back from the video memory. An analysis of real-world application statistics showed that these operations were rare,” Chitre said. “Our observation has been that these slow-downs do not impact the end-user functionality directly and that the memory savings directly result in Windows 7 being much responsive overall. The improvements overall are definitely noticeable on memory constrained PCs with shared memory graphics.”

No comments:

Post a Comment