Why it matters
qBraid is now a remote cloud target in NVIDIA CUDA-Q. For CUDA-Q developers, that means:
- No new tooling to learn. Write a @cudaq.kernel (or a C++ kernel), set the target to qbraid, and the same code that runs on a CUDA-Q simulator dispatches to qBraid-supported hardware. You do not have to learn any separate execution path as the integration lives inside nvq++ itself.
- One access point, many vendors. A single qBraid API key gives CUDA-Q programs access to every device qBraid provides such as Rigetti, IonQ, IQM, QuEra, and more. Switching devices is as simple as changing the machine flag. All the other aspects such as the kernel, lowering pipeline, and the result-parsing code stay identical.
- Unlimited free prototyping. The default backend (qbraid:qbraid:sim:qir-sv) is qBraid's free QIR state-vector simulator. It allows sampling your program for up to 30 qubits and 2000 shots, for free. Building on the QIR simulator, we will soon be adding more high-performance simulators to the qBraid device line-up.
- Python and C++. Both surfaces are wired up. You can run Python kernels via cudaq.sample / cudaq.observe, and C++ kernels via nvq++ --target qbraid. Async submission and on-disk future persistence work in both — useful when QPU queues take hours.
What you can do today
One of the important use cases for an integration like this is cross-vendor QPU benchmarking. This requires running the same circuit against multiple devices, fixing an ideal baseline on a simulator, and scoring the noise gap on real hardware to figure out which QPU is the best fit for a quantum computing workload.
We've put together step-by-step notebooks that walk through exactly that:
- The quickstart notebook — walks through set_target arguments, sync vs. async submission, expectation-value workflows (cudaq.observe for VQE/QAOA-style problems), and the error-handling surface
- Benchmarking QPUs from CUDA-Q via qBraid — defines GHZ circuits with increasing widths, sweeps them across multiple QPU device IDs, scores each device against the noise-free baseline, and plots the results.
- A matching C++ example — covers the same ground for users on the nvq++ side.
NOTE: qBraid credits are required to run the programs against real quantum hardware.
How to extend it
Are you a quantum hardware provider? If you want your devices available to every CUDA-Q user, reach out to qBraid for direct hardware integration. Once your device is exposed through qBraid, it's instantly available to CUDA-Q developers. Users just paste your qBraid device ID and they're submitting jobs to your system.
This is the leverage point of the architecture: one integration with qBraid puts you in front of the entire CUDA-Q community of researchers and developers.
What's next
- Try it. The fastest path is the nightly CUDA-Q image (nvcr.io/nvidia/nightly/cuda-quantum:cu12-latest), which already includes the qBraid target. Set QBRAID_API_KEY as the env variable and you can start submitting to qBraid in under five minutes.
- Get featured on qBraid. We would love to showcase how you utilise this integration and develop useful features for the quantum community. Submit your project to the qBraid explore page and get featured on the qBraid platform
- Tell us what's missing. We're particularly interested in feedback on: how easily you can develop quantum software with the new qBraid platform and where you struggle, which CUDA-Q features you'd want implemented through the target next, and any pain points in the current submission flow