Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'd like to know how many parallel units for processing vertices a GPU has.

This Wikipedia page provides a GFLOPS and clock speed, for example for the Radeon 5850 "Broadway PRO", you get 1000 GFLOPS. Assume running a vertex shader is 100 flops, then that means you can process 1000e9 / 100 = 10e9 vertices per second.

Is there a manufacturer published number of number of parallel processing units, or a way to know that number?

share|improve this question
8  
It varies from each card model to the next. What is the goal of this question? –  AttackingHobo Sep 13 '11 at 19:34
    
I agree with AttackingHobo, it is irrelevant the number of cores because every chip has a different amount and also they work differently so in a model 30 cores may be more powerful than one with 60 cores. Also you will have to refer to each chip spec from the manufacturer if you don't trust the info there in wikipedia (which is probably accurate) –  Pablo Ariel Sep 13 '11 at 22:10

2 Answers 2

up vote 18 down vote accepted

Assume running a vertex shader is 100 flops, then that means you can process 1000e9 / 100 = 10e9 vertices per second.

No, it most assuredly does not.

Basically, you should consider any calculation of the execution speed of any code based solely on "FLOPS" count to be suspect. Indeed, it's generally best if you completely ignore FLOPS entirely.

You did not define the term "parallel unit"; without that definition, we could only guess at what you're wanting.

Take the Radeon 5870. It has 1600 floating-point units. That means, for every cycle, it can be executing 1600 scalar floating-point operations at once. However, each VLIW opcode works on 5-way vector math registers. So the smallest possible granularity of actual code is 1600/5, or 320 (note: this is a vast simplification). That's 320 threads.

However, that's not really how it works. You don't have 320 separate paths of execution going on. You cannot have 320 different pieces of code executing on 320 different units. See, the 5-way VLIWs are themselves grouped into 4-way SIMD cores. Each SIMD can have its own path of execution and its own source code. Each VLIW within an SIMD core can have separate data, so that they compute separate values. But each VLIW within an SIMD core executes the same instructions in lock-step with the other VLIWs in that core.

So really, you only have 320/4, or 80 total threads. But again, it depends on what kind of "parallel unit" you're talking about. Technically, 1600, 320, and 80 are all legitimate answers.

And that's just for one specific architecture. NVIDIA's Fermi line (GeForce 4xx and above) uses a vastly different architecture. ATI's Cayman line (Radeon 69xx) changes the 5-way VLIWs to 4-way VLIWs. Their next architecture may have some significant differences too.

Without knowing what you're looking for, there's just no way to answer the question.

share|improve this answer
    
Great. I found this article on GPU architecture, as well, but where did you find the floating-point unit counts? That's what I was looking for. –  bobobobo Sep 14 '11 at 13:23
    
@bobobobo: It was in the Wikipedia page you linked to. Also, that GPU Gems article is specific to the GeForce 6-7 line. It's also 6 years old. –  Nicol Bolas Sep 14 '11 at 17:18

I don't understand, what do you mean by parallel processing unit? shader units? Because a ppu and a gpu nowadays are basically the same thing, i mean the ppu IS the gpu if we are talking about ati radeon.

I suppose you mean the functional units, you have to read the Config core field in wikipedia:

Config Core – The layout of the graphics pipeline, in terms of functional units. Over time the number, type and variety of functional units in the GPU core has changed significantly; before each section in the list there is an explanation as to what functional units are present in each generation of processors.

so for the radeon you say it would have:

Unified Shaders (Vertex shader/Geometry shader/Pixel shader) : Texture mapping unit : Render Output unit

which for the broadway pro is: 800:40:16

this means it has 800 shader units, 40 texture mapping units and 16 render output units.

EDIT: Well no, it seems that parallel processing unit is also applied to what you mean, so I suppose it's kinda confusing calling them that way. I would call them shader units or simd cores.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.