Browse Source
I empirically noticed that matrix multiplication was extremely slow for the matrices I was using i.e. multiplications were taking minutes rather than seconds. After tracking down the root of the problem, I found it was in the CacheObliviousMatrixMultiply() implementation, specifically, where the sum of the column/row dimensions were compared with the Control.ParallelizeOrder variable. For significantly skewed matrix multiplication (wide * tall), the parallelised redistribution greatly reduces performance. By removing the 'k' parameter from the comparison (where k is the number of columns in the left matrix and the number of rows in the right) the performance is improved drastically. For perfectly square matrices, this change reduces performance slightly.pull/112/head
committed by
Christoph Ruegg
4 changed files with 4 additions and 4 deletions
Loading…
Reference in new issue