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

Fix sync issues with calls to CUSV APIs on aarch64 #823

Merged
merged 15 commits into from
Aug 2, 2024
Merged

Conversation

mlxd
Copy link
Member

@mlxd mlxd commented Jul 26, 2024

Before submitting

Please complete the following checklist when submitting a PR:

  • All new features must include a unit test.
    If you've fixed a bug or added code that should be tested, add a test to the
    tests directory!

  • All new functions and code must be clearly commented and documented.
    If you do make documentation changes, make sure that the docs build and
    render correctly by running make docs.

  • Ensure that the test suite passes, by running make test.

  • Add a new entry to the .github/CHANGELOG.md file, summarizing the
    change, and including a link back to the PR.

  • Ensure that code is properly formatted by running make format.

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.


Context: Fixes the known sync issues on aarch64 + GraceHopper when using custatevec API calls.

Description of the Change: Adds stream sync to all CUSV async API calls.

Benefits: Fixes #793

Possible Drawbacks: Potential sync point may introduce (minimal) overhead for smaller problems.

Related GitHub Issues:

Copy link
Contributor

Hello. You may have forgotten to update the changelog!
Please edit .github/CHANGELOG.md with:

  • A one-to-two sentence description of the change. You may include a small working example for new features.
  • A link back to this PR.
  • Your name (or GitHub username) in the contributors section.

Copy link

codecov bot commented Jul 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.20%. Comparing base (cfc3006) to head (e99ed75).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #823      +/-   ##
==========================================
+ Coverage   97.60%   99.20%   +1.60%     
==========================================
  Files         116      102      -14     
  Lines       18259    13837    -4422     
==========================================
- Hits        17821    13727    -4094     
+ Misses        438      110     -328     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mlxd
Copy link
Member Author

mlxd commented Jul 26, 2024

Fixes #793

@mlxd mlxd added the ci:use-multi-gpu-runner Enable usage of Multi-GPU runner for this Pull Request label Jul 30, 2024
@mlxd mlxd marked this pull request as ready for review July 30, 2024 13:19
Copy link
Member

@multiphaseCFD multiphaseCFD left a comment

Choose a reason for hiding this comment

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

Looks good to me! Thanks @mlxd ! Don't forget to add a changelog entry.

@mlxd mlxd requested a review from maliasadi July 30, 2024 15:24
Copy link
Member

@maliasadi maliasadi left a comment

Choose a reason for hiding this comment

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

LGTM! 👌 It's just missing a changelog entry.

@mlxd
Copy link
Member Author

mlxd commented Aug 2, 2024

[sc-68294]

Copy link
Member

@maliasadi maliasadi left a comment

Choose a reason for hiding this comment

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

Thanks @mlxd! Swift 🎸

mlxd and others added 6 commits August 2, 2024 16:21
### Before submitting

Please complete the following checklist when submitting a PR:

- [ ] All new features must include a unit test.
If you've fixed a bug or added code that should be tested, add a test to
the
      [`tests`](../tests) directory!

- [ ] All new functions and code must be clearly commented and
documented.
If you do make documentation changes, make sure that the docs build and
      render correctly by running `make docs`.

- [ ] Ensure that the test suite passes, by running `make test`.

- [ ] Add a new entry to the `.github/CHANGELOG.md` file, summarizing
the
      change, and including a link back to the PR.

- [ ] Ensure that code is properly formatted by running `make format`. 

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.


------------------------------------------------------------------------------------------------------------

**Context:** Current install directions for cuquantum allow use of the
RPATH to the expected directory with Python, but requires explicit
targets when using a C++ build. The docs and paths searched for
cuquantum right now often have the `lib` dir implicit in the path, which
causes an incorrect path to be found by CMake, as it is a child class of
the root. This PR fixes those such paths, allowing the C++ builds to
find the correct custatevec libraries, ensuring a successful cmake
configuration step.

**Description of the Change:** As above.

**Benefits:**

**Possible Drawbacks:**

**Related GitHub Issues:**

---------

Co-authored-by: ringo-but-quantum <github-ringo-but-quantum@xanadu.ai>
Co-authored-by: Ali Asadi <10773383+maliasadi@users.noreply.github.com>
@mlxd mlxd merged commit 619b807 into master Aug 2, 2024
83 checks passed
@mlxd mlxd deleted the fix_lgpu_aarch64 branch August 2, 2024 21:14
multiphaseCFD pushed a commit that referenced this pull request Aug 2, 2024
Please complete the following checklist when submitting a PR:

- [x] All new features must include a unit test.
If you've fixed a bug or added code that should be tested, add a test to
the
      [`tests`](../tests) directory!

- [x] All new functions and code must be clearly commented and
documented.
If you do make documentation changes, make sure that the docs build and
      render correctly by running `make docs`.

- [x] Ensure that the test suite passes, by running `make test`.

- [x] Add a new entry to the `.github/CHANGELOG.md` file, summarizing
the
      change, and including a link back to the PR.

- [x] Ensure that code is properly formatted by running `make format`.

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.

------------------------------------------------------------------------------------------------------------

**Context:** Fixes the known sync issues on aarch64 + GraceHopper when
using custatevec API calls.

**Description of the Change:** Adds stream sync to all CUSV async API
calls.

**Benefits:** Fixes #793

**Possible Drawbacks:** Potential sync point may introduce (minimal)
overhead for smaller problems.

**Related GitHub Issues:**

---------

Co-authored-by: Lee J. O'Riordan <lee@xanadu.au>
Co-authored-by: ringo-but-quantum <github-ringo-but-quantum@xanadu.ai>
Co-authored-by: Ali Asadi <10773383+maliasadi@users.noreply.github.com>
multiphaseCFD pushed a commit that referenced this pull request Aug 5, 2024
Please complete the following checklist when submitting a PR:

- [x] All new features must include a unit test.
If you've fixed a bug or added code that should be tested, add a test to
the
      [`tests`](../tests) directory!

- [x] All new functions and code must be clearly commented and
documented.
If you do make documentation changes, make sure that the docs build and
      render correctly by running `make docs`.

- [x] Ensure that the test suite passes, by running `make test`.

- [x] Add a new entry to the `.github/CHANGELOG.md` file, summarizing
the
      change, and including a link back to the PR.

- [x] Ensure that code is properly formatted by running `make format`.

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.

------------------------------------------------------------------------------------------------------------

**Context:** Fixes the known sync issues on aarch64 + GraceHopper when
using custatevec API calls.

**Description of the Change:** Adds stream sync to all CUSV async API
calls.

**Benefits:** Fixes #793

**Possible Drawbacks:** Potential sync point may introduce (minimal)
overhead for smaller problems.

**Related GitHub Issues:**

---------

Co-authored-by: Lee J. O'Riordan <lee@xanadu.au>
Co-authored-by: ringo-but-quantum <github-ringo-but-quantum@xanadu.ai>
Co-authored-by: Ali Asadi <10773383+maliasadi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:use-multi-gpu-runner Enable usage of Multi-GPU runner for this Pull Request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Synchronization needed in lightning.gpu with cuStateVec 1.6.0
4 participants