KEMBAR78
Fix LLVM aarch64 relocation overflow by bmhowe23 · Pull Request #1444 · NVIDIA/cuda-quantum · GitHub
Skip to content

Conversation

@bmhowe23
Copy link
Collaborator

@bmhowe23 bmhowe23 commented Mar 26, 2024

Fixes #1421

#1421 appears similar to llvm/llvm-project#71963, which is possibly fixed by llvm/llvm-project#71968.

The diffs in this PR originated from llvm/llvm-project#71968 and were modified to target the specific version of LLVM in use by CUDA Quantum (16.0.6). We also changed the default value of ReserveAlloc from false to true.

I did some UCCSD timings with and without this change on x86 / H100's, nvidia-fp64 simulator. The table below is an average of 10 runs. All times are in seconds.

Num Qubits PR 1444 First Call PR 1444 Second Call Original (cee02b1) First Call Original (cee02b1) Second Call % Change First Call % Change Second Call
4 1.694031227 0.013094904 1.746167448 0.018902884 -3 -31
8 2.145540085 0.009673945 2.080043804 0.011023891 3 -12
12 4.451193639 0.076256188 4.444432796 0.045527553 0 67
14 4.860055712 0.071599827 4.804148318 0.083267475 1 -14
20 2.133075652 0.141076856 2.179348424 0.134360313 -2 5
24 45.42791587 31.68873254 45.2112798 31.66346203 0 0

The 12 qubit case is the only one that looks noticeably worse, and that one appeared to have large run-to-run variance (32ms - 138ms).

Diffs originated from llvm/llvm-project#71968
and were modified to target the specific version of LLVM in use by CUDA
Quantum (16.0.6).
@bmhowe23 bmhowe23 added the bug fix To be listed under Bug Fixes in the release notes label Mar 26, 2024
@schweitzpgi
Copy link
Collaborator

Note: need to revert when LLVM is rebased.

@bmhowe23
Copy link
Collaborator Author

Note: need to revert when LLVM is rebased.

That PR hasn't been merged in upstream LLVM yet, so we may need to rebase it (assuming this works in the first place).

@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Mar 27, 2024
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment March 27, 2024 13:41 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 17:46 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 17:46 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 18:46 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 18:46 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 18:46 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 18:47 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 19:07 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 19:08 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 19:08 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 temporarily deployed to ghcr-deployment June 26, 2024 19:21 — with GitHub Actions Inactive
@bmhowe23 bmhowe23 marked this pull request as ready for review June 27, 2024 02:13
@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Jun 27, 2024
@bmhowe23 bmhowe23 added this to the release 0.8.0 milestone Jul 1, 2024
Copy link
Collaborator

@schweitzpgi schweitzpgi left a comment

Choose a reason for hiding this comment

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

LGTM

@schweitzpgi
Copy link
Collaborator

Note: need to revert when LLVM is rebased.

Hopefully this gets merged upstream fairly soon so this will just be fixed out of the box.

@bmhowe23 bmhowe23 enabled auto-merge (squash) July 3, 2024 17:20
@github-actions
Copy link

github-actions bot commented Jul 3, 2024

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Jul 3, 2024
@bmhowe23 bmhowe23 merged commit 27e3ad9 into NVIDIA:main Jul 4, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Jul 4, 2024
@bmhowe23 bmhowe23 deleted the pr-fix-i1421 branch July 4, 2024 04:02
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

bug fix To be listed under Bug Fixes in the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LLVM aarch64 relocation overflow

3 participants