> ... I can do 50,000 fp mults or fp adds with a 16mhz avr... FWIW, I did some Kalman work with the µMFPU v3.1 on a ZX-24 last year and found it is very useful - and fast if you keep your work on the FPU, i.e. keeping vars on the FPU and using user-defined functions instead of single FPU instructions (which would need to transfer data both ways). 50,000 32-bit float multiplies per second sounds pretty fast, but try to do a 3x3 multiplicitive matrix inversion, something of a benchmark. Although the FPU now offers a single instruction for small matrix inversions (it did not when I did this work), I wrote what was apparently the quickest FPU code to do that then, in 465µS. The new instruction is faster. Here is µMFPU v3.1 function code that executes a 3x3 inversion. How fast can a 16MHz AVR do this? ' F0=1/(MB3a*MA3a)-(-MB3d*MA3b)+(MB3g*MA3c) '1/determinant sum of 3 cofactors #asm left fset, 14 fmul, 5 fmac, 17, 6 fmac, 20, 7 finv right #endasm Tom
Message
Re: [AVR-Chat] µMFPU
2008-01-24 by Tom Becker
Attachments
- No local attachments were found for this message.