speed up, S> no. of core ? is it possible ?


Is it possible to get an application speed up on a GPU more than the number of cores it has. For example suppose we have a GPU with 128 cores, is it possible to accelerate an application by a factor of more than 128.
If yes how? I think if S is the speed up, and N is the totral number of cores in a GPU, then only following equation holds true:

S < N or at max S=N


Try this

You must take into account that CPU and GPU cores aren’t equivalent so this kind of comparison is not applicable.
When you compare a single CPU core versus N identical CPU cores then it’s almost impossible to get S>N (save for really rare cache exploits, google “superlinear speedup”).

I’ve achieved 150x+ speed-ups on a card with 128 cores versus two cores of an E5200 CPU.

In addition, some tasks are memory-bandwidth bound and not floating-point performance bound. These will scale on the GPU more like the ratio of the memory bandwidths, not the number of cores.

All the pipelines, branch prediction, out-of-order execution, and caches on modern CPUs make them very non-linear devices when it comes to performance. It can be very hard to predict the throughput scaling across architectures, especially between a CPU and a GPU.

It is possible to get such speedups. I have seen this myself… Depending on the problem in hand… (how well u hide latencies)…

Also, Poor CPUs have to take in timer-interrupt, network interrupt (un-wanted ARPing broadcasts etc…) etc… that in turn will destroy the cache… So the cpu will perform much below its capacity for large problems (taking lot of time)

Okkk…Avidday, the Gustafson’s law simply says that the maximum speed up can be the number of cores. Thanks for the reply anyways…