Skip to main content

A Quantum Development Library

Project description

Welcome to the Quantum Rings SDK for NVIDIA GPU

This document serves as a guide for installing the Quantum Rings SDK in the GPU-enabled mode. Before starting the installation process, please review the sections that outline the minimum system requirements and supported GPU architectures.

Additionally, the section titled “Feedback and Getting Support” provides links for submitting feedback or obtaining further assistance.

Finding the Latest Version of the SDK

  • 0.11.2311 – For Python 3.11 based installations

  • 0.11.2312 – For Python 3.12 based installations

  • 0.11.2313 – For Python 3.13 based installations

  • 0.11.2314 – For Python 3.14 based installations

Minimum System Requirements

A system with specifications exceeding the minimum requirements is recommended. Lower specifications may limit the number of qubits supported and could result in poor performance.

  • Operating systems recommended:

    • Ubuntu 22.04.4 LTS

    • Ubuntu 24.04.4 LTS

    • Windows 11 Pro

    • WSL2 based Linux Instances on Windows 11 Pro

  • 64-bit Intel i9 x86 CPU (14 cores 20 logical processors recommended) or equivalent

  • NVIDIA GB10 Grace Blackwell Superchip

  • DDR5 or better memory channels recommended

  • 32 GB Installed physical memory

  • 18 GB Available physical memory

  • 64-bit Python version 3.11, 3.12, 3.13, or 3.14

Supported GPU Architectures

  • Amphere, compute capabilities 8.0, 8.6

  • Hopper, compute capability 9.0

  • Blackwell, compute capability 10.0

  • or later

A minimum of 4 GB global memory on the GPU is required to run the SDK. The actual amount of memory needed depends upon the number of qubits used and the gate operations involved. CUDA Toolkit 12.x or 13.x is required to install the GPU version of the SDK.

Installation Procedure

The Quantum Rings SDK now supports Nvidia GPUs in both native mode and with the Qiskit toolkit. The following steps outline the installation procedure.

STEP - 1

To obtain your license for the Quantum Rings SDK, register by selecting the Login option from the menu.

If you are already registered, you can skip this step.

Next, log in to the Quantum Rings portal. To download your access keys, select the Manage Keys option in the left sidebar.

STEP - 2

Update the NVIDIA drivers for your system. For some Linux distributions, you may need to install the NVIDIA drivers directly from the distribution. Please search for the documentation from your Linux operating system provider and follow their recommendation.

If you are installing on WSL-based Linux, you must update the NVIDIA driver in Windows. It will automatically apply to the WSL Linux instance.

Note down the driver version by running the nvidia-smi command in the terminal and observing the version displayed in the top panel. You will need to know the driver version to install the CUDA Toolkit later.

STEP - 3

Create a virtual environment for your Python version using the following example.

virtualenv --python=/usr/bin/python3.11 myenv311
source myenv31/bin/activate

In some installations, the virtual environment can be created as follows:

python3.11 -m venv myenv311
source myenv311/bin/activate

Note that installing a Python virtual environment may require additional steps.

You can optionally install Jupyter Notebook using the following command.

pip install notebook

STEP - 4

Choose the appropriate CUDA Toolkit (CTK) for your driver version. Section 2.2 CUDA Driver in Release notes outlines the CUDA Driver version range and the CUDA Toolkit (CTK) you could install. Install the CUDA Toolkit (CTK) by following the instructions in the link: CUDA Toolkit Follow the instructions on the screen after installing and setting up the CUDA Toolkit, and set the paths as directed.

If environment variables are not set correctly, linker errors will occur, and the SDK will not load. If you are a Windows user, see additional instructions in Section 6 to set up the DLL search path with Python.

If you are using your university supercomputer or a cloud environment with NVIDIA GPUs, your system administrator may already have installed the necessary runtime components optimized for your hardware platform. You may only need to select the CUDA Toolkit module. Selecting the CUDA Toolkit is typically done using a module loader, as shown below. Browse the modules installed in your system and choose the most recent CUDA Toolkit. Note that your system may use a different way of loading runtime components.

module load cuda-12.6.1-gcc-12.1.0

STEP - 5

To install the Quantum Rings SDK, use the command appropriate for your CUDA Toolkit version:

If you are using CUDA Toolkit version 13.x:

pip install quantumrings-nvidia-gpu

or

pip install quantumrings[cuda13x]

If you are using CUDA Toolkit version 12.x:

pip install quantumrings[cuda12x]

STEP - 6

Try running the following Python program in your Jupyter notebook to ensure everything is functioning correctly.

# For Windows users. Linux users may skip this.
# Setup the CUDA Toolkit path with Python
import os
import platform

if platform.system() == "Windows":
    cuda_path = os.getenv("CUDA_PATH", "")
    if "" == cuda_path:
        #set a hard-coded path
        cuda_path = "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\bin\\x64"
    else:
        #create from the environment
        if "13" in cuda_path:
            cuda_path += "\\bin\\x64"
        else:
            cuda_path += "\\bin"

    os.add_dll_directory(cuda_path)
#
#

import QuantumRingsLib
from QuantumRingsLib import QuantumRegister, AncillaRegister, ClassicalRegister, QuantumCircuit
from QuantumRingsLib import QuantumRingsProvider
from QuantumRingsLib import job_monitor
from QuantumRingsLib import JobStatus
from QuantumRingsLib import OptimizeQuantumCircuit
from matplotlib import pyplot as plt
import numpy as np
import math

provider = QuantumRingsProvider(token =<YOUR_TOKEN_HERE>, name=<YOUR_ACCOUNT_NAME_HERE>)
backend = provider.get_backend("amber_quantum_rings")
numberofqubits = 50
shots = 100

q = QuantumRegister(numberofqubits , 'q')
c = ClassicalRegister(numberofqubits , 'c')
qc = QuantumCircuit(q, c)

qc.h(0)
for i in range (qc.num_qubits - 1):
    qc.cnot(i, i + 1)

qc.measure_all()

job = backend.run(qc, shots=shots)
job_monitor(job)

result = job.result()
counts = result.get_counts()
print(counts)

Using the GPU Mode

Certain programs with a large number of qubits (> 22), complex entanglement, and many gate operations can benefit from using a GPU.

To switch to the GPU mode, select the amber_quantum_rings backend as follows:

backend = provider.get_backend("amber_quantum_rings")

To switch to the CPU mode, select the scarlet_quantum_rings backend as follows:

backend = provider.get_backend("scarlet_quantum_rings")

You can also store the backend name in the configuration file using the key backend and allow the method provider.get_backend select it automatically by not providing any arguments. To save the backend name in the configuration file, please follow the instructions in the SDK. Once the backend name is saved in the configuration file, you can obtain the backend by providing no arguments to the provider.get_backend method as follows:

provider = QuantumRingsProvider()
backend = provider.get_backend()

Installing on an AWS SageMaker instance

AWS SageMaker instances may not be preconfigured with the CUDA runtime. To install the CUDA runtime, open a terminal from the Jupyter notebook. Ensure that you are a root user with read rights in your working folder. Follow the instructions found in the link : CUDA Toolkit to install the toolkit corresponding to the driver version. You may not be allowed to update the CUDA drivers. You may want to disable this from the installation process. Set LD_LIBRARY_PATH and PATH as directed, or export them from a cell in the Jupyter notebook. Install quantumrings-nvidia-gpu as described in this document.

Using a hybrid Mode

On personal computers with a NVIDIA GPU containing lower memory, running the quantum circuit in a hybrid mode can be useful. In the hybrid mode, most operations are done by the CPU utilizing the CPU memory. Certain complex operations involving large matrices are offloaded to the GPU for added performance. To use the hybrid mode, select the serin_quantum_rings engine.

backend = provider.get_backend("serin_quantum_rings")

Feedback and getting support

We love to hear from you! Please join our Discord community to discuss anything quantum computing.

SDK Documentation

FAQ (Requires you to login)

Managing your license keys (Requires you to login)

Need more qubits? Request here (Requires you to login)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

quantumrings_cuda13x-0.11.2311-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_39_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ ARM64

quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_34_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

File details

Details for the file quantumrings_cuda13x-0.11.2311-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for quantumrings_cuda13x-0.11.2311-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 47e8d84ef9074f56d51b4ebc3e9237a61c3609e49a26b3469da1aa518ca8ba0b
MD5 b1b5a1be271a43f2d88d41488eeaba11
BLAKE2b-256 5bdd4eeddcbf2829e5515c5bef8f53873d53f1998601737078e5dd31af6d6864

See more details on using hashes here.

File details

Details for the file quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 fc5bf5ded5aa94e5c3139c00304a843f22e6d92f4ef0386a415cf019216e9ed6
MD5 a7dfacec14b14775bef4ebbbab80197e
BLAKE2b-256 7d2fa8e3f8387dd8199d4efb989e286aa53fa1356646b33fc70b2f857c1be849

See more details on using hashes here.

File details

Details for the file quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for quantumrings_cuda13x-0.11.2311-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 09c6e7cd32c4b136048ed0e16734408094f7d28e505a93297a3a3a2b2d0a6f83
MD5 5e014d74bfe971f89728495113e41c8f
BLAKE2b-256 43620c8d2a394faa1c802709e68970cce8976df9140cea25ff884e837899d68b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page