The Opie Project aims to develop a compiler to transform C codes written for row-major matrix representation into equivalent codes for Morton-order matrix representation, and to apply its techniques to other languages. Accepting a possible reduction in performance we seek to compile a library of usable code to support future development of new algorithms better suited to Morton-ordered matrices. This paper reports the formalism behind the Opie compiler for C, its status: now compiling several standard Level2 and Level-3 linear algebra operations, and a demonstration of a breakthrough reflected in a huge reduction of L1, L2, TLB misses. Overall perforamnce improves on the Intel Xeon architecture. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—compilers, preprocessors.; E.1 [Data Structures]: Arrays.; E.2 [Data Storage Representations]: contiguous representations.; D.3.2 [Programming Languages]: Language Classifications—concurrent, distributed and par...
Steven T. Gabriel, David S. Wise