What is the "Number of Streaming Multiprocessors (SM)"?

Colleagues, I have very simple and basic question.

The “number of Streaming Multiprocessors (SM)” returning from nppGetGpuNumSMs() function looks pretty strange from my point of view.

For example
GeForce 8400M GS = 2
Quadro FX 1700 = 4
GeForce 9600GT = 8

But expected values (according to NVidia documentation)
GeForce 8400M GS = 16
Quadro FX 1700 = 32
GeForce 9600 GT = 64

Why number of SMs reported by nppGetGpuNumSMs function 8 times less than expected?

Thank you in advance,

Andrey.

On all cards other than Fermi, a streaming multiprocessor is a cluster of 8 scalar cores sharing a number of resources (like register file, shared memory, instruction scheduler, etc). SMs are really the basic execution unit in NVIDIA hardware, which is what the API function you are calling is telling you, and the reason for the factor of 8 discrepancy.

Thank you for the exellent explanation!

You probably confused SMs with SPs