Widescreen Gaming Forum

[-noun] Web community dedicated to ensuring PC games run properly on your tablet, netbook, personal computer, HDTV and multi-monitor gaming rig.
It is currently 15 Dec 2024, 00:33

All times are UTC [ DST ]




Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2, 3
Author Message
PostPosted: 28 Feb 2010, 19:58 
Offline
Insiders
Insiders
User avatar

Joined: 22 Aug 2007, 19:00
Posts: 647
Now, I am not an expert on CF/SLI but let's consider two of the common rendering methods, either alternate frame rendering (each GPU renders the other frame), scissor frame rendering (each GPU renders some part of a screen, separated horizontally). In both cases it's quite apparent that you don't even need to have the entire frame buffer of the other video card in memory. In AFR you just need the frame every other frame, in SFR you'd only need the part of the frame that you are actually rendering.

So it's definitely not obvious that you are limited to the memory of one GPU when you have two GPUs in CF. Now what is obvious is that I'd like to be right here and enjoy the 2GB that my video card claims to have rather than 1GB. If there isn't some definitive source we can look that will state how the memory is used, isn't there some benchmarks we can do to empirically test the # of RAM in CF vs non-CF? What if we knew a game that for sure used more than 1 GB of VRAM but less than 2, we could run it through a 1GB and a 2GB card (the 2GB should have better performance, using this as a reference) we then run it through a 2GB vs 4GB and the performance should be identical.


That said, I totally agree with your overall point. I'm very excited to get to 2GB per GPU. Taking your example, (5700x1200) that makes for one HUGE frame buffer. Since one has to have at least a front and a back buffer that makes for ((5700x1200x32) (WxHxBpp) = 218,880,000 x 2 (front/back buffer) = 437,760,000. WOW! Now mind you I think they use lossless compression for the front and back buffer, but still; in terms of raw memory size requirements that's about 438MB of 1GB for just the frame buffers. If you triple buffer that brings the figure up to 657MB!

Sorry, I just did this math a few posts ago... did you really miss it? You forgot to divide by 8 so all the #s look a lot bigger when they're actually fairly small.


Top
 Profile  
 


PostPosted: 28 Feb 2010, 22:49 
Offline

Joined: 17 Jan 2010, 06:04
Posts: 60



That said, I totally agree with your overall point. I'm very excited to get to 2GB per GPU. Taking your example, (5700x1200) that makes for one HUGE frame buffer. Since one has to have at least a front and a back buffer that makes for ((5700x1200x32) (WxHxBpp) = 218,880,000 x 2 (front/back buffer) = 437,760,000. WOW! Now mind you I think they use lossless compression for the front and back buffer, but still; in terms of raw memory size requirements that's about 438MB of 1GB for just the frame buffers. If you triple buffer that brings the figure up to 657MB!

Sorry, I just did this math a few posts ago... did you really miss it? You forgot to divide by 8 so all the #s look a lot bigger when they're actually fairly small.


Yup; you're right. I'm missing quite a bit lately; too many hours @ work. Sorry about that.


Top
 Profile  
 
PostPosted: 28 Feb 2010, 23:22 
Offline

Joined: 17 Jan 2010, 06:04
Posts: 60
Now, I am not an expert on CF/SLI but let's consider two of the common rendering methods, either alternate frame rendering (each GPU renders the other frame), scissor frame rendering (each GPU renders some part of a screen, separated horizontally). In both cases it's quite apparent that you don't even need to have the entire frame buffer of the other video card in memory. In AFR you just need the frame every other frame, in SFR you'd only need the part of the frame that you are actually rendering.


Separate post to highlight my mistake before..

I'd imagine that in an AFR scenario each gpu would still maintain a two buffers so that they aren't sitting idle when they complete the frame they are currently responsible for. Assuming that, one would wonder where the active front buffer "exists", and how it's shifted.

I don't know if that's really the case though; I've read (please confirm) that one can only enable triple buffering with one or three GPUs, not two. Why would that be? I have a hunch that the answer to that may lead to at least more info about the frame buffer question...

This may contain some interesting info...

http://www.google.com/url?sa=t&source=web&ct=res&cd=1&ved=0CAYQFjAA&url=http%3A%2F%2Fdeveloper.amd.com%2Fmedia%2Fgpu_assets%2FProgramming_for_CrossFire.pdf&ei=5OmKS8XoI6XcM8j51KUB&usg=AFQjCNFrFaZY5N7TwwLsmzi_nwril-CIEw

From that document:

In some cases it might be desirable to detect if an ATI graphics system is capable of working in one of
the CrossFire™ modes. For example, when developing an AFR-friendly application, one might want to
allocate twice as many render targets to remove inter-frame dependency between cards as was described
in one of the earlier sections. The latest version of the RADEON™ SDK ships with the DLL that
provides CrossFire™ detection functionality. This library is located in “ToolsCrossFire Detect” folder
of the SDK and may be freely redistributed as a part of your application


Here's an NV equiv: http://http.download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_SLI.pdf

Interesting... I don't have time to go through them now though. Please note that the docs are old so it's very possible the methodology may have changed since the they were created.


Top
 Profile  
 
PostPosted: 01 Mar 2010, 00:48 
Offline
User avatar

Joined: 22 Oct 2009, 21:34
Posts: 567
Perhaps this thread should be renamed to inform others about what this thread has really become.

I came here with the intention of reading about the Asus ROG, but found this fascinating information.

_________________
Professional... well I'll figure that out.



"I sense something, a presence I've not felt since......."


Top
 Profile  
 
PostPosted: 01 Mar 2010, 01:19 
Offline
Founder
Founder
User avatar

Joined: 13 Oct 2003, 05:00
Posts: 7358
Perhaps this thread should be renamed to inform others about what this thread has really become.

I came here with the intention of reading about the Asus ROG, but found this fascinating information.


I'll split it off in a bit when I can devote more than a couple of minutes to finding the right split point.


Top
 Profile  
 
PostPosted: 01 Mar 2010, 15:09 
Offline
Founder
Founder
User avatar

Joined: 13 Oct 2003, 05:00
Posts: 7358
So it's definitely not obvious that you are limited to the memory of one GPU when you have two GPUs in CF. Now what is obvious is that I'd like to be right here and enjoy the 2GB that my video card claims to have rather than 1GB. If there isn't some definitive source we can look that will state how the memory is used, isn't there some benchmarks we can do to empirically test the # of RAM in CF vs non-CF?

You are enjoying the 2GB. Each of your 2 GPUs is each enjoying 1GB separately. Thus, you are getting use of the full 2GB. I don't have time to do any more Googling, browsing, or reading of Wikipedia on this matter. Too many other things to do. Each GPU has to have its own VRAM to function, and the amounts simply don't stack. That has always been the case since the very first 2x12MB Voodoo SLI configuration from 3dfx. As far as definitive source, I will ask Dave Baumann to come in and respond. That is about as definitive as we can get.


Top
 Profile  
 
PostPosted: 03 Mar 2010, 05:03 
Offline
Insiders
Insiders
User avatar

Joined: 22 Aug 2007, 19:00
Posts: 647
That sounds about right, but I was getting the impression earlier people were saying each card was mirroring the RAM thus only letting you use 1GB.

If each GPU is using 1GB, that's 2GB total, unless the work split is very skewed (eg 90/10 instead of 50/50), why would this be any worse than a single card with 2GB of RAM?


Top
 Profile  
 
PostPosted: 03 Mar 2010, 11:12 
Offline
Editors
Editors
User avatar

Joined: 14 Oct 2003, 13:52
Posts: 5706
Um... each card does use 1GB, but the cards can't "share" VRAM - texture data is loaded into both cards, so if you've got a game that is feeding the GPUs with 900MB of texture data (like GTA4 does... or worse) then that 900MB becomes 1800MB inside the "2GB" that the card possesses as it's duplicated for each GPU.

The GPUs don't have access to a 'shared pool' of VRAM - the GPUs are to all intents and purposes individual cards but on the same PCB with a CrossFire bridge between them.


Top
 Profile  
 
PostPosted: 04 Mar 2010, 14:03 
Offline

Joined: 28 Jun 2009, 22:17
Posts: 760
I'll add that the reason why graphic cards working in parallel (SLI or CF) can't share VRAM is because of latency and bandwith issues.
whichever way you look at it, it's simply "too long" to get data on memory banks which are not right next to the GPU ...

this discussion is why I would like the industry to forbid the usage of naming schemes like : "5970 4GB"
when in reality all you get is : 5970 2x2GB .. for all practical purposes


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2, 3

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  




Powered by phpBB® Forum Software © phpBB Group