Nvidia Cuda Technology

Lord_Exodia

Supreme [H]ardness
Joined
Sep 29, 2005
Messages
7,008
So I re-read the [H] review about the G80 and have begun to get very excited about this Nvidia Cuda technology. For one main reason. I really doubt that ATi is coming up with anything similar. I think they are bringing out a Earth Shattering Videocard but i really doubt they created a GPU that can handle graphics and physics in parallel due to hardware enabled transistors in the GPU like the G80. This may make a huge difference in the future of gaming.

http://enthusiast.hardocp.com/article.html?art=MTIxOCw4LCxoZW50aHVzaWFzdA==

It's not impossible that ATi could come out with something similar but I doubt the R600 will have it built in like the G80 does. Also I'd imagine a G80 running physics or even a pair of G80s running physics will probably give a better physics experience than a pair of R600s and a X1900 in the third slot for physics. I could be wrong, but if the G80 is as efficient running physics as it is running graphics and the article leads me to believe so then Nvidia might offer a better gaming experience in future DX10 titles that are very physics driven.

I could be totally wrong but I think nvidia really future proofed this product and may have sealed their victory in the next generation videocard war.

What do you guyz think about it?
Warning
Before a flame war starts I'll warn anybody that this thread is based on theory, no flaming, and please do not force feed anyone your opinion as fact. If anyone gets out of line I will report you to a mod right away. So please everyone lets keep this civilized, as I would appreciate feedback from anyone that would have something nice to contribute to this topic.
 
Actually, X1000 series cards already have similar capabilities. This is why you can fold proteins on them but not on 7900s. What nvidia has added to it is that you can now simply compile something for G80, instead of tricking pixel shaders into doing your work. ATI wouldn't dare to come to market months later and not at least match those features.
That said, unless R600 brings a significant performance increase over G80, nvidia may have already won simply by releasing so much earlier.
 
Soban said:
Actually, X1000 series cards already have similar capabilities. This is why you can fold proteins on them but not on 7900s. What nvidia has added to it is that you can now simply compile something for G80, instead of tricking pixel shaders into doing your work. ATI wouldn't dare to come to market months later and not at least match those features.
That said, unless R600 brings a significant performance increase over G80, nvidia may have already won simply by releasing so much earlier.

Very good perspective. The thing I keep in mind is that ATI's GPU is done. They are just fine tuning it at this stage. They either thought of this idea a year or so ago or their R600 simply will not have it. ATI is expected to launch in about 3 months or less. I guess we'll find out soon enough. If we hear of a R600 delay we might know why.

I've never heard of the X1000 series being able to do physics, via built in capability, I thought that the folding thing was just a software program that was co written by a group of developers exclusively for ATI hardware but I guess it's possible they had something in the hardware that the software was able to take advantage of. Do you have any links on this type of physics ability they have and nvidia's 7900 series lacked? This could seal the deal and kinda show that ATI had this in mind and in fact did it first, and that this is only a teaser of what the R600 will bring.
 
This page talks about running folding@home on the gpu. It doesn't give very specific information, just says that X1000 series performed much better than 7xxx series. When they announced it one of the articles went into more detail on why, but I can't seem to find it. IIRC, it's a combination of x1000s having more shaders and architecture differences like FP precision. Now that G80 is out with support specifically for this type of thing, I expect to see a f@h client for it soon.

ATI announced support for physics simulation at Computex.

As I understand it, this CUDA thing isn't so much a hardware feature as a driver feature. It simply allows the stream processors to be used as general purpose processors instead of specifically for graphics. In fact, G80 seems surprisingly similar to the Cell architecture in that it has many smaller processors being managed by a single larger one. I'm sure there are many differences, but the basic idea is the same.
 
Soban said:
As I understand it, this CUDA thing isn't so much a hardware feature as a driver feature. It simply allows the stream processors to be used as general purpose processors instead of specifically for graphics. In fact, G80 seems surprisingly similar to the Cell architecture in that it has many smaller processors being managed by a single larger one. I'm sure there are many differences, but the basic idea is the same.

I thought so too the first time I read the Review of the cards. Then I read it again and a few things stood out to me.


From the Article


CUDA stands for Compute Unified Device Architecture. Under that umbrella you will find Quantum Effects which is the name for addressing the specific physics aspects of this overall architecture. Think of this as a bridge between instruction centric and data centric innovations, a way to adopt the benefits of both worlds. Neither a CPU nor a traditional GPU is efficient for this type of work.

With a CPU you are limited to only being able to compute one equation at a time. With a traditional GPGPU (think GeForce 7 series and Radeon X1000 series) that is no longer a problem because you have multiple ALUs that can compute equations in parallel. That is why GPUs are so much faster; they can operate on a lot of data in parallel. However, the past generation wasn’t completely perfect; all of the data had to be shared in and out of video memory on the graphics card itself. Enter CUDA thread computing.

With this new architecture on the GeForce 8800 GTX and GTS you get the benefit of being able to have many thread programs running in parallel on the GPU and thanks to some added transistors for cache as well DirectX 10 stream output support all data is shared in a cache on the GPU itself and does not have to touch the video card memory. In a traditional GPU you will have to make multiple passes through memory, with CUDA it is all done on cache.

The hardware architecture itself uses the same graphics architecture that is there in the GPU and simply treats it in a different way for doing thread computing. It uses the stream processors, texture and a special parallel data cache to do all of its work. The beauty of this system is that it can run at the same time that you are using the GPU for accelerating 3D graphics. Gamers will pick up on this real quick and realize that a single GeForce 8800 GTX and GTS is capable of doing both 3D acceleration and gameplay physics at the same time in the same game. The entire architecture is based on the standard C language, so adoption shouldn’t be that complicated. Who needs Quad Core CPUs when you have 128 parallel processors right here waiting for you to use them? It is an interesting debate for sure and we can’t wait to see what possibilities this new architecture opens up for the community.


Now back to me :D


From what I gather nvidia optimized this card to be both a Graphics card and a PPU all in one. It will eventually be taken advantage of. I believe it will spread quickly since it uses traditional C language and not a complex new API like Novodex or something like that.
 
I wonder what level a card would have to be to run something like Alan Wake on a dual Core system like how it was running on a quad core system?
 
CrimandEvil said:
I wonder what level a card would have to be to run something like Alan Wake on a dual Core system like how it was running on a quad core system?

That's a good question. This whole Cuda thing has me excited. I like the idea of it and if it goes like I think it does, we nvidia owners wont have to buy a 3rd party physics card.

I would definitely rather have GPU's handle this sort of thing in the future instead of shelling out $175.00 or more for another solution like Ageia's
 
I'm very excited about this Nvidia Cuda technology. For one main reason. I really doubt that ATi is coming up with anything similar.

Congrats on being a tool.

By the time "cuda" technology is actually utilized, both companies will have a solution.
 
chris.c said:
Congrats on being a tool.

By the time "cuda" technology is actually utilized, both companies will have a solution.

You must not have read my first post carefully, so I'll let the tool thing slide. ;) Don't tell me that you know for a fact that both companies will have a solution ready because you don't know that. <---------------- this is what I talked about in post 1 (force feeding your opinion as fact)

Nvidia from the start of their GPU seems to have added transistors in place to have their GPU do graphics and physics at the same time in Parallel. No one knows if the R600 has this built in except for ATI engineers. They can't add it at this point without a major delay. Unless they thought of this a year or so ago like nvidia then they will not have a solution other than the 3 card thing they showed off previously, which is not what this thread is about. We are talking about built in physics in the GPU here. :)

Oh and I know Havok is working on a API for nvidia and ATI that will allow their cards to run Physics but I don't think that's the same thing either as from what I understand that will require a gpu dedicated to that api (3rd card)
 
I generally buy nVidia and I'm ecstatic about the G80, but it looks to me from the above that CUDA is founded on the fact that the G80's shaders are unified, that is, general purpose. It further uses the features of streaming, multi-threading, and the localized cache that helps support those features.

Thing is, we've known that R600 has unified shaders long before we knew G80 did. And all the streaming, threading, and cache (according to the parts of the [H] article you quote above) are present in G80 because they are part of the DX10 spec, which, unlike previous generations, has no "optional" features. Every GPU design must support all of them to be certified for DX10.

Given that CUDA relies on unified shaders and required DX10 features, I think it's safe to say that R600 will have the same capabilities. nVidia's main advantage here, and it's not a small one, is time to market. If the launch date of R600 slips further (not inconceivable given ATi's history and the distraction factor of the merger with AMD), the advantage will grow.
 
Commander Suzdal said:
I generally buy nVidia and I'm ecstatic about the G80, but it looks to me from the above that CUDA is founded on the fact that the G80's shaders are unified, that is, general purpose. It further uses the features of streaming, multi-threading, and the localized cache that helps support those features.

Thing is, we've known that R600 has unified shaders long before we knew G80 did. And all the streaming, threading, and cache (according to the parts of the [H] article you quote above) are present in G80 because they are part of the DX10 spec, which, unlike previous generations, has no "optional" features. Every GPU design must support all of them to be certified for DX10.

Given that CUDA relies on unified shaders and required DX10 features, I think it's safe to say that R600 will have the same capabilities. nVidia's main advantage here, and it's not a small one, is time to market. If the launch date of R600 slips further (not inconceivable given ATi's history and the distraction factor of the merger with AMD), the advantage will grow.

That's more of the type of post I'm looking for. You hit on alot of good points C. Suzdal. Now the question is, if nvidia's cuda is done because the card has the dx 10 spec and it's just a spec that allows for this to happen or did they actually engineer something a little special into the gpu beyond the simple unified dx10 spec that makes the card able to run physics and graphics in paralell in the same game at the same time as the article states.

From the wording in the article it makes me believe that it does indeed have extra transistors in place to do this and the cache offsetting the card memory seems to be a plus too.... hmm

Kyle, Brent anyone wanna chime in here. This whole thing is really interesting to me and if you could clarify better it would be most appreciated.
:D
 
That would be good. With these huge-ass videocards, there's no more PCI slots left on my mobo and I'm not dumping my X-Fi. So if I can get hardware physics onboard my videocard, I'll take it. I don't care who does it as long as it's fast and done right.
 
Lord_Exodia said:
That's more of the type of post I'm looking for. You hit on alot of good points C. Suzdal. Now the question is, if nvidia's cuda is done because the card has the dx 10 spec and it's just a spec that allows for this to happen or did they actually engineer something a little special into the gpu beyond the simple unified dx10 spec that makes the card able to run physics and graphics in paralell in the same game at the same time as the article states.

From the wording in the article it makes me believe that it does indeed have extra transistors in place to do this and the cache offsetting the card memory seems to be a plus too.... hmm

Kyle, Brent anyone wanna chime in here. This whole thing is really interesting to me and if you could clarify better it would be most appreciated.
:D
Glad to oblige, Lord_Ex, and you may well be right. After all, we know that at least the memory controller tech is different, with ATi using their ring bus and nVidia apparently sticking with a more advanced version of its crossbar method. Given that, there may be more ways to skin a cat here than meet the eye, so to speak...
 
Lord_Exodia said:
That's more of the type of post I'm looking for. You hit on alot of good points C. Suzdal. Now the question is, if nvidia's cuda is done because the card has the dx 10 spec and it's just a spec that allows for this to happen or did they actually engineer something a little special into the gpu beyond the simple unified dx10 spec that makes the card able to run physics and graphics in paralell in the same game at the same time as the article states.

From the wording in the article it makes me believe that it does indeed have extra transistors in place to do this and the cache offsetting the card memory seems to be a plus too.... hmm

Kyle, Brent anyone wanna chime in here. This whole thing is really interesting to me and if you could clarify better it would be most appreciated.
:D

The Stream Out function is an inherent DX10 feature, if R600 supports DX10 it will also have this feature.

The CUDA system in G80 where it uses the Stream Out function to carry general purpose/physics data and store it into special cache is unique NVIDIA technology. There are specific transistors of cache made specifically for this function. With CUDA it is like having two platforms meshed into one. There is a specific pipeline flow for graphics, and a specific pipeline flow for general purpose/physics data.

The driver also divides this up, one driver install package, but the general purpose/physics part of the driver does not use or act on the graphics part of the driver. They follow two different paths, they aren't layered into each other.
 
Brent_Justice said:
The Stream Out function is an inherent DX10 feature, if R600 supports DX10 it will also have this feature.

The CUDA system in G80 where it uses the Stream Out function to carry general purpose/physics data and store it into special cache is unique NVIDIA technology. There are specific transistors of cache made specifically for this function. With CUDA it is like having two platforms meshed into one. There is a specific pipeline flow for graphics, and a specific pipeline flow for general purpose/physics data.

The driver also divides this up, one driver install package, but the general purpose/physics part of the driver does not use or act on the graphics part of the driver. They follow two different paths, they aren't layered into each other.

Awesome!!! :D thanks for clearing that up. So the cache feature is something nvidia did special. They were really thinking ahead then. This could be very big for nvidia in the future and only time will tell.

BTW Brent did you get promoted your title seems to have changed. ;)
 
It took me 2x to read the review of the 8800 article to really soak in what Cuda technology will bring to the table. I believe there are many people who still haven't let this sink in yet.

On this very thread Brent Justice came forward and elaborated even further showing that nvidia did indeed add features to the 8800 series making in a GPU that is a Graphics processor and physics processor all in 1, and not only because of the DX10 architecture but because of thoughtful engineering in the beginning of their creation of this chip. What this means is that the card can calculate physics and graphics simotaneously in the same game at the same time.

This could be huge. Since it took me 2x to soak it all in, I wanted to bump this thread back to the top in the hopes of letting everyone read Brent's post above so that it sinks in that the G80 is more than a graphics processor and it's future and the fact that it can calculate physics beyond that of any direct X 10 capable gpu. who knows, this could be the deciding factor as the winner of this generation of graphic cards simply because ATI would have had to think ahead and add this type of feature to the R600 about a year ago. They might have but who knows, Maybe/Maybe not. ;)
 
AMD said:
Introducing the AMD Stream Processor™ - the first, dedicated, GPU-based solution to address the needs of high-performance computing users. Featuring the AMD R580 GPU, and a 1GB memory buffer, the AMD Stream Processor™ delivers the computing horsepower to handle the most complex compute tasks. The AMD Stream Processor™ delivers this performance in conjunction with AMD's unique compute runtime driver (CTM™), thereby enabling the most direct access to GPU resources in the industry.

For being a stream processor made for the industry it does look surprisingly like a video card. lmao
http://ati.amd.com/products/streamprocessor/index.html

The main factor on running the physics was the dynamic branching. It was horrible on everything prior to the 8800s while fairly good on a 1800 and up. That's why for example the folding released for the 1900's and not 7900's. An 1800 would be able to fold as well but the main change from 1800->1900 was a tripling of ALUs so it had a lot more math power. So technically speaking ATI/AMD has had this capability for quite some time.

CTM or the "Close to Metal" stuff that was on the H front page today is the programmable interface to it. With the programmable memory controller they had they were able to do some weird things(R2VB for example) for some time, this just seems like a way to make it available without using DX hacks.

I'm sure the G80 is much faster at it due to all the stream processors it got loaded down with and it likely more efficient with it's branching than an 1x00 series card. I'd almost guarantee you that R600 will have the capability because I see no reason why they'd drop that feature at this point in time.

Brent_Justice said:
The CUDA system in G80 where it uses the Stream Out function to carry general purpose/physics data and store it into special cache is unique NVIDIA technology. There are specific transistors of cache made specifically for this function. With CUDA it is like having two platforms meshed into one. There is a specific pipeline flow for graphics, and a specific pipeline flow for general purpose/physics data.

Are you sure this is a unique feature? From the DX10 specs I have seen stream out supports a variable amount of outputs up to a certain maximum. It might make sense that they added a buffer to hold up to that maximum and then move it to main memory. So while there is cache there it might not be that unique of a feature because writing an unknown quantity of data to main memory would likely fragment it very badly. It seems like one of those 'features' that would almost have to be included to maintain performance with stream out on any card.

Also it's not like there are extra math units on the card so while it might be able to run physics in parallel the fps would be reduced depending on the added workload. I'm not sure if CTM can run concurrently with DX9/10 but i'm guessing it wasn't necessarily designed to. They were probably thinking people buy a new R600, then use their old 1x00 series CPU to run the physics.

I don't mean to seem like I'm slamming the G80 but just trying to bring things up from a technical standpoint. Kind of curious what all it is capable of as well.
 
If the G80 doesn't have dedicated pipes for physics processing, doesn't that mean that while it calculates physics it would be slower doing graphics? I would assume that for full power in both graphics and physics power you would need two separate cores doing two separate calculations.

I hope that since ATI is release their product much later than NV they would come up with something that would trump the G80. Whenever something comes out later, you would think that it should at least be better than the product released earlier.
 
Anarchist4000 said:
Are you sure this is a unique feature? From the DX10 specs I have seen stream out supports a variable amount of outputs up to a certain maximum. It might make sense that they added a buffer to hold up to that maximum and then move it to main memory. So while there is cache there it might not be that unique of a feature because writing an unknown quantity of data to main memory would likely fragment it very badly. It seems like one of those 'features' that would almost have to be included to maintain performance with stream out on any card.

The G80 doesn't move any data into graphics memory, that's the whole point of CUDA, it bypasses the framebuffer completely, no storage is done there, it is all in GPU cache.

They were probably thinking people buy a new R600, then use their old 1x00 series CPU to run the physics.

The dual-SLI connectors on the GTX leave the potential for a tri-card setup as well, SLI + 1 card for dedicated physics.
 
Endurancevm said:
If the G80 doesn't have dedicated pipes for physics processing, doesn't that mean that while it calculates physics it would be slower doing graphics? I would assume that for full power in both graphics and physics power you would need two separate cores doing two separate calculations.

I hope that since ATI is release their product much later than NV they would come up with something that would trump the G80. Whenever something comes out later, you would think that it should at least be better than the product released earlier.

A balance would need to be struck with one GPU obviously since it would be using some of the stream processors for physics. The G80 is like a multi-purpose swiss army knife, it has a "pipeline", that pipeline can be used for graphics, or physics, or any general purpose compute. It can be dedicated to one or the other or it can do both at the same time and balance them out.

The unique part is that in doing physics and general compute applications data does not have to touch the graphics framebuffer, there is a special cache it works out of (and caches can share data), should make it much quicker and it won't decrease the framebuffer space while you are gaming, you'll have the full amount while gaming. In a GPGPU it shares graphics framebuffer space. Oh, and the whole thing is C based, so should make it easier for developers to utilize.
 
I think it is a bit early to talk about what specific features the r600 will or will not have. Suffice to say that I am happy that nVidia got on the folding boat with the 8800 series and am looking forward to seeing how fast it is in comparison to the x19x0 series. In fact, the only reason I bought a x1900xtx recently was for folding at home!

The whole GpGPU movement is very interesting.
 
Brent_Justice said:
The unique part is that in doing physics and general compute applications data does not have to touch the graphics framebuffer, there is a special cache it works out of (and caches can share data), should make it much quicker and it won't decrease the framebuffer space while you are gaming, you'll have the full amount while gaming. In a GPGPU it shares graphics framebuffer space. Oh, and the whole thing is C based, so should make it easier for developers to utilize.

If you were just multiplying a number by itself x number of times and could keep caching the result it would help. But if you had 1MB+ worth of triangles you were looping through and testing collision against I can't imagine keeping all that data in a cache or pulling from system memory every iteration. Start running 16 of those loops in parallel and I highly doubt G80 has 16MB of cache built into the die. My understanding was that it reserved say 512mb for framebuffer and anything beyond that could be used for physics/VS/GS data. When creating a 'thread' it would get all required data, stick it into a packet, then send it off to be processed. It would come back wanting either more data or giving a result at which point it would fetch more data or terminate the thread. One of the thread setup parts would then wait around while the requested data got fetched from the framebuffer then send it off again.

In a lot of cases it would never have to touch the framebuffer but I can also think of situations where you might want to access the framebuffer. For instance if you were attempting to find the average color in a texture. You wouldn't have to use the framebuffer if you didn't want to but could when it proved useful.
 
I'm waiting for a video encoder app that can access this power. 128 stream processors should be able to recode a DVD in less than a minute. It would also be nice if someone would write a 3dstuioMAX plugin that will use these for frame rendering.

I just wish Nvidia had released a "killer app" along with CUDA. Since they have been working on it for so long, and it uses *simple* programming language, how come they didn't? I'd even be willing to pay a bit more for an add on program (a la NVDVD) if I could cut my DVD *backup* time in half or more.
 
Brent_Justice said:
The Stream Out function is an inherent DX10 feature, if R600 supports DX10 it will also have this feature.

The CUDA system in G80 where it uses the Stream Out function to carry general purpose/physics data and store it into special cache is unique NVIDIA technology. There are specific transistors of cache made specifically for this function. With CUDA it is like having two platforms meshed into one. There is a specific pipeline flow for graphics, and a specific pipeline flow for general purpose/physics data.

The driver also divides this up, one driver install package, but the general purpose/physics part of the driver does not use or act on the graphics part of the driver. They follow two different paths, they aren't layered into each other.
That is some SERIOUS tech. I could be wrong, but I think that just about ends Ageia.
 
Commander Suzdal said:
That is some SERIOUS tech. I could be wrong, but I think that just about ends Ageia.

You could be right, this is why I got so excited and started the thread. I'd rather have a gpu handle this than to pay for a seperate physiX accelleration product. I'd rather have this handled in SLi and not requiring a 3rd card but who knows what nvidia has up their sleeves.
 
I didn't mean to imply that a 3rd card was the only way that physics could be done. I meant that if you want to maintain peak fps without losing some to physics calculations an additional card would be used. So when you upgrade cards you just keep your old one for physics calculations.

With AMD and Intel both looking into making stream processors as well Ageia is likely in trouble. Their only hope is to have patents and get bought out by AMD/Intel IMHO.

I could honestly almost see GPUs being completely obsolete in the future with massive stream processors integrated into the CPUs. We'd end up with weird looking mobos instead of adding in video/physics cards.
 

NVIDIA GeForce 8800 GTX launched 20 years ago as the first CUDA-capable graphics card​

Twenty years ago, NVIDIA released the GeForce 8800 GTX with 128 unified shaders and 768MB GDDR3.

The important change was NVIDIA’s unified shader architecture. Earlier GeForce GPUs used separate processing units for vertex and pixel operations, while G80 could distribute those workloads across the same stream processors.

Source: VideoCardz.com
https://videocardz.com/newz/nvidia-...s-ago-as-the-first-cuda-capable-graphics-card
 
1794235790259.png

theres already a thread for that, and just missed the top 10.....
https://hardforum.com/threads/nooner.1169381/page-2#post-1044644086

https://hardforum.com/threads/geforce-8800-gtx-20-years-of-a-legend.2050210/#post-1046403038
 
Last edited:
Back
Top