Configure Theano

I have some computational speed related issues with my pymc3 model running on the numpy c-based api. I have been trying to configure the theano.tensor.blas in order to use the theano backend, but with little effect on the computational speed. Is there anyone here who may be able to help me with this?

Thank you!

Hi Bjorn,
IIUC, I think I’d try switching from openblas to MKL. openblas is what Numpy uses by default for algebra computations and has a long history of issues involving multiprocessing.
You can do conda list | grep blas to see if you’re using openblas in your virtual dev. The third column should tell which one it is:

libblas                   3.8.0               16_openblas    conda-forge
libcblas                  3.8.0               16_openblas    conda-forge

If your env uses openblas, you can try MKL or blis: conda install "libblas=*=*mkl" -c conda-forge . You’ll probably need to install mkl and mkl-service too. Doc about these options is here.
After replacing blas with MKL instead of openblas, you should see:

libblas                   3.8.0                    14_mkl    conda-forge
libcblas                  3.8.0                    14_mkl    conda-forge
mkl                       2019.5                      281    conda-forge
mkl-service               2.3.0            py37h0b31af3_0    conda-forge

Maybe it’s not the whole issue, but this should help with computational speed :wink:

1 Like