[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AGP question --Bryan and Aaron- Thanks!



Thanks to both of you for the explanations. Even though my head is still
spinning a little from Bryan's... gonna have to google some of that...

Thanks again,

Doug Simmons
Microcomputer Support Specialist II
Instructional Support Services
Morris Library
Southern Illinois University Carbondale 


-----Original Message-----
From: silug-discuss-owner@silug.org [mailto:silug-discuss-owner@silug.org]
On Behalf Of Bryan J. Smith
Sent: Saturday, March 26, 2005 11:34 AM
To: silug-discuss@silug.org
Subject: Re: AGP question -- AGP and DiME to System Memory ...

Doug Simmons wrote:
> Thanks for the info!
> If I may, I'd like to ask another: the AGP architecture
> explanations I have found indicate that the AGP device may share 
> system RAM if necessary.

AGP is 32-bit PCI.
It uses higher clock rates.
In addition to DMA (direct memory access) for transfers,
AGP offers DiME (direct in-memory execution).
With DiME, AGP can utilize main memory as if local.

Unfortunate, DiME is a nightmare from a system standpoint.
It requires CPU cache logic be aware of any changes made by the AGP 
card.
That's where the AGPgart comes in.

While this is easy in Intel GTL "memory hub", because *all* CPUs, I/O 
and memory connect through the same bottleneck,
So the AGPgart is just in the northbridge.

it is a major PITA for AMD EV6 which is a "memory switch."
Which is why the Athlon MP puts the AGPgart on CPU,
and the A64/Opteron has evolved it into the I/O Memory Management Unit 
(MMU).

Ironically enough, *no* Intel platform can safely handle such AGPgart 
operations above 4GB memory because of the limitations of the 32-bit GTL 
platform.
40-bit EV6, on the other hand, has no such limit (it's much higher at 
1TB).

Which is why Athlon64 and Opteron are the premier workstation platforms 
right now.

> So, theoretically, an AGP device shouldn't run out of memory,
> right?

No.  But some operations can *not* run over DiME.

Also, when you use DiME, there is a massive performance hit.
Not just for the GPU, but you tie up the entire system interconnect, as 
well as require your CPUs to do some cache coherency checking.

Athlon64/Opteron reduce this hit because of the I/O MMU *and* the fact 
that they have multiple I/O and memory channels *per* CPU.
But it's still not ideal.

>  I have 1GB of RAM in a 3GHZ-PIV, and my 32MB AGP dual-dvi card
> complains when I run the 3DNA desktop (see www.3dna.net) for too long. 
> "Out of graphics card memory".

Sounds like either bugs in the AGPgart or the program's use of the 
AGPgart.
Or it could be that you are enabling features that use too much X, Y and 
Z buffer.
You can *rarely* use DiME for actual display buffer - including X, Y, Z, 
full-screen anti-aliasing (FSAA), etc...

> I run a lot of apps, but never have more than 50% physical RAM 
> committed. At least, not that I have noticed. I guess this just
> doesn't make sense to me: like, maybe the 3DNA app is misreporting the
> out-of-memory state, like maybe their app is a little buggier than 
> they'd like to think...

Depends.  32MB doesn't give you much buffer for 3D.

1024x768 @ 32-bit color already eats up 12MB in just X, Y and Z buffer.
If you enable more features (like FSAA), usage is exponential.
And those cannot be accessed over DiME.

> Any thoughts you may have would be appreciated.

--
Bryan J. Smith   mailto:b.j.smith@ieee.org
Currently Mobile



-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.


-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.