The argument "runs as fast as on a decent GPU" is definitely not true (20ms
vs 2ms is still a big difference...) so modifications are highly
recommended...

With the nice performance benchmarks @kloudkl provided, it seems that a
more reasonable approach is to get rid of eigen - since the only purpose is
to fit in the MKL VSL library, which is not very hard to implement anyway
(a vector template function would solve it)? I know it is a little
back-and-forth so your inputs are highly appreciated.

Reasons to get rid of eigen are: (1) My original impression is that eigen
provides a faster blas implementation than other open-source packages but
it apparently does not seem the case; (2) we are using eigen very lightly,
only using it to do vectorized addition/subtraction/multiplication, so a
heavy dependency probably does more harm.

Yangqing


On Mon, Feb 10, 2014 at 1:58 PM, Evan Shelhamer <notifications@github.com>wrote:

> In installation.md:
>
> > @@ -45,6 +46,12 @@ You will also need other packages, most of which can be installed via apt-get us
> >
> >      sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev
> >
> > +With 8 or more CPU threads, Caffe runs as fast as on a decent GPU. If you would like to enjoy the speed-up brought by OpenBLAS:
>
> Please add this performance note to the end of the "Prerequisites" section
> because it is optional. I fear that "Caffe runs as fast as on a decent GPU"
> is imprecise and doesn't hold for contemporary scale models, so perhaps
> replace this line with "To enjoy a parallelization speed-up in CPU mode,
> install the multi-threaded OpenBLAS"
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/BVLC/caffe/pull/81/files#r9603977>
> .
>