-
Notifications
You must be signed in to change notification settings - Fork 9
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
BLD: providing binary wheels on PyPI #41
Comments
Create conda-forge packaging. |
* modernize our `pip install` by using the PEP518 `pyproject.toml` configuration, which basically switches us to the modern process where `pip` will first build a wheel in an isolated env and then install that binary wheel into the current user env * note that unfortunately this doesn't really make dealing with the friction of needing the complex `pykokkos-base` package any easier, as I describe in kokkos/pykokkos-base#41 * we don't actually need `pykokkos-base` to *build* `pykokkos`, so much like a user needs to provide a suitable version of NumPy when working with SciPy, we need the user to provide a suitable version of `pykokkos-base` *separately* from the build/install of `pykokkos`; I suspect the best way to make this easier would be to provide `pykokkos-base` wheels on PyPI, which I don't see at the moment (likely a substantial lift, but could be worth it)
Conda and PyPI are two completely different ecosystems, and mixing them is not really recommended. |
Hi Jonathan, Hi Tyler
We have a conda package ready for Pykokkos-base
I believe we also have a pypi version of pykokkos-base available (albeit
with some issues with flags). I thnk the problem here is to create a
one-line pip install for pykokkos which will install pykokkos-base as a
dependency, which I was unable to do. It was possible to do this with
pre-compiled binaries but not otherwise.
…On Thu, Jun 30, 2022 at 11:12 AM Tyler Reddy ***@***.***> wrote:
Conda and PyPI are two completely different ecosystems, and mixing them is
not really recommended.
—
Reply to this email directly, view it on GitHub
<#41 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOPG2XXWEXUGZJ5RL3PUD53VRXPR7ANCNFSM52KGMJJQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Thanks and regards,
Neil Mehta
Performance Engineer, NERSC
Lawrence Berkeley National Laboratory
|
Yes but when it comes to mixing C++ and Python, pip is not designed to handle compilation and build variants well at all. Pip is a python-specific package manager. Conda is a generic package manager. This makes a big difference when it comes to handling compilation and build variants. Thus, I've found that using pip for source installs and conda for pre-built is the best thing to do |
I am pretty sure that you could add |
SciPy and NumPy both mix C++ and Python (and Fortran for SciPy) and provide solutions in both ecosystems. I think
I wouldn't recommend this--you're polluting the user environment with packages they didn't ask for, which is part of what the various PEPs/standards are designed to protect against. |
Yes, but they don't have to deal with multiple backends causing build variants.
Yes but those are wheels without any acceleration. If anything, I think it would be better to just create a "new packages" like |
There are variants in the linear algebra backends the libraries are built against. At least for SciPy that currently means choosing a variant at the moment and just shipping that as the default (i.e.,
|
I just did a |
@namehta4 @NaderAlAwar
Since
pykokkos-base
is not actually needed to buildpykokkos
(distinction of genuine build time vs. runtime dependencies), and because PEP518-basedpip
installs will buildpykokkos
on its own in an isolated env before installing it to a local user env, regardless of how we installpykokkos
withpip
, it will still be up to the user to provide a suitable version ofpykokkos-base
in their environment (the same would apply for providing a suitable version of NumPy when working with SciPy for example).So, in the
pip
/PyPI ecosystem, I suspect the only way for us to reduce build/install friction is to:pykokkos-base
from source (but building from source is never really "easy" for end users)The latter would likely be a substantial lift, and I'm not sure how we'd handle OMP, CUDA backend library shipping, though some libs like
pytorch
ortensorflow
could likely be used as inspiration for that.The text was updated successfully, but these errors were encountered: