GeForce GT 435M, CUDA Cores=96, multiprocessors=2, why?

Hi,
I have a GeForce GT 435M. As shown here (http://www.nvidia.com/object/product-geforce-gt-435m-us.html) it has 96 Nvidia Cores. I have read that one multripocessor= 8 Nvidia Cores, so I expected to have 12 multiprocessor but when I do:
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, 0);
printf (“%d”,deviceProp.multiProcessorCount);
I have as a result 2. Do you know why this happens?
Thanks,
P

In your card, a multiprocessor has 48 cores, not 8. There have been three different SM architectures so far in CUDA. Compute 1.0,1.1,1.2 and 1.3 have 8 cores per SM. Compute 2.0 has 32 cores per SM. Compute 2.1 has 48 cores per SM. Your card is a compute 2.1 device - you can confirm this yourself by reading the compute major and minor field using the same API.

Thank you very much for the quick answer! In general is it better to have more core in a multiprocessor? Why?

I am not sure there is an “in general” answer to that question.

There will be a number of 8 core SM GT200 GPUs that will be much, much faster than the GPU you have, just because the have many more cores and a lot more memory bandwidth. But because they are an older architecture, they do not support a very large number of features that have been added in newer designs and newer versions of CUDA. Today, I would choose a Compute 2.0 or 2.1 device (even a slower one), just because of those new features. But I would prefer a 32 core to 48 core SM version, just because those are the most “compute” oriented parts.