Thanks for joining the Graphics community.
There is an official site for your graphics controller, it provides information about Execution Units for the 4th Generation Intel CoreProcessor Family, see page 29.
HD4400 and HD4600 [Mobile CPUs] both have 20 EU's
HD Graphics – GT1, 10 execution units, up to 184 GFLOPS at 1150 MHz
HD Graphics 4200, 4400 [Mobile CPU], 4600, P4600, P4700 – GT2, 20 execution units, up to 432 GFLOPS at 1350 MHz
HD Graphics 5000 – GT3, 40 execution units, twice the performance of HD4xxx for compute-limited workloads, 15 W TDP SKUs, up to 704 GFLOPS
Iris Graphics 5100 – the same as HD Graphics 5000, 28 W TDP SKUs, but higher maximum frequency of 1.3 instead of 1.1 GHz, up to 832 GFLOPS
Iris Pro Graphics 5200 – GT3e, the same as GT3 but with addition of a large 128 MB embedded DRAM (eDRAM) cache
Here is a bit more granularity:
HD Graphics EU's [Mobile CPU]
HD Graphics 5600 24 64/128 Bit
HD Graphics 6000 48 64/128 Bit
HD Graphics 5500 24 64/128 Bit
HD Graphics 4600 20 @ 200 - 1350 (Boost) MHz 64/128 Bit
HD Graphics 5300 24 @ 100 - 850 (Boost) MHz 64/128 Bit
HD Graphics 5000 40 @ 200 - 1100 (Boost) MHz 64/128 Bit
HD Graphics 4400 20 @ 200 - 1100 (Boost) MHz 64/128 Bit
HD Graphics 4000 16 @ 350 - 1350 (Boost) MHz 64/128 Bit
HD Graphics 4200 20 @ 200 - 850 (Boost) MHz 64/128 Bit
**Edited by Bryce@Intel for accuracy (anything new is in red) - 01/17/17**
** The above amount of EUs (Execution Units) may differ based on Mobile vs Desktop CPU's. ie. The HD 4400 Mobile (i3-4170t) has 20 EU's, while the Desktop (i3-4170) has 12 EU's. At times like with the HD 4400, EUs are not the same between the CPU models. The Processor model should be referenced in determining EUs, not Graphics version.
System and graphics performance is determined with several factors in consideration and EU count alone is not a complete measure of performance.
Well, then something's not right here:
It clearly says "Shaders: 16 Unified".
Intel's own processor identification utility says it is a genuine i3-4130.
I now have a i7-4790T in my system which has a 4600 and gpu-z prints out 20, as expected.
If you insist I can swap the processors and capture the exact capabilites as reported by gpu caps viewer, luxmark etc.
GPU-z, GPU caps viewer etc in general are not necessarily accurate. The ISVs that develop these tools don't have a way to query our HW, they simply have some hard coded table. HD 4400 does have 20 EU's regardless of what is reported by the app. Here is some additional reading on Intel HD Graphics (Haswell) and EU's that you may find useful. Volume 2 GPU Overview discusses EU's. 2013 Intel Core Processor Family | Linux Graphics
"GPU-z, GPU caps viewer etc in general are not necessarily accurate. The ISVs that develop these tools don't have a way to query our HW"
While this MAY be true of GPU-Z, it is certainly NOT TRUE of gpu caps viewer.
100% certified honest to god absolutely positively NOT TRUE!
GPU caps viewer uses clGetDeviceInfo() with param_name = "CL_DEVICE_MAX_COMPUTE_UNITS" to obtain the number of compute units.
So the value reported by GPU caps viewer comes from an intel piece of softare: the intel opencl stack.
Maybe the intel opencl stack reports inaccurate values?
From the link you provided (and which i have read before starting this discussion) we learn of a GT1.5 with 12 EUs, which is EXACTLY what GPU caps viewer reports.
It appears then, that intel uses "HD 4400" for TWO different products: one with 20 EUs used in ultrabook haswells with GT2 graphics and one with 12 EUs used in desktop haswells with GT1.5 graphics.
God knows what the 4200 is really, then.
Can you confirm this?