[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
BLAS Level 1 operations in Octave
From: |
Marco Caliari |
Subject: |
BLAS Level 1 operations in Octave |
Date: |
Thu, 25 Aug 2016 15:27:58 +0200 (CEST) |
User-agent: |
Alpine 2.10 (DEB 1266 2009-07-14) |
Dear maintainers,
my octave-4.1.0+ is linked to multithreaded ATLAS libraries. They work as
expected: in particular, a matrix-matrix product involves all my four
cores (top shows %CPU at about 390). But, if I run the following script
a = rand(200000,1);
b = rand(200000,1);
tic
for i = 1:100000
c = a+b; % version 1
% b = a+b; % version 2
% b += a; % version 3
end
toc
my %CPU is stuck to 100, (while Matlab, linked to Intel MKL, uses again
all the four cores). Versions 2 and 3 are a *axpy (BLAS Level 1)
operation, while version 1 is a *copy followed by a *axpy operation.
Anyway, they should be multithread in ATLAS, so I presume Octave does not
use them. In fact, a
grep -r --include "*" AXPY
in the sources shows something only is some cruft fortran files. At the
moment, I cannot check the behavior of OpenBLAS libraries.
Since "it might be a worthy goal, after the 4.2 release, to look at
improving Octave's performance", is this a possible topic to be
investigated?
Regards,
Marco
- BLAS Level 1 operations in Octave,
Marco Caliari <=