Profiling Matrix Operations - uw-advanced-robotics/taproot GitHub Wiki
All operations performed with 10x10 matrices stored in static memory, release build
NOTE: modm matrix operations perform significantly worse during debug build due to copy semantics used that are otherwise optimized during the release build.
NOTE: While CMSIS can handle matrix operations > 10x10, since modm does stack copies of matrices, the embedded system crashes when working with matrix operations that are too large because of stack smashing.
Matrix multiplication
- CMSIS: 64 us
- MODM: 69 us
Matrix addition
- CMSIS: 6
- MODM: 22
Matrix inverse
- CMSIS: 149
- MODM: doesn't have inverse support
Matrix transpose
- CMSIS: 6
- MODM: 20