8
\$\begingroup\$

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?

\$\endgroup\$
4
  • 8
    \$\begingroup\$ It varies from each card model to the next. What is the goal of this question? \$\endgroup\$ Commented Sep 13, 2011 at 19:34
  • \$\begingroup\$ 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) \$\endgroup\$ Commented Sep 13, 2011 at 22:10
  • 1
    \$\begingroup\$ stackoverflow.com/questions/6490572/… \$\endgroup\$ Commented Mar 31, 2016 at 9:38
  • \$\begingroup\$ archive.is/ijlYA#selection-285.296-285.499 \$\endgroup\$
    – Pacerier
    Commented Nov 3, 2017 at 19:48

2 Answers 2

27
\$\begingroup\$

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.

\$\endgroup\$
4
  • \$\begingroup\$ 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. \$\endgroup\$
    – bobobobo
    Commented Sep 14, 2011 at 13:23
  • \$\begingroup\$ @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. \$\endgroup\$ Commented Sep 14, 2011 at 17:18
  • \$\begingroup\$ It is interesting that you pronounce SIMD by its individual letters. VLIW is a confusing mouthful by anything other than its letters, but most (all, in fact) systems programmers I have worked with say "sim dee". \$\endgroup\$ Commented Feb 23, 2015 at 17:17
  • \$\begingroup\$ @NicolBolas, Dude, 80 concurrent instructions? That frigging still beats the usual 8 or 16 you get from CPU. \$\endgroup\$
    – Pacerier
    Commented Nov 3, 2017 at 19:20
3
\$\begingroup\$

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.

\$\endgroup\$
1
  • \$\begingroup\$ Whaats a PPU ?? \$\endgroup\$
    – Pacerier
    Commented Nov 3, 2017 at 19:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .