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.