Bulldozer and 64 bits integer multiplication

Vincent Diepeveen diep at xs4all.nl
Fri Oct 14 16:29:47 CEST 2011


Hello,

I tend to remember that for FFT the limiting speed of GMP is the  
multiplication throughput that one
can achieve in integers.

Now Bulldozer is a weirdo design on paper of a quad core chip that  
splits into 8 minicores.
Yet each minicore as we can see on the drawing has its own  
multiplication unit.

That would mean that doing 64 bits integer transform is nearly double  
the speed of quad core chippie.

What's a good way to test this with GMP on a bulldozer?

I ask this as my own 64 bits transform, which uses YAP by the way, is  
not written in assembler, yet in C,
and the compilers total mess up there on the code i wrote when trying  
to obtain the high 64 bits and low 64 bits
results of a 64  * 64 bits multiplication.

So that would not be very representative test here for measuring  
potential of bulldozer there.

What options are there in GMP, i tend to remember last time that i  
checked it's code that
uses 32 x 32 bits integers in SIMD right?

Basically i want to test whether it really has 8 multiplication units  
for 64x64 bits == 128 bits output in integers,
and that it doesn't with some trick cast that onto the same 4  
multiplication units. 


More information about the gmp-discuss mailing list