conda-forge / cuquantum-feedstock

A conda-smithy repository for cuquantum.
BSD 3-Clause "New" or "Revised" License
3 stars 4 forks source link

Rebuild for CUDA 12 w/arch support (+ cross-compilation) #47

Closed regro-cf-autotick-bot closed 1 year ago

regro-cf-autotick-bot commented 1 year ago

Close #35. Close #36. Close #46.

This PR has been triggered in an effort to update cuda120.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.


Here are some more details about this specific migrator:

The transition to CUDA 12 SDK includes new packages for all CUDA libraries and build tools. Notably, the cudatoolkit package no longer exists, and packages should depend directly on the specific CUDA libraries (libcublas, libcusolver, etc) as needed. For an in-depth overview of the changes and to report problems see this issue. Please feel free to raise any issues encountered there. Thank you! :pray:


If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/6028280553, please use this URL for debugging.

conda-forge-webservices[bot] commented 1 year ago

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 (recipe) and found it was in an excellent condition.

leofang commented 1 year ago

@conda-forge-admin, please rerender

leofang commented 1 year ago

I was debugging the CI failure, and I noticed something interesting. cuQuantum DSOs have a few symbols from libm.so.6@GLIBC_2.27, however on CUDA 11 we were able to patch them out fine (which turns out to be an illusion, read on) but not on CUDA 12.

With the current CUDA 12 migrator, I find out the reason is that the aarch64/ppc64le images in use have different glibc versions:

These can be checked via either ldd --version or objdump -T /lib64/libm.so.6 (the DSO loaded at the test stage). I believe this contributes to some subtle issues that we (at least I) previously were puzzled about. This is also causing the illusion: we never patched it fully (because patchelf didn’t update .gnu.version_r table), it’s just that in the CF CI the problem is hidden due to the image in use.

Now that it's clear using glibc 2.27 for aarch64/ppc64le is inevitable, some tests have to be skipped due to lack of the infrastructure support (tracked here), which is still WIP. Since tests can't be run anyway, let me merge #36 to here and turn on cross-compilation. At least we get some speedup in CI.

leofang commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/cuquantum-feedstock/actions/runs/6037488949.

leofang commented 1 year ago

@conda-forge-admin, please rerender

leofang commented 1 year ago

Let's merge and follow up as needed.

leofang commented 1 year ago

FYI the documentation for cross-compiling on conda-forge is WIP: https://github.com/conda-forge/conda-forge.github.io/pull/1985

leofang commented 1 year ago

cc: @mtjrider for vis