Closed duburcqa closed 2 months ago
It should be fixed in Pinocchio 3, coming soon.
Any chance this could be backported ? I could take care of it eventually if I could understand the issue.
What is your version of Boost?
boost-1.76.0
Hmm, I'm not sure whether that version works. From what I recall this is Boost.Python + Eigen issue that got patched by Justin a year or so ago in eigenpy.
Last I checked 1.74 and 1.75 still crap out with AVX2 but 1.78 and above work for all versions of eigenpy post-fix.
OK I can confirm this. The precompiled version of pinocchio available on robotpkg it is using some boost version older than 1.78.0 as far as I know. Would it be possible to update it in order to maintain consistency with what is considered supported now ?
I don't know about robotpkg, sorry :/
I can confirm that using boost 1.78 is fixing the issue. Thank you for the hint !
Currently I am bit stuck on 1.76 because I want to maintain compatibility with robotpkg though... but at least it is good to know that the issue will vanish at some point.
Yes, this has also been a huge problem for us when using Ros noetic unfortunately...
For the record, I can confirm the fix was introduced with boost 1.78.0. https://github.com/boostorg/python/pull/360 is the corresponding PR. Ubuntu 24.04 ships with boost 1.83 but we are out of luck for older releases, even 23.10 surprisingly is shipping with a version released in 2020.
I guess we can close this issue since nothing can be done about it except waiting for boost<1.78 to disappear. Thank you again !
@duburcqa : robotpkg just use the version from your OS, so upgrading your OS will upgrade boost
Yes, I figured this out when trying to understand from where it was getting the boost version. That is why I mentioned that it will be fine for Ubuntu 24.04, but we are out of luck for older Ubuntu releases...
Bug description
Python is crashing when instantiating a Data from Python when pinocchio has been compiled in Debug with AVX2 instruction set enabled.
It is only occurring at Python-side. I have no issue when running a C++ executable that has been compiled with the exact same flags. It also works fine when calling
pin.Model().createData()
in place ofpin.Data()
. So it means to be related to someeigenpy
memory alignment issue. It is not systematically crashing the first time I try to create Data, sometimes it takes 2 or 3 trials.I already observed this issue I will ago, and I just decided to ignore it at that time because it was not blocking me. It is still not blocking me but it would be nice if it could be fixed, mainly because I don't understandard what is happening, and I don't like it.
Reproduction steps
First, compile eigenpy and pinocchio with flags
BUILD_TYPE="Debug"
andCMAKE_CXX_FLAGS="-march=x86-64-v3 -mtune=generic"
.Code
System