1
\$\begingroup\$

What's the relation between Teraflops and Threads in a GPU like GTX Titan X has 7 TFOPS of Compute Performance but how many threads it has ? And Like Xbox and PS4 have 1.32 and 1.84 TFLOPS of compute performance but how many threads they have? Like what’s the relation between teraflops and threads?

If they are different concepts. Can you please explain both of them?

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

A TFLOPS is short for Terra(Billion) Floating Point Operations Per Second

It simply means how many floating point operations(Such as adding, multiplication, division) can a processing device do in a second.

Threads are simply paths of execution, the more threads a process has, the more processor cores can it use, so in a multi-core environment it is faster.

Both of these are general concepts that apply to both processors and GPUs. GPUs usually have much more cores(in the hundreds) so parallelism(use of many threads) is very important to achieve high performance there.

There is no direct relationship between the two, but usually the more threads means more processing power, as there is a limit how much transistors and thus flops can we pack into a single core.


You could compute a processors total FLOP speed using the following calculation:

Performance = Cores * CorePerformanceInFLOPS

Tough many processes can't be parallelized well, and the performance increase is less than 50% when adding a second core, and gets less and less effective with more cores.

A thread is a separate thing than a core. A core is a physical entity, while a thread is a path of execution. Tough if you have an n threaded program, you can't use more than n cores to do that.

Also please note that this doesn't take into account hyperthreading(mainly found in Intel CPUs) where one physical core runs 2 threads, effectively acting as 2 separate cores.

As for what performance is needed for a specific algorithm, it depends on waaay too many factors to be determined. Just because a hardware has a high FLOP value, it doesn't mean it will be able to use it, if its bottlenecked by Memory bandwidth, or the CPU. Also the algorithm may be optimized poorly or well, also it may be optimized specifically for this hardware or another, and again the hardware may be optimized for this process or another, and the process may be parallelizeable or not(in which case you won't benefit from additional cores) so as you can see its not a question easily answered.

\$\endgroup\$
4
  • \$\begingroup\$ Thanks for the reply. I have one last question - Any guesses how many floating point operation per second are required to implement a highly complex ray tracing engine like PBRT? \$\endgroup\$
    – shader
    Commented Apr 8, 2015 at 6:02
  • \$\begingroup\$ I have one more question - Say if a processor has higher TFLOPS, it also means that it has more threads? or TFLOPS is directly proportional to number of cores on the processor? \$\endgroup\$
    – shader
    Commented Apr 8, 2015 at 8:08
  • \$\begingroup\$ The FLOPS has no direct relation to threads. You can have a fast processor with one core or a processor with many cores but each core is slow and both achieve similar FLOPS. The question can you partition your algorithm to use all the available cores; if no the total FLOPS number is meaningless for multicore processors. \$\endgroup\$
    – rioki
    Commented Apr 8, 2015 at 11:37
  • \$\begingroup\$ @shader Edited my answer to add more information. \$\endgroup\$
    – akaltar
    Commented Apr 8, 2015 at 12:21

You must log in to answer this question.

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