|
From: | Rik |
Subject: | Re: octave-dev slow down |
Date: | Tue, 23 May 2017 08:43:47 -0700 |
On 05/23/2017 01:37 AM,
address@hidden wrote:
I have discussed this already, but this points out the need to have a set of performance benchmarks that could be run as part of regression testing. The current BIST tests check that we haven't changed functionality when we add new code, but they don't disclose whether performance has been impaired. Perhaps Dmitri's tests could begin to form the core of a performance test. As for the cause of this particular slowdown, I'm guessing that it might be caused by not recognizing that a'*a can be passed directly to BLAS for evaluation. A long time ago, Octave parsed this _expression_ as (a') * (a). It evaluated the transpose itself and then passed the temporary transposed matrix and the original matrix to BLAS for the multiplication operation. However, the BLAS libraries can directly calculate this multiplication product by passing in a transpose flag for the first matrix. There was a significant speed-up when Octave no longer calculated the transpose itself. --Rik |
[Prev in Thread] | Current Thread | [Next in Thread] |