Inventors:
Jizhu Lu - Bellevue WA, US
Laurent Visconti - Bainbridge Island WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 7/32
Abstract:
Zero elements are added to respective lines (e.g., rows/columns) of a sparse matrix. The added zero elements increase the number of elements in the respective lines to be a multiple of a predetermined even number “n” (e.g., 2, 4, 8, etc.), based upon an n-fold unrolling loop, where n=2, 4, 8, etc. By forming a sparse matrix having lines (e.g., rows or columns) that are multiples of the predetermined number “n”, the n-fold unrolling loop thereby acts upon a predetermined number of elements in respective iterations, avoiding unnecessarily costly operations (e.g., additional loop unrolling code) on remainder non-zero elements (e.g. remainder row/column elements not within an n-fold unrolling loop) left in a row or column after unrolling. This improves the efficiency of sparse matrix linear algebra solvers and key sparse linear algebra kernels (e.g., SPMV) thereby improving the overall performance of a computer (e.g., running an application).