|[eigen] Eigen 3 is extremely slow|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] Eigen 3 is extremely slow
- From: Hari Sundar <hsundar@xxxxxxxxx>
- Date: Sun, 13 Mar 2011 19:48:11 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=UGk5/28tg1vasG8X3owrvAcpoJHuw5045Aq8VaMMFxs=; b=NLE+t6bVpbcwB1PfGhVmn13lgyxjKVKyGBGJmODcMSkZ89HFSGMOWrGKm+pxrwHdXY zxfmKzKFfVaVqb3zoXaIJJXG0nD31qIaEA0EzKt3xwwkxxIaocijOhdmcU2wDQ04gKGY 80YJzsOCfwq5t0dsm0ygpP4BXa4qU/pQxJ4ag=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=JOIcdlqaqURuMdn7ZHGYcU6xTJV/eCkYKLjbIGLOTpDr89/rfdJBzi1eruIGue3p82 2RMxxI2V4Q8y2pbfP2c6I4r4VJlOR5dIw/Lyc0NajxR22pzlgOf5iyeWihfGQmevnqGl yS7Yrx1MFVkMKv0it2XQB3jMXhAmg/3fesrHk=
I am new to Eigen and was using blitz++ for matrix and vector classes until now. Since it is no longer being developed and I liked what I read about eigen, I decided to switch. To start I took one of my standard pieces of code which does an optimization, the cost function mainly involving projection of points. An average optimization of the code using blitz++ takes around 100-200 ms. I converted the code to use Eigen (without making use of any special functions which Eigen offers). I am only using Matrix/Vector storage, matrix products and addition and data access. The Eigen version for the same dataset which takes 120 ms with blitz takes >900secs using Eigen. The results are the same, so my code is correct.
I initially thought there was some step in my code which was especially slow, but on profiling, it looks like it is uniformly slow. For example a simple 4x4 * 4*1 multiplication takes around 0.5msec.
Any suggestions on what might be going wrong, or should I stick with blitz++ ?