Skip to content

Split out gpu Python 3.10 wheel build#1472

Merged
jakelishman merged 1 commit into
Qiskit:mainfrom
mtreinish:fix-gpu-wheels
Mar 3, 2022
Merged

Split out gpu Python 3.10 wheel build#1472
jakelishman merged 1 commit into
Qiskit:mainfrom
mtreinish:fix-gpu-wheels

Conversation

@mtreinish
Copy link
Copy Markdown
Member

Summary

The aer gpu package wheel job for python 3.10 builds in the manylinux2014
container image, while for the older Python versions it uses the
manylinux2010 image. The manylinux2014 image is based on Centos 7 while
the manylinux2010 image is based on Centos 6. During the qiskit-aer
0.10.3 release the gpu wheel job failed because when running the py3.10
build we installed the cuda package for centos 6 in the manylinux2014
centos 7 based image. This caused the job to fail when nvcc was called
because it was not installed properly. To fix this issue the Python 3.10
build is split out into a separate job. This separate job will install
the same cuda version but for centos 7 which is appropriate for the
manylinux2014 image.

Details and comments

The aer gpu package wheel job for python 3.10 builds in the manylinux2014
container image, while for the older Python versions it uses the
manylinux2010 image. The manylinux2014 image is based on Centos 7 while
the manylinux2010 image is based on Centos 6. During the qiskit-aer
0.10.3 release the gpu wheel job failed because when running the py3.10
build we installed the cuda package for centos 6 in the manylinux2014
centos 7 based image. This caused the job to fail when nvcc was called
because it was not installed properly. To fix this issue the Python 3.10
build is split out into a separate job. This separate job will install
the same cuda version but for centos 7 which is appropriate for the
manylinux2014 image.
@mtreinish mtreinish added the stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable label Mar 2, 2022
Copy link
Copy Markdown
Member

@jakelishman jakelishman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me. There's a Windows-specific build step in these jobs that run on ubuntu-latest which is funny, but not an issue at all.

env:
CIBW_BEFORE_ALL: "yum install -y yum-utils wget && wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel6-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm && rpm -i cuda-repo-rhel6-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm && yum clean all && yum -y install cuda-10-1 openblas-devel"
CIBW_SKIP: "*-manylinux_i686 pp* cp36* *musllinux*"
CIBW_BEFORE_ALL: "yum install -y yum-utils wget && wget -q https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel6-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm && rpm -i cuda-repo-rhel6-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm && yum clean all && yum -y install cuda-10-1 openblas-devel"
Copy link
Copy Markdown
Member

@jakelishman jakelishman Mar 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Surprised you need to yum install wget - is curl not available and preconfigured in the manylinux images?

(This doesn't need changing or for you to look up if you don't immediately know, I'm just curious if you happen to know off the top of your head, since a quick search didn't turn anything up.)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, curl is probably installed in the base image. I think when I originally wrote the job I just used wget because it's what the nvidia install docs used.

@jakelishman jakelishman merged commit b329f13 into Qiskit:main Mar 3, 2022
hhorii pushed a commit to hhorii/qiskit-aer that referenced this pull request Mar 14, 2022
The aer gpu package wheel job for python 3.10 builds in the manylinux2014
container image, while for the older Python versions it uses the
manylinux2010 image. The manylinux2014 image is based on Centos 7 while
the manylinux2010 image is based on Centos 6. During the qiskit-aer
0.10.3 release the gpu wheel job failed because when running the py3.10
build we installed the cuda package for centos 6 in the manylinux2014
centos 7 based image. This caused the job to fail when nvcc was called
because it was not installed properly. To fix this issue the Python 3.10
build is split out into a separate job. This separate job will install
the same cuda version but for centos 7 which is appropriate for the
manylinux2014 image.
hhorii pushed a commit to hhorii/qiskit-aer that referenced this pull request Mar 14, 2022
The aer gpu package wheel job for python 3.10 builds in the manylinux2014
container image, while for the older Python versions it uses the
manylinux2010 image. The manylinux2014 image is based on Centos 7 while
the manylinux2010 image is based on Centos 6. During the qiskit-aer
0.10.3 release the gpu wheel job failed because when running the py3.10
build we installed the cuda package for centos 6 in the manylinux2014
centos 7 based image. This caused the job to fail when nvcc was called
because it was not installed properly. To fix this issue the Python 3.10
build is split out into a separate job. This separate job will install
the same cuda version but for centos 7 which is appropriate for the
manylinux2014 image.
@mtreinish mtreinish deleted the fix-gpu-wheels branch June 24, 2022 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants