Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ apps/
# vim files
*.tmp

# Wheel files
*.whl

# Temporary build files for metapackages
libs/*/python/metapackages/LICENSE
libs/*/python/metapackages/NOTICE
Expand Down
26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,37 @@
# Welcome to the CUDA-QX repository

This repository contains a set of libraries that build on
NVIDIA CUDA-Q. These libraries enable the rapid development of hybrid quantum-classical
application code leveraging state-of-the-art CPUs, GPUs, and QPUs.
This repository contains a set of libraries that build on
NVIDIA CUDA-Q. These libraries enable the rapid development of hybrid quantum-classical
application code leveraging state-of-the-art CPUs, GPUs, and QPUs.

## Getting Started
To learn more about how to work with the CUDA-QX libraries, please take a look at the
[CUDA-QX Documentation][cudaqx_docs]. The page contains detailed
[installation instructions][official_install] for officially released packages.

To learn more about how to work with the CUDA-QX libraries, please take a look at the
[CUDA-QX Documentation][cudaqx_docs]. The page contains detailed
[installation instructions][official_install] for officially released packages.

[cudaqx_docs]: https://nvidia.github.io/cudaqx
[official_install]: https://nvidia.github.io/cudaqx/quickstart/installation.html

## Contributing

There are many ways in which you can get involved with CUDA-QX. If you are
interested in developing quantum applications with the CUDA-QX libraries,
this repository is a great place to get started! For more information about
contributing to the CUDA-QX platform, please take a look at
interested in developing quantum applications with the CUDA-QX libraries,
this repository is a great place to get started! For more information about
contributing to the CUDA-QX platform, please take a look at
[Contributing.md](./Contributing.md).

## License

The code in this repository is licensed under [Apache License 2.0](./LICENSE).

When distributed via PyPI, GHCR, or NGC, the binaries generated from this source
code are also distributed under the Apache License 2.0; however, the
`libcudaq-qec-nv-qldpc-decoder.so` library is closed source and is subject to
the [NVIDIA Software License Agreement][github_qec_license]

[github_qec_license]: https://github.com/NVIDIA/cudaqx/blob/main/libs/qec/LICENSE

Contributing a pull request to this repository requires accepting the
Contributor License Agreement (CLA) declaring that you have the right to, and
actually do, grant us the rights to use your contribution. A CLA-bot will
Expand Down
1 change: 1 addition & 0 deletions libs/qec/CITATION.cff
95 changes: 95 additions & 0 deletions libs/qec/LICENSE

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions libs/qec/NOTICE
15 changes: 11 additions & 4 deletions libs/qec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ not require a GPU to use, but some components are GPU-accelerated.
- Real-time decoding capabilities for quantum feedback
- Integration with CUDA-Q quantum program execution

Note: if you would like to use our Tensor Network Decoder, you will need
additional dependencies installed. You can install them with
`pip install cudaq-qec[tensor-network-decoder]`.
## Optional Dependencies

Some decoders require additional dependencies to operate. You can install them with

- `pip install cudaq-qec[tensor-network-decoder]` for the Tensor Network Decoder
- `pip install cudaq-qec[trt-decoder]` for the TensorRT Decoder

## Getting Started

Expand All @@ -28,8 +31,12 @@ For detailed documentation, tutorials, and API reference, visit the

## License

CUDA-Q QEC is an open source project. The source code is available on
Most components of CUDA-Q QEC are open source. The source code is available on
[GitHub][github_link] and licensed under [Apache License
2.0](https://github.com/NVIDIA/cudaqx/blob/main/LICENSE).

The `libcudaq-qec-nv-qldpc-decoder.so` library (distributed with CUDA-Q QEC) is
closed source and is subject to the [NVIDIA Software License Agreement][github_qec_license]

[github_link]: https://github.com/NVIDIA/cudaqx/tree/main/libs/qec
[github_qec_license]: https://github.com/NVIDIA/cudaqx/blob/main/libs/qec/LICENSE
2 changes: 2 additions & 0 deletions libs/qec/pyproject.toml.cu12
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
requires-python = ">=3.11"
readme = "README.md"
license = "LicenseRef-NVIDIA-Proprietary"
dependencies = [
'cuda-quantum-cu12 >= 0.13',
]
Expand Down Expand Up @@ -41,6 +42,7 @@ cmake.version = ">=3.28"
cmake.build-type = "Release"
install.components = ["qec-python", "qec-lib", "qec-lib-plugins"]
wheel.packages = []
wheel.license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
logging.level = "DEBUG"
ninja.version = ">=1.10"

Expand Down
2 changes: 2 additions & 0 deletions libs/qec/pyproject.toml.cu13
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
requires-python = ">=3.11"
readme = "README.md"
license = "LicenseRef-NVIDIA-Proprietary"
dependencies = [
'cuda-quantum-cu13 >= 0.13',
]
Expand Down Expand Up @@ -41,6 +42,7 @@ cmake.version = ">=3.28"
cmake.build-type = "Release"
install.components = ["qec-python", "qec-lib", "qec-lib-plugins"]
wheel.packages = []
wheel.license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
logging.level = "DEBUG"
ninja.version = ">=1.10"

Expand Down
3 changes: 3 additions & 0 deletions libs/qec/python/metapackages/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
include pyproject.toml.cu12
include pyproject.toml.cu13
include LICENSE
include NOTICE
include CITATION.cff
1 change: 1 addition & 0 deletions libs/qec/python/metapackages/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ description = "Accelerated libraries for Quantum Error Correction built on CUDA-
authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
readme = "README.md"
license = "LicenseRef-NVIDIA-Proprietary"
requires-python = ">=3.11"
license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
classifiers = [
Expand Down
1 change: 1 addition & 0 deletions libs/solvers/CITATION.cff
1 change: 1 addition & 0 deletions libs/solvers/LICENSE
1 change: 1 addition & 0 deletions libs/solvers/NOTICE
2 changes: 2 additions & 0 deletions libs/solvers/pyproject.toml.cu12
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
requires-python = ">=3.11"
readme = "README.md"
license = "Apache-2.0"
dependencies = [
'cuda-quantum-cu12 >= 0.13',
'fastapi',
Expand Down Expand Up @@ -46,6 +47,7 @@ cmake.version = ">=3.28"
cmake.build-type = "Release"
install.components = ["solvers-python", "solvers-lib", "solvers-tools"]
wheel.packages = []
wheel.license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
logging.level = "DEBUG"
ninja.version = ">=1.10"

Expand Down
2 changes: 2 additions & 0 deletions libs/solvers/pyproject.toml.cu13
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
requires-python = ">=3.11"
readme = "README.md"
license = "Apache-2.0"
dependencies = [
'cuda-quantum-cu13 >= 0.13',
'fastapi',
Expand Down Expand Up @@ -46,6 +47,7 @@ cmake.version = ">=3.28"
cmake.build-type = "Release"
install.components = ["solvers-python", "solvers-lib", "solvers-tools"]
wheel.packages = []
wheel.license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
logging.level = "DEBUG"
ninja.version = ">=1.10"

Expand Down
3 changes: 3 additions & 0 deletions libs/solvers/python/metapackages/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
include pyproject.toml.cu12
include pyproject.toml.cu13
include LICENSE
include NOTICE
include CITATION.cff
2 changes: 1 addition & 1 deletion libs/solvers/python/metapackages/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ authors = [{name = "NVIDIA Corporation & Affiliates"}]
maintainers = [{name = "NVIDIA Corporation & Affiliates"}]
readme = "README.md"
requires-python = ">=3.11"
license-files = [ "LICENSE", "NOTICE", "CITATION.cff" ]
license = "Apache-2.0"
classifiers = [
'Intended Audience :: Science/Research',
'Intended Audience :: Developers',
Expand Down
14 changes: 12 additions & 2 deletions scripts/ci/build_metapackages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+ ]]; then
exit 1
fi

FILES_TO_COPY=(LICENSE NOTICE CITATION.cff)
FILES_TO_COPY=(NOTICE CITATION.cff)

# Copy setup.py file for the qec meta-package to the solvers meta-package directory.
cp $TOP_DIR/libs/qec/python/metapackages/setup.py $TOP_DIR/libs/solvers/python/metapackages/setup.py
Expand All @@ -43,12 +43,21 @@ for package in qec solvers; do
echo "Building $package metapackage..."
cd $TOP_DIR/libs/$package/python/metapackages

# Copy the appropriate LICENSE, NOTICE, and CITATION.cff files to the metapackage directory.
# Copy the appropriate NOTICE and CITATION.cff files to the metapackage directory.
rm -rf dist *.egg-info _version.txt $FILES_TO_COPY
for file in ${FILES_TO_COPY[@]}; do
cp $TOP_DIR/$file .
done

rm -f LICENSE
if [ $package == "qec" ]; then
# Use LICENSE file from qec directory
cp $TOP_DIR/libs/qec/LICENSE .
else
# Use top-level LICENSE file
cp $TOP_DIR/LICENSE .
fi

# Create a version.txt file in the metapackage directory.
echo $VERSION > _version.txt

Expand Down Expand Up @@ -76,6 +85,7 @@ for package in qec solvers; do
# Clean up
rm $TOP_DIR/libs/${package}/python/metapackages/pyproject.toml.cu*
rm $FILES_TO_COPY
rm LICENSE
rm _version.txt

done