On Saturday 17 May 2008, Bill Hart wrote: > Martin, > > The test code still passes if you change RADIX to 128. I've no idea > how it passes, but it does. Shame the results are not correct, because > this speeds the code up by a factor of 2.
Since all routines use the RADIX and I only check if their results match they are all wrong in the same way but it isn't detected. I should add a test with known answers I suppose. > I notice that in the SSE code, you check to see if alignment can be > achieved, otherwise it doesn't use SSE. But this introduces an > unpredictable branch. Also, where ther are three operands, you can't > use SSE2 because the likelihood of all three being aligned is too > small. > I think a better idea would be to explicitly force all matrices and > all rows to be 128 bit aligned if the matrices are wide enough to > benefit from SSE2, Then the combine function can always use SSE2 and > there will be no need to check for alignment. I'll try that. > I experimented with interleaving MMX and GPR XOR's, but this doesn't > speed anything up. There are more instructions emitted and the time > stays about the same. The only way interleaving the MMX and GPR code > would speed things up is if there was more computation going on in the > registers and less memory loading and storing, I think. I came to the same conclusion (but my code might not have been as good as your's). I improved other areas of the code (e.g. use naiv multiplication rather than M4RM if B->ncols < RADIX since it is faster etc.) I can forward you my newest tarball (but the speed improvements aren't really noticable yet). Martin -- name: Martin Albrecht _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 _www: http://www.informatik.uni-bremen.de/~malb _jab: [EMAIL PROTECTED] --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---