Closed will-gerard closed 11 months ago
Hi @will-gerard,
I apologize for the late reply. We're working hard to improve Crocoddyl and our response time is limited.
I only really want the c++ in vectorized mode, so do I still need to build dependencies like eigenpy from source, and enable vectorization, in order to use vectorization in crocoddyl?
Yes, you need to do it for each project that generates a library. This won't apply for header-only libraries such as Pinocchio.
If I do need to build all the dependencies from source with vectorization enabled, do you have a list of which packages these are anywhere? Hpp-fcl is an optional dependency of pinocchio I see in the docs, so I'm just not sure where to look to figure out which packages I need to be rebuilding.
You can find the links to Crocoddyl dependencies in the Readme file. For Pinocchio dependencies, please ask this question to Pinocchio developers.
For dependent packages, which don't seem to have ENABLE_VECTORIZATION as an option in their CMakeLists.txt files, is
-DCMAKE_CXX_FLAGS="-march=native"
as an option to cmake the correct way to enable it?
Yes, you're correct. I have included it in Crocoddyl as makes things easier for our users, but including this cmake option goes beyond my scope. You could discuss this possibility with each project leader.
Please let me know if we can close this issue. Thanks!
@cmastalli I'm sorry, I thought I had responded. Thank you very much for you response and your work on this package, all set on this issue so thanks for closing.
I am trying to enable vectorization to maximize performance, but haven't been successful yet, and I'm wondering if anyone can give me guidance. I see the ENABLE_VECTORIZATION option in the CMakeLists.txt file, so that is what I am using for crocoddyl, and when I configure pinocchio I provide
-DCMAKE_CXX_FLAGS="-march=native"
, since the enable vectorization option isn't recognized. Attempting to use the resulting crocoddyl build segfaults, so I built in debug mode to use gdb, and I see the following trace:I guess I am not enabling vectorization correctly, but I'm not sure how to proceed. The only dependency I have been building from source is pinocchio, the rest I am installing via conda. I see in the comment on 1027 that "Testing vectorization will require to compile all the dependencies (pinocchio, hpp-fcl, eigenpy, etc) with the same flags, if we want to run Python-based tests and examples," so based on this I believe my issue is in the fact that I'm using versions of dependent packages which don't have vectorization enabled. I have a couple of questions though:
I only really want the c++ in vectorized mode, so do I still need to build dependencies like eigenpy from source, and enable vectorization, in order to use vectorization in crocoddyl?
If I do need to build all the dependencies from source with vectorization enabled, do you have a list of which packages these are anywhere? Hpp-fcl is an optional dependency of pinocchio I see in the docs, so I'm just not sure where to look to figure out which packages I need to be rebuilding.
For dependent packages, which don't seem to have ENABLE_VECTORIZATION as an option in their CMakeLists.txt files, is
-DCMAKE_CXX_FLAGS="-march=native"
as an option to cmake the correct way to enable it?Thank you very much in advance!