Hi

Before I attempt to write a specialized code for the tooms (i imagine toom23 
and toom33 would be the only ones worth the effort) , we better use what we 
already have or can easily extend. The current toom eval phase doesn't take 
advantage of sumdiff or addsub etc , rewrite it to do so , shouldn't take more 
than a day.

Assuming when we combine multiple adds/subs together we are bound by memory 
bandwidth(which pretty much appears to be the case) we get these timing(K8 of 
course) in cycles per word

add 1.5
addadd 2.0
addaddadd 2.5
addaddaddadd 3.0
etc
sumdiff 2.5 (bound by macro-ops)(not yet achieved)


For toom we eval at 0 and inf , nothing to do there
eval at +1 and -1 

for toom3 we want a+b+c and a-b+c
either addadd and addsub =2.0+2.0=4.0
or add and sumdiff =1.5+2.5=4.0

for toom 4 we want a+b+c+d and a-b+c-d
either addaddadd and addsubsub = 2.5+2.5=5.0
or add and add and sumdiff = 1.5+1.5+2.5=5.5

for toom5 we want a+b+c+d+e and a-b+c-d+e
either addaddaddadd and addaddsubsub = 3.0+3.0=6.0
or addadd and add and sumdiff =2.0+1.5+2.5=6.0

for toom6 we want a+b+c+d+e+f and a-b+c-d+e-f
either addaddaddaddadd and addaddsubsubsub =3.5+3.5=7.0
or addadd and addadd +sumdiff = 2.0+2.0+2.5=6.5

from here upwards you can see that the xxxxx sumdiff method is fastest.
So need to write a addaddadd and addsubsub and get sumdiff down to 2.5 this 
should cover us up to toom9 or so

Next , evals at +2 -2 +1/2 -1/2 (but is that best? +2 -2 +4 -4 may better as 
we have already done some of the calcs , and of course this ignored the 
interpolate stage , depending on the timings of the basic asm functions 
different cpu's may use different eval pts) (and I'm ignoring Marco Bodrato's 
and Alberto Zanoni's toom half improvements for now)
Until the basic asm operations are properly writen the final word on which 
method is best is up in the air :) and it's fun .

Jason

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-devel@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to