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

Move from manylinux2010 to manylinux2014 #122

Open
janden opened this issue Nov 30, 2021 · 6 comments
Open

Move from manylinux2010 to manylinux2014 #122

janden opened this issue Nov 30, 2021 · 6 comments

Comments

@janden
Copy link
Collaborator

janden commented Nov 30, 2021

As discussed in #121, the new version of NumPy only releases binary wheels for manylinux2014, while our CI (and our releases) are for manylinux2010 for now. This is currently resolved by downgrading NumPy to the last version to publish manylinux2010 wheels (1.21), but this is not a tenable solution. One way to approach this would be to stick with manylinux2010 but build NumPy from source during testing. However, the fact that this is becoming a problem suggests that it is maybe time to move to manylinux2014. This should be relatively straightforward to implement, but we have to consider downstream issues. Are any dependent packages going to be severely affected by this?

@garrettwrong
Copy link
Collaborator

2014 should be mostly good to go, somehow this project was ahead of that (#93)

Changing to 2014 to would effect a user like myself on older machines which don't pickup 2014 wheels, but this should not be any concern to this project at this point.

Just-in-case, you might be able to adapt the pip calls during wheel building with --prefer-binary or similar. Something like that would try to use the last published wheel over the latest source release. Maybe if you get a complaint you can use that to release a 2010 package in a pinch...

All in all, changing to 2014 is probably past due.

@ahbarnett
Copy link
Collaborator

ahbarnett commented Dec 2, 2021

On a related note I just broke CI in b61de35
by adding in sm_80 to the list of NVARCH in Makefile - this was needed to get working on our A100's here. However it fails on the manylinux:

detected target: manylinux
nvcc --device-c -c -std=c++14 -ccbin=g++ -O3 -arch=sm_80 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_61,code=sm_61 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_86,code=compute_86 -Wno-deprecated-gpu-targets --default-stream per-thread -Xcompiler "-fPIC -O3 -funroll-loops -march=x86-64 -mtune=generic -msse4 -fcx-limited-range -std=c++14" -I/usr/local/cuda/include -Icontrib/cuda_samples -I include src/precision_independent.cu -o src/precision_independent.o
nvcc fatal   : Value 'sm_80' is not defined for option 'gpu-architecture'

Do I have to just revert the Makefile, or is there hope of including this? I know nothing about manylinux and not much about cuda / NV arch stuff.

@ahbarnett
Copy link
Collaborator

well I reverted the Makefile for now; can add a site make.inc for SM80.

@garrettwrong
Copy link
Collaborator

Hi Alex, I suspect to implement that arch on either of the manylinux packages would require upgrading CUDA in the dockerfiles. Basically I combined the official "manylinux" container with some Nvidia container components to create that platform where the wheels are built.

our manylinux2010 is CUDA 10.1
our manylinux2014 is CUDA 11.0

I believe the CUDA version should be at least 11.1 for that gpu.

Upgrading the CUDA used for packaging would potentially have the side effect of breaking some backward compatibility with older cards, if that matters. That is, the prepackaged binary might not be compatible with someone who has a Maxwell (or older) card (or older driver than we built against). With that said, Maxwell is getting pretty old now... Changing the docker files is totally feasible, but would require some testing.

Hope that helps.

@ahbarnett
Copy link
Collaborator

ahbarnett commented Dec 3, 2021 via email

@janden
Copy link
Collaborator Author

janden commented Feb 4, 2022

Ok so are we agreed about moving to manylinux2014 and also to CUDA 11.0, then? As @garrettwrong says, the code is there, so it's mostly a matter of testing.

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

No branches or pull requests

3 participants