In the UVic course, SENG 440: Embedded Systems, we developed a QR Decomposition program using Modified Gram-Schmidt Orthogonalization (MGSO) for the ARM920T processor.
QR decomposition is where a matrix,
e.g.
After implementing the program using MGSO, we performed the following optimizations in the order below to improve the efficiency of the program:
- Loop unrolling
- For loop optimization
- Cache-oblivious matrix transpose
- Math macros
- Operator strength reduction
- Branch reduction.
asm Assembly files corresponding to the various versions of the QR program.
data Sample input data for the QR program.
final_report Final report and presentation slides for the QR program.
progress_report Progress report from midway through course.
qr_versions Versions of the QR program as optimizations are introduced.
src Final version of the QR program.
stats Statistics for the various versions of the QR program when run on the ARM920T.