How the gpu utilization calculate in NVML

I use nvmlDeviceGetUtilizationRates() to get the utilization rate of GPU.Then I test it by this way, while the collection is running, I excute a DFT.cu( the Kernel is organised as <7,32>) on Tesla C2070 which have 14 SMs, on my thought, there were 7 blocks excute on the same time on GPU, the utilization should be 50%, but the API gave the result as 99%, which means GPU be used completely.
So, I am confused the way the nvmlDeviceGetUtilizationRates() calculate, can anybody do me a favor?
Thanks in advance.

Not positive if this answers your question completely but below is how they are calculated.

• unsigned int gpu
Percent of time over the past second during which one or more kernels was executing on the GPU.
• unsigned int memory
Percent of time over the past second during which global (device) memory was being read or written