X X^t can be faster
arxiv.org
X X^t can be faster
1–10 of 63 posts
Re: X X^t can be faster
#2Re: X X^t can be faster
#3Re: X X^t can be faster
#4I can't name any applications off the top of my head, other than iterative matrix multiplication for approximate eigenvector finding in square matrixes. But I don't know what's actually used for finding eigenvectors (or other decompositions for that matter).
Re: X X^t can be faster
#5So if an AI company spends $5B on a cluster, is this optimization worth $250m?
Re: X X^t can be faster
#6I can't name any applications off the top of my head, other than iterative matrix multiplication for approximate eigenvector finding in square matrixes. But I don't know what's actually used for finding eigenvectors (or other decompositions for that matter).
But in large scale applications you may not want to store XX’ but instead are interested in computing products of the form XX’ v on the fly.
Re: X X^t can be faster
#7I can't name any applications off the top of my head, other than iterative matrix multiplication for approximate eigenvector finding in square matrixes. But I don't know what's actually used for finding eigenvectors (or other decompositions for that matter).
Re: X X^t can be faster
#8Splitting into 4x4 blocks is typically very nice, though. Maybe it doesn’t matter so much to practical runtime.
Re: X X^t can be faster
#9Btw, it's worth noting that if you know that the result will be symmetric (such as is the case for X * X^T), you can make things faster. For example in cuBLAS, cublas*syrk (the variant optimized for when the result is symmetric) IME isn't faster than gemm, so what you can do instead is just do smaller multiplications that fill in one of the two triangles piece by piece, and then copy that triangle to the other one.
Re: X X^t can be faster
#10Is this like the Karatsuba algorithm, where it's theoretically faster but not actually faster when run on real hardware? Btw, it's worth noting that if you know that the result will be symmetric (such as is the case for X * X^T), you can make things faster. For example in cuBLAS, cublas*syrk (the variant optimized for when the result is symmetric) IME isn't faster than gemm, so what you can do instead is just do smal…