NVIDIA / NVIDIA/cuda-quantum

Backends need to be reworked to be opt-in at cmake config time

Open
#2,363 0 comments 0 reactions 4 assignees View on GitHub

@bettinaheim is already working on this.

Since Nov 7, 2024.

build stale-notified
Dominant language
C++
Stars
1.1k
Forks
456
Avg merge
1d 22h
Merged PRs (30d)
165

Description

With the Braket backend:

The prerequisite repos and packages should be downloaded and built as part of the prereq build and install script and not part of the tpls/ directory tree. These files are not required by any other backend. The current integration is downloading these repos and their submodules and trying (unsuccessfully in general) to configure and build them as a cmake configuration step at project build time. Since not every build will want (or can) build the Braket backend this latter approach doesn't really work.

See PR 2362 for an initial draft that removes the submodule and adds a CMake variable to allow the inclusion of the Braket backend under user control. This PR is incomplete: the CI will require changes to the build scripts to enable the Braket backend for testing, etc. Also the tests specifically tailored for the Braket backend must be updated to use REQUIRES: bracket or some such configuration setting for developer builds and builds in other ad hoc environments.

Looking through the cmake files, some of the targets are opt-in and some of them are hardcoded to always get built. We should be more rigorous here and have the default backend built by default and the other backends selectable via cmake command line variables. This structure will provide the greatest portability for tool builders and end-users.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.