Uh oh!
There was an error while loading. Please reload this page.
ARROW-5196 [C++] Uniform usage of Google cpu_features library accross the codebase - #4201
ARROW-5196 [C++] Uniform usage of Google cpu_features library accross the codebase#4201aregm wants to merge 8 commits into
Conversation
wesm
commented
Apr 25, 2019
Hm, I erroneously got the idea that the cpu_features library was more minimalistic than it actually is, I apologize for proposing to vendor it. @pitrou do you think we should add this to conda-forge and the thirdparty toolchain? |
pitrou
commented
Apr 25, 2019
Is there a more lightweight alternative to this library? I'm not even sure we're using any of this currently, do we? |
wesm
commented
Apr 25, 2019
At one point we were querying supported SIMD instructions; I think it's important to determine at least
|
pitrou
commented
Apr 25, 2019
Ok, it seems that We may want to make a conda-forge package ultimately. Though first we can simply add it to our thirdparty libs and build it on the fly (it's actually very fast to build by default). |
pitrou
commented
Apr 25, 2019
Side note: |
aregm
commented
Apr 25, 2019
@pitrou I'll create conda package and add to conda-forge, and redo the PR accordingly. BTW AppVeyor is failing with an error: "CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message): |
pitrou
commented
Apr 25, 2019
@aregm You shouldn't lose your breath over AppVeyor for now ;-) The priority is to revamp the PR using the discussed approach (i.e. build cpu_features using our usual "thirdparty toolchain" build chain, rather than vendor it). |
aregm
commented
Apr 25, 2019
@pitrou, I am just curious what is the cause, but do not plan to spend time on it :) |
pitrou
commented
Apr 25, 2019
We still need to allow building it from |
aregm
commented
Apr 30, 2019
@pitrou@wesm I have added cpu_features to the conda-forge, but as it was suggested to add to thirdparty - do you have any fast "best-known method" or doc how to add external dependency to the Thirdparty with all the targets and defines correctly propagated through cmakefiles - I tried to replicate double-conversion way, but still includes and libs do not found, and I do not want to spend time on deciphering all the nested cmake calls in --trace if there is a faster way and I do not have to. Thanks! |
pitrou
commented
Apr 30, 2019
Unfortunately each external dependency requires its own treatment (the sad fact is that there's no standard build system or procedure in C++), so there's no "easy" way to do it. Usually I would first try to build the dependency by hand, observe the exact options required and where the various build products are installed (include files, library files), and start from there to try replicating it from CMake. Of course, you can still steal some inspiration for the CMake boilerplate from the existing thirdparty declarations. More generally you need to:
|
emkornfield
commented
Jun 12, 2019
@aregm what is the status of this PR? |
aregm
commented
Jun 14, 2019
@emkornfield The status of feature is pending - I need to add cache info parsing to cpu_features as it occurs they are not parsed there and then pull it in. If you are ok, to go without cache info for a while, until the next release, then I can do it as is. |
ed180da to
85fe336Comparebkietz
commented
Aug 22, 2019
@aregm looks like you have merge conflicts, could you please rebase this on master? |
emkornfield
commented
Oct 16, 2019
@aregm I'm going to close this PR for now, please reopen if you have time to rebase, and address any additional feedback. If I understand correctly I think this got blocked on appropriate integration with the build system? |
aregm
commented
Oct 16, 2019
@emkornfield Integration is done in PR, but is old and needs to be rebased on top of the latest master. Need to do that as soon as I get some free cycles. If you need this, I'll do this week. |
emkornfield
commented
Oct 16, 2019
@aregm, I don't think its urgent, I'm just trying to clear out PRs that appear to have stagnated. |
Resolves the ARROW-5196, Draft pull request to check on various platforms.