POV-Ray : Newsgroups : povray.off-topic : It had to happen again... : Re: It had to happen again... Server Time
30 Jul 2024 04:24:50 EDT (-0400)
  Re: It had to happen again...  
From: Alain
Date: 29 Mar 2011 19:11:38
Message: <4d92672a$1@news.povray.org>

>>> requirement of 1GB for years.) What is worse, the RAM is shared by the
>>> CPU
>>> and the GPU, in other words, the GPU doesn't have its own RAM (as is
>>> customary in a PC). This means that graphics and other game data have to
>>> share the 512 MB (unlike on a PC, where graphics can be done mostly on
>>> the
>>> GPU's RAM and whatever the game needs on the main RAM).
>
> It has advantages though, like not needing to transfer any data between
> the CPU RAM and the GPU RAM (which is a major bottle-neck in a PC,
> causing many complex algorithms to be developed). On the xbox the CPU
> can update textures and meshes directly without needing to either write
> a complex vertex/pixel shader or transfer over large amounts of data
> per-frame.

Not at all in the case of the PCs. The GPU don't see the memory used by 
the CPU, and the CPU don't see the memory used by the GPU. For the CPU, 
the RAM allocated to the video just don't exist. The boundary is set on 
the BIOS level and can't change at run time.
The data need to be moved between the main part of the RAM to the video 
part. It passes through a simulated PCI/AGP/PCIe interface.

>
> The lack of CPU RAM isn't as large a problem as you might expect. A well
> written PC game engine tries to minimise transfer between CPU RAM and
> GPU RAM each frame, spreading out large data transfers (eg due to the
> player entering a new part of the level) over many frames. On a console
> you load the new data from disc directly to the shared RAM rather than
> from CPU RAM.

On a PC, there is NO shared RAM. On a game console, you may have it.
On a PC, the video RAM looks just like that of a dedicated video card.

>
> Of course some things need a lot of CPU RAM which are not possible on
> the xbox (or need some clever programming), but I guess they decided the
> unified RAM between CPU and GPU gave the best bang-for-buck for most games.
>
>> Another problem with that, is that the CPU always have to wait for the
>> GPU. Whenever the GPU, and other display hardware, is accessing your
>> RAM, NOTHING else can access it.
>
> The difference between the xbox and normal PCs with shared memory is
> that the xbox has a memory bandwidth of 22.4 GB/s. Cheap PC motherboards
> today with onboard GPU have something like 8 GB/s memory bandwidth,
> laptops probably lower. Even today the latest DDR3-2133 RAM has "only"
> 17 GB/s.

I'd gues that is dual ported DDR, possibly dual channel.

>
>> If it was the other way around, you'd
>> get corrupted display with shearing, horizontal and vertical rolling,
>> and lot of flicker.
>
> Well you can still write to the RAM (obviously not at *exactly* the same
> time as the GPU is reading it), you just make sure what you are writing
> to is not needed by the GPU that frame (usually you write to a shadow
> copy which then gets used the next frame).

There is an hardware, BIOS controled, mutex with absolute priority to 
the GPU. There is only ONE data bus.
To do what you mention, you'd need dual ported RAM (that's totaly 
different from dual channel). Dual port enable you to have 2 concurent 
data exchanges, 2 reads, 2 writes, or a read and a write, at the same 
time from 2 sources or destinations. Some video RAM IS dual ported and 
maybe some consoles do use that kind of memory. It's not new, the Matrox 
video cards used that in the 90's for consumer level dards. I have one, 
a Matrox Mystic.

As warp was able to test it, a distinct video card on a PC can mean a 
tenfold performance boost.

I orinaly mentioned a 50% hit, looks like it's more like an 80 to 90% hit...



Alain


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.