GMP on the Cell processor

Holger Bettag hobold at informatik.uni-bremen.de
Fri Apr 20 14:56:33 CEST 2007


(Some of you may remember me for unfulfilled promises about using AltiVec 
to speed up GMP on good ole' PowerPC G4 machines. So take my statements 
with a grain of salt.)

On Thu, 19 Apr 2007, Torbjorn Granlund wrote:

> I would not expect it to perform well at all, unfortunately.  Reasons:
>
> * IIRC, the Cell doesn't have a 32x32->64 bit multiply instruction.
>  The lack of such an operation is a disaster for the performance.
>
I have only skimmed the SPU instruction set so far, and believe that it is 
a bit weaker for wide integer multiplies than AltiVec. Still, it is a bit 
better for carry propagation.

Lacking a nice basic instruction for wide multiplies is not such a big 
deal, though, as long as the available multiply instructions do enough 
work in one way or another. AltiVec's "multipy sum" instructions are a 
fairly good example of this. (Something like vector_permute is an 
additional requirement to make such SIMD multiplies viable for bignum 
arithmetic, otherwise the shuffling of partial results is a bottleneck.)

> * Making good use of SIMD for the most critical GMP operations is hard.
>  (See the mpn/cray and perhaps mpn/powerpc*/vmx for some examples.)
>
True, SIMD style parallelism is not an ideal fit for bignum arithmetic. 
The usual reason is the sequential dependency on carry propagation.

But multiplication has a lot of inherent parallelism, and often accounts 
for a large percentage of program runtime, so there is good reason to try 
and vectorize it.

> * Using multiple cores for any real GMP peformance benefit is probably
>  very difficult.
>
Well, the Cell has extraordinarily good communication between the various 
cores, both in terms of latency and bandwidth. If it is at all feasible to 
partition a single huge number and distribute work to several processor 
cores, then the Cell is probably better suited to it than any other widely
available architecture.

   Holger


More information about the gmp-discuss mailing list