Google Groups

Re: [theano-users] python mlp.py runtime on ubuntu?


Frédéric Bastien Aug 14, 2012 11:23 AM
Posted in group: theano-users
Hi,

Theano rely on the blas library to parallelize the gemm operation. It
is this operation that is the bottleneck of the mlp. So it is
important to install with the best possible BLAS lib if you want the
best speed.

I would suggest that you reinstall libopenblas-dev first. Then
reinstall python/numpy/scipy. You can install the OS package. We have
an installation page for Ubuntu here:

http://www.deeplearning.net/software/theano/install_ubuntu.html

I would also suggest deleting the theano cache. To do that, execute
"theano-cache clear".

I would not expect to have 32x speed up on a 32 cores computer as I
expect that the blas call is on not big enough matrix size in that
example to have 32x speed up. Also, we didn't parallelised yet
elemwise. So I would not expect more then 8x-10x speed up in the best
case for parallilization. We plan to parallelise the elemwise.

If that don't fix you problem, tell me.

Fred


On Tue, Aug 14, 2012 at 2:07 PM, Max <m...@recoset.com> wrote:
> I'm running mlp.py on a 32-core server, in Ubuntu 12.04 in a KVM.
>
> It seems to be running pretty slowly, and only using 160% CPU according to htop. The epochs are about a minute each (the first 20 took 22m43s). Is this normal? Should it not be using more cores?
>
> I don't know if this is relevant, but after installing libopenblas-dev I was getting the following error:
> GotoBLAS Architecture Initialization failed. No initialization function found
> any time I tried to import scipy or numpy or theano. Now I'm using libatlas-dev instead.
>
> Also, I'm getting this:
> /usr/lib/python2.7/dist-packages/scipy/interpolate/ndgriddata.py:9: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility
>   from interpnd import LinearNDInterpolator, NDInterpolatorBase, \
> /usr/lib/python2.7/dist-packages/scipy/interpolate/ndgriddata.py:9: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility
>   from interpnd import LinearNDInterpolator, NDInterpolatorBase, \
> /usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:7: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility
>   from ckdtree import *
> /usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:7: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility
>   from ckdtree import *
> /usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:8: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility
>   from qhull import *
> /usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:8: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility
>   from qhull import *
>
> When I import theano (but not numpy or scipy), although it seems to run anyway.