Claims
- 1] A computer system for multiplying a first matrix and a second matrix that reduces rounding error, comprising:
a processor; a memory; a storage device; and software instructions stored in the memory for enabling the computer system, under the control of the processor, to perform:
obtaining a first set of dimension values for the first matrix and a second set of dimension values for the second matrix, selecting one of a plurality of multiplication permutations if the first set of dimension values and the second set of dimension values are greater than a crossover value, multiplying the first matrix by the second matrix using the multiplication permutation and a Strassen-Winograd method, recursively sub-dividing the first matrix and the second matrix producing a set of sub-matrix products and a recursion tree, and propagating the set of sub-matrix products up the recursion tree to produce a product matrix.
- 2] The system of claim 1, further comprising instructions for:
multiplying the first matrix and the second matrix using a traditional matrix multiplication if the first set of dimension values and the second set of dimension values are less than or equal to the crossover value.
- 3] The system of claim 1, further comprising instructions for:
padding a dimension in the first set of dimensions or the second set of dimensions if the dimension is not even before sub-dividing the first matrix and the second matrix.
- 4] The system of claim 3, wherein the padding uses a plurality of zero digits.
- 5] The system of claim 1, wherein recursively sub-dividing the first matrix and the second matrix is by a factor of two.
- 6] The system of claim 1, wherein propagating up the recursion tree occurs after the first set of dimension values and the second set of dimension values are less than or equal to the crossover value.
- 7] The system of claim 1, wherein selecting from a plurality of multiplication permutations is random.
- 8] The system of claim 1, wherein selecting from a plurality of multiplication permutations uses a round-robin method.
- 9] The system of claim 1, wherein selecting from a plurality of multiplication permutations uses a pre-determined order heuristic based on data in the first matrix and data in the second matrix.
- 10] The system of claim 1, wherein the crossover value is determined by experimentation.
- 11] A computer-readable medium having recorded thereon instructions executable by a processor, the instructions for:
obtaining a first set of dimension values for the first matrix and a second set of dimension values for the second matrix; selecting one of a plurality of multiplication permutations if the first set of dimension values and the second set of dimension values are greater than a crossover value; multiplying the first matrix by the second matrix using the multiplication permutation and a Strassen-Winograd method; recursively sub-dividing the first matrix and the second matrix producing a set of sub-matrix products and a recursion tree; and propagating the set of sub-matrix products up the recursion tree to produce a product matrix.
- 12] An apparatus for multiplying a first matrix and a second matrix, comprising:
means for obtaining a first set of dimension values for the first matrix and a second set of dimension values for the second matrix; means for selecting one of a plurality of multiplication permutations if the first set of dimension values and the second set of dimension values are greater than a crossover value; means for multiplying the first matrix by the second matrix using the multiplication permutation and a Strassen-Winograd method; means for recursively sub-dividing the first matrix and the second matrix producing a set of sub-matrix products and a recursion tree; and means for propagating the set of sub-matrix products up the recursion tree to produce a product matrix.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of U.S. Provisional Application No. 60/395,020, entitled “Precision Improvement Method For the Strassen/Winograd Matrix Multiplication Method,” filed Jul. 11, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60395020 |
Jul 2002 |
US |