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

Update build wheels job to test the wheels #56

Merged
merged 43 commits into from
Jan 21, 2025

Conversation

bmhowe23
Copy link
Collaborator

@bmhowe23 bmhowe23 commented Jan 17, 2025

Primary Changes

  • Update build_wheels.yaml to test CUDA-QX wheels after building them.
  • Update build_wheels.yaml to build CUDA-Q wheels rather than using released PyPi CUDA-Q wheels. This was necessary because the current 0.9.1 CUDA-Q wheels have an ARM bug that were impacting our ability to do testing. This was fixed in Apply LLVM customizations for Python wheel build cuda-quantum#2504, which has not been released yet.
  • Fix RPATH of decoder plugin example (thanks for the suggestion, @melody-ren) to fix a wheel packaging problem where auditwheel as duplicating (aka grafting) the libcudaq-qec.so file, causing extension_point registration anomalies and decoder plugin lookup failures.

Secondary Changes

  • In .github/actions/get-cudaq-version/action.yaml, skip jq install if it is already installed
  • Add get-cudaq-wheels action; currently only invoked on manually commanded build_wheels.yaml workflow but we may decide to invoke this on a per-PR basis in the future.
  • Change retention period of all uploaded artifacts to 14 days
  • Update getCUDAQXLibraryPath to work for both QEC and Solvers
  • Change decoder-plugins path from a build-time constant (which will not work for wheels) to use getCUDAQXLibraryPath instead.
  • Change use of shared_ptr to unique_ptr in decoder plugin handling
  • Move decoder plugin helper functions into namespaces rather than global namespace
  • Change cudaqx wheels to be depending on cuda-quantum >= 0.9 rather than ~= 0.9.0 for better futureproofing of our released wheels

Sample run result w/ custom CUDA-Q wheels: https://github.com/NVIDIA/cudaqx/actions/runs/12855925162
Sample run result w/ released PyPI CUDA-Q wheels: https://github.com/NVIDIA/cudaqx/actions/runs/12856394702

Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
If the RPATH for the plugin did not point to the correct cudaq-qec.so
file, then the auditwheel script was grafting a brand new
cuda-qec-1234abcd.so file, which was causing duplicate extension_point
registries. This was very bad. Setting the correct RPATH seems to make
auditwheel behave much better.

Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
Signed-off-by: Ben Howe <[email protected]>
@bmhowe23 bmhowe23 merged commit b6c91f9 into NVIDIA:main Jan 21, 2025
17 checks passed
@bmhowe23 bmhowe23 deleted the pr-test-arm-wheels branch January 21, 2025 23:10
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

Successfully merging this pull request may close these issues.

2 participants