-
-
Notifications
You must be signed in to change notification settings - Fork 64
Include CUDA enabled pyarrow #146
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
Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
…da-forge-pinning 2020.05.20.09.40.28
|
Thanks for picking this up @pearu! 😄 cc @h-vetinari (who also seemed interested in this) |
|
Thanks for the ping @jakirkham; looks good @pearu! Also closes #93 (see discussion there). Finally, merging this means the pyarrow-feedstock must be disabled/archived somehow - don't know how that works. |
|
pyarrow fails to build on aarch64: I have disabled aarch64 for pyarrow but this does not feel right. |
…da-forge-pinning 2020.05.20.09.40.28
…da-forge-pinning 2020.05.20.21.21.18
- - name: pyarrow
+ - name: arrow-pyI don't think that's the right approach. We want this feedstock to serve both packages, and have the packages not interfere with each other (which is automatic if they have the same name, otherwise we need another mutex etc.). @conda-forge/core How can we absorb one feedstock into another correctly? |
|
I was about to propose https://github.com/conda-forge/parquet-cpp-feedstock approach where the future pyarrow packages would just point to arrow-py. |
|
We should be building |
xhochy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, some minor suggestions.
We shouldn't rename the package though!
…f arrow-cpp in pyarrow. Restore pyarrow package name.
|
@xhochy I have addressed all your comments. Surprisingly, there are no validation failures now. |
|
Requires conda-forge/feedstock-outputs#3 There should have been validation failures 🤔 I'll test this locally and merge then. |
|
The message persists. I guess your superpowers will be needed after all, @xhochy . |
|
@conda-forge-admin please restart ci |
|
Validate seems to be ok with the feedstock: |
xhochy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll merge tomorrow morning. If something goes wrong, I then have the time to clean up.
|
@pearu, can you put |
Done in the description of the issue. |
|
Regarding the naming conventions, I think it might be worth renaming @isuruf made me aware of this in the context of faiss. Other examples I can think of off the top of my head are blas & lapack, openblas, opencv, postgresql, gdal, plus a whole bunch more (non-exhaustive). Of course, this recipe has some counter examples to this: aws-sdk-cpp, boost-cpp, grpc-cpp, thrift-cpp, but I think they are far in the minority and the same argument could be made for renaming those (maybe worth noting that at least the last two seem to have been started by the arrow team). Happy to open an issue for this if this needs more discussion. |
|
|
jakirkham
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This generally seems good to me. Thanks @pearu! 😄
Had a couple minor comments
| $PYTHON setup.py \ | ||
| build_ext $BUILD_EXT_FLAGS \ | ||
| install --single-version-externally-managed \ | ||
| --record=record.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we able to use pip here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should check that but in a separate PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah that makes sense. Was having a little trouble seeing how this was built before. If this is no different from what we were already doing, agree we don't need to change it here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using pip does not work out of the box:
$PYTHON -m pip install . --no-deps -vv build_ext $BUILD_EXT_FLAGS install
fails with
pip._internal.exceptions.DistributionNotFound: No matching distribution found for build_ext
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need something like,
$PYTHON -m pip install . --no-deps -vv --global-option=build_ext --global-option=--with-cuda
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. The following diff works locally:
diff --git a/recipe/build-pyarrow.sh b/recipe/build-pyarrow.sh
index 99396d8..4b01871 100644
--- a/recipe/build-pyarrow.sh
+++ b/recipe/build-pyarrow.sh
@@ -22,7 +22,7 @@ BUILD_EXT_FLAGS=""
if [[ ! -z "${cuda_compiler_version+x}" && "${cuda_compiler_version}" != "None" ]]
then
export PYARROW_WITH_CUDA=1
- BUILD_EXT_FLAGS="${BUILD_EXT_FLAGS} --with-cuda"
+ BUILD_EXT_FLAGS="${BUILD_EXT_FLAGS} --global-option=build_ext --global-option=--with-cuda"
else
export PYARROW_WITH_CUDA=0
fi
@@ -35,7 +35,4 @@ fi
cd python
-$PYTHON setup.py \
- build_ext $BUILD_EXT_FLAGS \
- install --single-version-externally-managed \
- --record=record.txt
+$PYTHON -m pip install . --no-deps -vv $BUILD_EXT_FLAGS
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 8a0edf7..20523e2 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -181,6 +181,7 @@ outputs:
- boost-cpp
- cython
- numpy 1.16.*
+ - pip
- python
- setuptools
- setuptools_scm
Just FYI.
| %PYTHON% setup.py ^ | ||
| build_ext ^ | ||
| install --single-version-externally-managed ^ | ||
| --record=record.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question about pip here
Please do so at https://github.com/conda-forge/conda-forge.github.io |
|
Thanks @pearu , let's 🙏 this works! |
Followed-up in conda-forge/conda-forge.github.io#1073. |
Fixes conda-forge/pyarrow-feedstock#107
Fixes #93
Checklist
0(if the version changed)conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)