Home » U++ Library support » U++ Library : Other (not classified elsewhere) » Eigen updated
| Eigen updated [message #53851] |
Sat, 09 May 2020 11:03  |
 |
koldo
Messages: 3460 Registered: August 2008
|
Senior Veteran |
|
|
From 2018 Eigen algebra library had no new version, and since interesting improvements have been accumulated, we have updated to the last master commit.
This commit has not given any compilation or functioning problems. However, please check your applications just in case.
Best regards
Iñaki
|
|
|
|
| Re: Eigen updated [message #53854 is a reply to message #53851] |
Sat, 09 May 2020 15:17   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
koldo wrote on Sat, 09 May 2020 05:03From 2018 Eigen algebra library had no new version, and since interesting improvements have been accumulated, we have updated to the last master commit.
This commit has not given any compilation or functioning problems. However, please check your applications just in case.
And reference/Eigen_demo is broken with CLANG on Linux.
Regards,
Novo
|
|
|
|
| Re: Eigen updated [message #53859 is a reply to message #53854] |
Sat, 09 May 2020 19:26   |
 |
koldo
Messages: 3460 Registered: August 2008
|
Senior Veteran |
|
|
Quote:And reference/Eigen_demo is broken with CLANG on Linux. Bad luck. I do not have CLANG in Linux. I will try to install it. With GCC in Linux and with CLANG in Windows there is no problem. Thank you for reporting.
Best regards
Iñaki
[Updated on: Sat, 09 May 2020 19:26] Report message to a moderator
|
|
|
|
|
|
| Re: Eigen updated [message #53861 is a reply to message #53860] |
Sat, 09 May 2020 20:08   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
koldo wrote on Sat, 09 May 2020 13:35I have just compiled and run Eigen_demo in Ubuntu 18.04 with CLANG and GCC and works perfectly.
Ubuntu 20.04
./umk reference Eigen_demo CLANG -bus
Running full rebuild now ...
I was getting this:
BLITZ: eigen_demo.cpp non-linear.cpp fft.cpp
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/.cache/upp.out/Eigen_demo/CLANG.Debug.Debug_Full.Main.Shared/Eigen_demo$blitz.cpp:7:
/home/ssg/.local/soft/bb-worker/worker/upp/build/reference/Eigen_demo/non-linear.cpp:26:9: error: reference to 'Vector' is ambiguous
static Vector<double> _x, _y;
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/Core/Vcont.h:104:7: note: candidate found by name lookup is 'Upp::Vector'
class Vector : public MoveableAndDeepCopyOption< Vector<T> > {
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/Matrix.h:549:1: note: candidate found by name lookup is 'Eigen::Vector'
using Vector = Matrix<Type, Size, 1>;
^
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/.cache/upp.out/Eigen_demo/CLANG.Debug.Debug_Full.Main.Shared/Eigen_demo$blitz.cpp:7:
/home/ssg/.local/soft/bb-worker/worker/upp/build/reference/Eigen_demo/non-linear.cpp:46:1: error: reference to 'Vector' is ambiguous
Vector<double> Thurber_functor::_x, Thurber_functor::_y;
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/Core/Vcont.h:104:7: note: candidate found by name lookup is 'Upp::Vector'
class Vector : public MoveableAndDeepCopyOption< Vector<T> > {
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/Matrix.h:549:1: note: candidate found by name lookup is 'Eigen::Vector'
using Vector = Matrix<Type, Size, 1>;
^
2 errors generated.
Eigen_demo: 3 file(s) built in (0:12.87), 4291 msecs / file
There were errors. (0:13.04)
Regards,
Novo
|
|
|
|
| Re: Eigen updated [message #53862 is a reply to message #53861] |
Sat, 09 May 2020 20:15   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
After full rebuild:
reference/ScatterDraw_Demo
./umk reference ScatterDraw_Demo CLANG -bus
ScatterDraw_Demo.cpp
/home/ssg/.local/soft/bb-worker/worker/upp/build/reference/ScatterDraw_Demo/ScatterDraw_Demo.cpp:16:2: error: reference to 'Vector' is ambiguous
Vector<Pointf> s1;
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/Core/Vcont.h:104:7: note: candidate found by name lookup is 'Upp::Vector'
class Vector : public MoveableAndDeepCopyOption< Vector<T> > {
^
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/Matrix.h:549:1: note: candidate found by name lookup is 'Eigen::Vector'
using Vector = Matrix<Type, Size, 1>;
^
1 error generated.
ScatterDraw_Demo: 1 file(s) built in (0:01.08), 1088 msecs / file
ScatterDraw: 8 file(s) built in (0:08.75), 1094 msecs / file
There were errors. (0:09.92)
program finished with exit code 1
It is still broken ...
Regards,
Novo
|
|
|
|
| Re: Eigen updated [message #53867 is a reply to message #53862] |
Sat, 09 May 2020 22:59   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
I double-checked that with TheIDE against GIT rev. 1189b35
The problem is reproducible.
Regards,
Novo
|
|
|
|
|
|
|
|
|
|
|
|
| Re: Eigen updated [message #53930 is a reply to message #53924] |
Fri, 15 May 2020 18:25   |
Didier
Messages: 740 Registered: November 2008 Location: France
|
Contributor |
|
|
Hello Radek,
I had the same problem last week : it was my application that had problems.
The problem was the use of 'using namespace Upp' in some header files ... which leads to these ambiguity errors
Maybe it's the same for you
[Updated on: Fri, 15 May 2020 18:26] Report message to a moderator
|
|
|
|
|
|
|
|
| Re: Eigen updated [message #53933 is a reply to message #53932] |
Fri, 15 May 2020 22:28   |
Didier
Messages: 740 Registered: November 2008 Location: France
|
Contributor |
|
|
I think it still is the source of you're problem.
In my case I removed ALL the 'using namespace Upp' (in header and in .cpp files) and replaced them with 'namespace Upp { }'
[Updated on: Fri, 15 May 2020 22:29] Report message to a moderator
|
|
|
|
|
|
| Re: Eigen updated [message #53988 is a reply to message #53851] |
Wed, 20 May 2020 00:19   |
 |
Klugier
Messages: 1118 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello Koldo,
If I may suggest something, I would never use unstable code in the production environment. By introducing nightly build you risk all the problems resulting from this fact. One of that problem is that library can let you down at the most inopportune moment. I think Eigen is one of that libraries with the well establish release cycle and we should respect it. The same thing is true for Upp. You can hit the moment when some important thing doesn't work like we want to. The best example for that is initial GTK 3 port.
Currently, we have 3.3.7 and they are working hard to bring 3.4 or 3.3.8. In my opinion you should be patient and wait for that release. It will happen sooner or later. I highly recommend to revert current master version and back to stable 3.3.7.
Sincerely,
Klugier
U++ - one framework to rule them all.
[Updated on: Wed, 20 May 2020 02:01] Report message to a moderator
|
|
|
|
|
|
| Re: Eigen updated [message #54009 is a reply to message #54001] |
Wed, 20 May 2020 18:42   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
I'm sorry to say this, but Eigen_demo is broken again. This time after Mirek's commit.
template<> EIGEN_STRONG_INLINE Packet16b pset1<Packet16b>(const bool& from) { return _mm_set1_epi8(static_cast<char>(from)); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/arch/SSE/PacketMath.h:227:93: error: use of undeclared identifier '_mm_castsi128_ps'; did you mean 'Upp::_mm_castsi128_ps'?
template<> EIGEN_STRONG_INLINE Packet4f pset1frombits<Packet4f>(unsigned int from) { return _mm_castsi128_ps(pset1<Packet4i>(from)); }
^~~~~~~~~~~~~~~~
Upp::_mm_castsi128_ps
/usr/lib/llvm-10/lib/clang/10.0.0/include/emmintrin.h:4930:1: note: 'Upp::_mm_castsi128_ps' declared here
_mm_castsi128_ps(__m128i __a)
^
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen.cpp:2:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen.h:19:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Eigen:1:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Dense:1:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Core:193:
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/arch/SSE/PacketMath.h:227:110: error: cannot initialize a parameter of type 'Upp::__m128i' (vector of 2 'long long' values) with an rvalue of type 'Eigen::internal::Packet4i' (aka 'int')
template<> EIGEN_STRONG_INLINE Packet4f pset1frombits<Packet4f>(unsigned int from) { return _mm_castsi128_ps(pset1<Packet4i>(from)); }
^~~~~~~~~~~~~~~~~~~~~
/usr/lib/llvm-10/lib/clang/10.0.0/include/emmintrin.h:4930:26: note: passing argument to parameter '__a' here
_mm_castsi128_ps(__m128i __a)
^
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen.cpp:2:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen.h:19:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Eigen:1:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Dense:1:
In file included from /home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/Core:193:
/home/ssg/.local/soft/bb-worker/worker/upp/build/uppsrc/plugin/Eigen/Eigen/src/Core/arch/SSE/PacketMath.h:229:79: error: use of undeclared identifier '_mm_setzero_ps'; did you mean 'Upp::_mm_setzero_ps'?
template<> EIGEN_STRONG_INLINE Packet4f pzero(const Packet4f& /*a*/) { return _mm_setzero_ps(); }
^~~~~~~~~~~~~~
Upp::_mm_setzero_ps
/usr/lib/llvm-10/lib/clang/10.0.0/include/xmmintrin.h:1903:1: note: 'Upp::_mm_setzero_ps' declared here
_mm_setzero_ps(void)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
plugin/Eigen: 1 file(s) built in (0:00.88), 886 msecs / file
Eigen_demo: 3 file(s) built in (0:00.91), 305 msecs / file
Regards,
Novo
|
|
|
|
|
|
|
|
|
|
| Re: Eigen updated [message #54025 is a reply to message #54020] |
Fri, 22 May 2020 09:25   |
 |
koldo
Messages: 3460 Registered: August 2008
|
Senior Veteran |
|
|
Dear Sender
Some changes have been included in last version, but not all.
I am overwhelmed, vectorization and intrinsics are out of my knowledge.
It is like if including #include <smmintrin.h> in an include (Core/Blit.h), hides __m128* unions. However I do not know why. Maybe caused by name mangling?
Replacing #ifdef CPU_X86 with #if defined(CPU_X86) && defined(__SSE2__) just avoids the problem by avoiding #include <smmintrin.h>.
Maybe these new options in Core/Blit.h require adding new compiler flags?
Best regards
Iñaki
[Updated on: Fri, 22 May 2020 09:26] Report message to a moderator
|
|
|
|
|
|
|
|
| Re: Eigen updated [message #54037 is a reply to message #54030] |
Fri, 22 May 2020 11:42   |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
koldo wrote on Fri, 22 May 2020 08:23Quote:Possible to fix Eigen build issue, if place usage of intrinsic(s) (e.g. in uppsrc/Core) inside of C++ (*.cpp) instead of header (*.h) files. Maybe there are other methods. Yes, that would solve it all.
The problem of this is that inline functions have to be in .h, and Core/Blit.h includes inline void memsetd().
Looks like, the Eigen build issue with <smmintrin.h> include was because of its include inside of (Upp) namespace.
I attached newer patch in Redmine #2035. But if there is a need to support CPUs without SSE2 instructions, there is a need to provide other implementations, based on __SSE2__ (or other) check, I guess.
[Updated on: Fri, 22 May 2020 11:54] Report message to a moderator
|
|
|
|
|
|
| Re: Eigen updated [message #54071 is a reply to message #54041] |
Sat, 30 May 2020 00:10   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
This is me again with bad news.
I tried to compile Eigen_demo for Windows using CLANG (actually, I compiled on Linux using wine), and CLANG never fished compilation. I guess this is a bug with CLANG shipped with Upp.
Or it is a bug with Eigen_demo itself ...
Command used for compilation:
wine umk reference Eigen_demo CLANG -bus
Regards,
Novo
|
|
|
|
| Re: Eigen updated [message #54076 is a reply to message #54071] |
Sat, 30 May 2020 11:32   |
 |
koldo
Messages: 3460 Registered: August 2008
|
Senior Veteran |
|
|
Dear Novo
I cannot reproduce your problem in my W10, using CLANG from U++ and MSVC, both 32 and 64 bits.
Anyway, now it is just updated the very last version, with tiny changes. Please check it just in case, and send the error messages.
Thank you for your support.
Best regards
Iñaki
[Updated on: Sat, 30 May 2020 11:33] Report message to a moderator
|
|
|
|
| Re: Eigen updated [message #54089 is a reply to message #54076] |
Sun, 31 May 2020 07:05   |
Novo
Messages: 1432 Registered: December 2006
|
Ultimate Contributor |
|
|
I was able to compile it in Release configuration.
$ wine umk reference Eigen_demo CLANGx64 -brus
----- Core ( CLANG SHARED BLITZ WIN32 ) (1 / 4)
----- plugin/Eigen ( CLANG SHARED BLITZ WIN32 ) (2 / 4)
----- plugin/z ( CLANG SHARED BLITZ WIN32 ) (3 / 4)
----- Eigen_demo ( MAIN CLANG SHARED BLITZ WIN32 ) (4 / 4)
BLITZ: eigen_demo.cpp non-linear.cpp fft.cpp
Eigen_demo: 3 file(s) built in (1:37.71), 32570 msecs / file
Linking...
Z:\home\ssg\.local\soft\bb-worker\worker\wine-upp\build\.cache\upp.out\CLANGx64.Blitz.Shared\Eigen_demo.exe (2488320 B) linked in (0:00.69)
It takes a minute and a half.
I never saw it finishing compilation in Debug.
TheIde and Clang are from March 3-rd 2020. I guess this is a release.
Tested on Linux with wine.
Regards,
Novo
[Updated on: Sun, 31 May 2020 07:05] Report message to a moderator
|
|
|
|
| Re: Eigen updated [message #54093 is a reply to message #54089] |
Sun, 31 May 2020 20:44  |
 |
koldo
Messages: 3460 Registered: August 2008
|
Senior Veteran |
|
|
Dear Novo
I have never used wine with U++. However, I will try to run it all to try to reproduce your problem.
On the other side, I can promise that it works everyday in tenths of computers with W10.
Best regards
Iñaki
|
|
|
|
Goto Forum:
Current Time: Sun Jun 14 09:11:38 GMT+2 2026
Total time taken to generate the page: 0.00866 seconds
|