Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option for SIMD compilation #29

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

costashatz
Copy link

In some of my projects I am using Eigen compiled with SIMD instructions (-march=native) and as such I need your library compiled with the same instructions. This PR adds a CMake option to do so: disabled by default to not break anything.

gergondet added a commit that referenced this pull request Apr 4, 2019
679949e Update Eigen 3.3 to 3.3.7 and add ps1 script
e3853d4 Setup catkin workspace in common script
083fa2c Do not build dependencies in source
dc8b946 Merge pull request #35 from bchretien/fix/osx-build
432f6b1 Fix OSX build (deprecated science repo)
bad6dbd Allow to specify pybindgen install prefix
3f214dd Update pybindgen archive url
f13ddca Use a common script for Eigen 3.2 and 3.3
0d26976 Add a script for Eigen 3.3
027bca4 Update Eigen 3.2 version to 3.2.10
629f539 ipopt: update to 3.12.6
87f7ee7 eigen: update to 3.2.9
a0c7e47 common.sh: fix OS X environment
811fbd6 Merge pull request #31 from francois-keith/dev4
4c8a74c Hard code the path to git.exe
8c1c5f5 Build in debug.
89d0b39 Add some intermediary checks.
c2f4554 [AppVeyor] Add a method to run the unit tests.
e59a441 Correct choco install.
af4c533 Merge pull request #30 from jcarpent/master
00d90b0 Fix bug in common.sh
9da636c Merge pull request #29 from jcarpent/master
dd15db5 Use CI_BRANCH instead of TRAVIS_BRANCH
448cc3f Set DO_*_ON_BRANCH to the current branch if they are not yet defined
c5ed776 [Cppcheck] Do ccpcheck only on specified branches
3c52bd1 [Coverage] Do coverage only on specified branches

git-subtree-dir: .travis
git-subtree-split: 679949e28a91c334edf3588753cf294aec2fc4c7
@gergondet
Copy link
Member

Hi @costashatz

I'm very sorry it took me a long time to answer/review this as well as jrl-umi3218/RBDyn#56 and jrl-umi3218/mc_rbdyn_urdf#12

The reason I didn't merge those PR (and unfortunately let them get stale instead of answering more promptly) is I don't think this is a good way to enable simd flags in a project for two reasons:

  1. You need to enable the option on all related projects otherwise you will run into cryptic bugs down the line if the default does not align (e.g Using iiwa_tools requires to compile with SIMD epfl-lasa/iiwa_ros#39)
  2. For the same reasons, the flags needs to be sync across projects that uses such an option

I think CMake toolchain files are better suited to forward such flags to all projects and they don't require to provide a specific option in every project.

I have been reminded of those PR because it is causing issues for people who are trying to use mc_rtc and iiwa_ros as the former does not compile with SVA/RBDyn/mc_rbdyn_urdf as they are on your fork and the later does not compile with the latest SVA/RBDyn/mc_rbdyn_urdf

Note: I would be happy to help with fixing iiwa_ros with our latest revision but I cannot access kuka_fri so I am not sure how much work that involves (I am guessing a big chunk of it is to replace pkg-config usage with CMake find_package and correct target_link_libraries)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants