After further study, I am sure that MATLAB does not use BLAS for all vector operations (it uses it for some operations - see the Change note below). You can check it under Linux as follows. Run MATLAB, then
>> feature getpid
ans =
13608
From checking the linux terminal, which dynamic libraries are loaded by MATLAB, or, to be precise, check if MKL is loaded (I'm testing on an Intel processor):
$ cat /proc/13608/numa_maps | grep mkl
, mkl . :
>> a=zeros(1, 1e6, 'double');
>> a=2*a; % dscal
:
$ cat /proc/13608/numa_maps | grep mkl
, , MKL. , BLAS1. BLAS3:
>> A=zeros(100);
>> B=A*A';
mkl
$ cat /proc/13608/numa_maps | grep mkl
7f4b687ec000 prefer:0 file=/home/matlab/R2013a/bin/glnxa64/mklcompat.so
7f4b6afb4000 prefer:0 file=/home/matlab/R2013a/bin/glnxa64/mkl.so
[...]
, MATLAB BLAS- BLAS3, , BLAS1. , MATLAB . , . , MATLAB (libmwmcr).
Edit
, BLAS1 :
>> a=zeros(1, 1e6, 'double');
>> b=zeros(1, 1e6, 'double');
>> c=a*b';