2
$\begingroup$

In his article Software Development for Infrastructure Stroustrup states the following:

Hardware improvements make the problems and costs resulting from isolating software from hardware far worse than they used to be. For a typical desktop machine,

  • 3/4ths of the MIPS are in the GPU;
  • from what’s left, 7/8ths are in the vector units; and
  • 7/8ths of that are in the “other” cores.

So a single-threaded, nonvectorized, non-GPU-utilizing application has access to roughly 0.4 percent of the compute power available on the device (taken from Russell Williams).

Now I understand the GPU and threading issues of performance. But since threading and vectorization are mentioned as separate things, I would like to know what does it exactly mean when you say that vector units are X% of the computing power.

$\endgroup$
1
$\begingroup$

Imagine you have a 256 bit vector floating point unit which can perform eight 32 bit operations in parallel. How many operations per second can you perform with or without using the vector FPU?

Imagine you have eight cores. How many operations can you perform in one second using one core or all eight cores?

$\endgroup$
  • $\begingroup$ I still do not understand if this is just about multithreading or something more. $\endgroup$ – Tomáš Zato Mar 15 at 12:12
1
$\begingroup$

Typical desktop machine may include:

  • 2 TFLOPS mid-class desktop GPU
  • 4-core CPU with 512 GFLOPS total in AVX2 units, and 64 GFLOPS total in scalar units. Single-threaded, scalar code has only access to 16 GFLOPS
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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