NVIDIA's Fermi: Architected for Tesla, 3 Billion Transistors in 2010
by Anand Lal Shimpi on September 30, 2009 12:00 AM EST- Posted in
- GPUs
A More Efficient Architecture
GPUs, like CPUs, work on streams of instructions called threads. While high end CPUs work on as many as 8 complicated threads at a time, GPUs handle many more threads in parallel.
The table below shows just how many threads each generation of NVIDIA GPU can have in flight at the same time:
Fermi | GT200 | G80 | |
Max Threads in Flight | 24576 | 30720 | 12288 |
Fermi can't actually support as many threads in parallel as GT200. NVIDIA found that the majority of compute cases were bound by shared memory size, not thread count in GT200. Thus thread count went down, and shared memory size went up in Fermi.
NVIDIA groups 32 threads into a unit called a warp (taken from the looming term warp, referring to a group of parallel threads). In GT200 and G80, half of a warp was issued to an SM every clock cycle. In other words, it takes two clocks to issue a full 32 threads to a single SM.
In previous architectures, the SM dispatch logic was closely coupled to the execution hardware. If you sent threads to the SFU, the entire SM couldn't issue new instructions until those instructions were done executing. If the only execution units in use were in your SFUs, the vast majority of your SM in GT200/G80 went unused. That's terrible for efficiency.
Fermi fixes this. There are two independent dispatch units at the front end of each SM in Fermi. These units are completely decoupled from the rest of the SM. Each dispatch unit can select and issue half of a warp every clock cycle. The threads can be from different warps in order to optimize the chance of finding independent operations.
There's a full crossbar between the dispatch units and the execution hardware in the SM. Each unit can dispatch threads to any group of units within the SM (with some limitations).
The inflexibility of NVIDIA's threading architecture is that every thread in the warp must be executing the same instruction at the same time. If they are, then you get full utilization of your resources. If they aren't, then some units go idle.
A single SM can execute:
Fermi | FP32 | FP64 | INT | SFU | LD/ST |
Ops per clock | 32 | 16 | 32 | 4 | 16 |
If you're executing FP64 instructions the entire SM can only run at 16 ops per clock. You can't dual issue FP64 and SFU operations.
The good news is that the SFU doesn't tie up the entire SM anymore. One dispatch unit can send 16 threads to the array of cores, while another can send 16 threads to the SFU. After two clocks, the dispatchers are free to send another pair of half-warps out again. As I mentioned before, in GT200/G80 the entire SM was tied up for a full 8 cycles after an SFU issue.
The flexibility is nice, or rather, the inflexibility of GT200/G80 was horrible for efficiency and Fermi fixes that.
415 Comments
View All Comments
Pirks - Monday, October 5, 2009 - link
No, Jarred, they are advancing towards 2560x1600 on every PC gamer's desk. Since they move towards that (used to be 800x600 everywhere, now it's more like 1280x1024 everywhere, in couple of years it'll be 1680x1050 everywhere and so on) they cannot be described as stagnant, hence your statement is BS, Jarred.mejobloggs - Tuesday, October 6, 2009 - link
I think I'll agree with Jared on this oneLCD tech isn't advancing enough to get decent high quality large screens at a decent price. 22" seems about the sweet spot which is usually 1680x1050
Pirks - Wednesday, October 7, 2009 - link
This sweet spot used to be 19" 1280x1024 a while ago, with 17" 1024x768 before that. In a couple of years sweet spot will move to 24" 1920x1200, and so on. Hence monitor resolution does progress, it does NOT stagnate, and you do listen to Jarred's fairy tales too much :PJarredWalton - Friday, October 9, 2009 - link
What we have here is a failure to communicate. My point, which you are ignoring, is that maximum resolutions are "stagnating" in the sense that they are remaining static. It's not "BS" or a "fairy tale", unless you can provide detail that shows otherwise. I purchased a 24" LCD with a native 1920x1200 resolution six years ago, and then got a 30" 2560x1600 LCD two years later. Outside of ultra-expensive solutions, nothing is higher than 2560x1600 right now, is it?1280x1024 was mainstream from about 7-11 years ago, and 1024x768 hasn't been the norm since around 1995 (unless you bought a crappy 14/15" LCD). We have not had a serious move to anything higher than 1920x1080 in the mainstream for a while now, but even then 1080p (or 1200p really) has been available for well over 15 years if you count the non-widescreen 1600x1200. I was running 1600x1200 back in 1995 on my 75 pound 21" CRT, for instance, and I know people that were using it in the early 90s. 2048x1536 and 2560x1600 are basically the next bump up from 1600x1200 and 1920x1200, and that's where we've stopped.
Now, Anand seems to want even higher resolutions; personally, I'd be happier if we first found a way to make those resolutions work well for every application (i.e. DPI that extends to everything, not just text). Vista was supposed to make that a lot better than XP, but really it's still a crap shoot. Some apps work well if you set your DPI to 120 instead of the default 96; others don't change at all.
Pirks - Friday, October 9, 2009 - link
I agree that maximum resolution has stagnated at 2560x1600, my point was that the average resolution of PC gamers is still moving from pretty low 1280x1024 towards this holy grail of 2560x1600 and who knows how many years will pass until every PC gamer will have such "stagnated" resolution on his/her desk.So yeah, max resolution stagnated, but average resolution did not and will not.
I am as mad as hell - Friday, October 2, 2009 - link
Hi everyone,first off, I am not mad as hell! I just registered this acct after being an Anandtech reader for 10+ years. That's right. It's also my #1 tech website. I read several others, but this WAS always my favorite.
I don't know what happened here lately, but it's becoming more and more of a circus in here.
I am going to make a few points suggestions:
1) In the old days reviews were reviews, this days I there are a lot more PRE-views and picture shows and blog (chit chatting) entries.
2) In the old days a bunch of hardware was rounded up and compared to each other (mobos, memory, PSU's, etc..) I don't see that here much anymore. It's kind of worthless to me just to review one PSU or one motherboard at the time. Round em all up and then lets have a good ole fashioned shootout.
3) I miss the monthly buyer guides. What happened to them? I like to see CPU + Mobo + Mem + PSU combo recommendations in the MOST BANG FOR THE BUCKS categories (Something most people can afford to buy/build)
4) Time to moderate the comments section, but not censorship. My concern is not with f-words, but with trolls and comment abusers. I can't stand it. I remember the old days when then a famous site totally self-destruct, and at that time I think had maybe more readers than Anand, (hint: It had the English version of "Tiburon" as name as part of the domain name) when their forum went totally out of control because it was moderated.
5) Also, time to upgrade the comments software here at Anandtech. It needs a up/down ratings feature that even many newspaper websites offer these days.
shotage - Saturday, October 3, 2009 - link
I agree with the idea of a comments rating system (thumbs up or down). Its a democratic way of moderating. It also saves the need for those short replies when all you want to convey is that you agree or not.Maybe also an abuse button that people can click on should things get really out of control..?
Skiprudder - Friday, October 2, 2009 - link
The up/down idea is perfect for the site. Now why didn't I think of that! =)AnnonymousCoward - Friday, October 2, 2009 - link
I don't like commenter ratings, since they give unequal representation/visibility of comments, they affect your perception of a message before you read it, and it's one more thing to look at while skimming comments.Skiprudder - Friday, October 2, 2009 - link
I'm sorry, but I'm going to ask for a ban of SiliconDoc as well. One person has single-handedly taken over the reply section to this article. I was actually interested in reading what other folks thought of what I feel is a rather remarkable new direction that nvidia is taking in terms of gpu design and marketing, and instead there are literally 30 pages of a single person waging a shouting matching with the world.Right now there isn't free speech in this discussion because an individual is shouting everyone down. If the admins don't act, people are likely to stop using the reply section all together.