Cudaq Guide
NVIDIAOfficialCreated by CUDA-Q TeamDistributed by NVIDIA
- Skill
- Tool integration
- Software development
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The CUDA-Q Guide provides comprehensive support for developers working with NVIDIA's CUDA-Q programming model. It covers the full lifecycle of quantum development, including environment setup for Python and C++, selection of simulation targets (GPU-accelerated or CPU-only), and integration with real QPU hardware. The skill also offers deep-dive assistance for authoring @cudaq.kernel code, including execution API selection, kernel-language constraints, and debugging common compilation or runtime issues.
What it does
- Walks users through CUDA-Q installation and validation on various platforms.
- Assists in selecting appropriate simulation backends, including multi-GPU and tensor-network targets.
- Provides best practices for authoring and debugging Python @cudaq.kernel code.
- Guides users through connecting to and executing jobs on real QPU hardware providers.
- Explains how to parallelize quantum workloads across GPUs or QPUs.
- Offers troubleshooting steps for common import, compilation, and execution errors.
When to use it
- When setting up a new CUDA-Q development environment on Linux, macOS, or WSL.
- When you need to write or debug a quantum kernel using the @cudaq.kernel decorator.
- When choosing between simulation backends like qpp-cpu or NVIDIA GPU-accelerated targets.
- When preparing to submit quantum circuits to external QPU hardware providers.
- When optimizing quantum workloads for multi-GPU or distributed execution.
Advantages
- Provides version-aware guidance for CUDA-Q 0.14 and 0.15 APIs.
- Centralizes documentation for both onboarding and advanced kernel authoring.
- Helps avoid common pitfalls like incorrect execution API selection or kernel-language violations.
- Streamlines the process of configuring provider-specific QPU access.
Usage examples
- “/cudaq-guide install”
- The agent provides step-by-step installation instructions for Python or C++, followed by a validation test using a Bell-state kernel.
- “/cudaq-guide author”
- The agent explains how to structure a kernel, select the correct execution API (e.g., sample vs. observe), and debug common compiler issues.
- “/cudaq-guide qpu”
- The agent initiates a dialogue to identify the target QPU technology and guides the user through secure credential configuration.
- “/cudaq-guide gpu-sim”
- The agent helps the user select the optimal simulation backend based on their hardware availability and performance requirements.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/cudaq-guide/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip cudaq-guide.zip -d .agents/skills
Documentation by CUDA-Q Team
CUDA-Q Guide
Purpose
Guide users through CUDA-Q installation, basic kernels, GPU simulation targets,
QPU access, built-in applications, multi-GPU execution, and Python
@cudaq.kernel authoring. For Qiskit-to-CUDA-Q ports, route to the
cudaq-importing skill instead.
Prerequisites
Python 3.10+ for Python CUDA-Q workflows.
CUDA Toolkit and an NVIDIA GPU for GPU-accelerated targets on Linux.
CPU-only simulation is available through
qpp-cpu; macOS is CPU-only.C++ workflows require Linux or WSL and C++20.
QPU workflows require provider-specific credentials and accounts.
Instructions
Invoke with
/cudaq-guide [argument].If no argument is given, display the onboarding menu and ask which topic the user wants.
Use the routing table below to choose the relevant reference file.
Read local CUDA-Q documentation files when the answer depends on a specific CUDA-Q version or backend behavior.
Do not answer Qiskit porting questions from this skill; use
cudaq-importing.
Routing by Argument
| Argument | Action | Reference |
|---|---|---|
install | Walk through Python or C++ installation and validation. | references/onboarding.md |
test-program | Build and run a Bell-state kernel. | references/onboarding.md |
gpu-sim | Select GPU, multi-GPU, tensor-network, or CPU targets. | references/onboarding.md |
qpu | Guide provider selection and credential-safe QPU setup. | references/onboarding.md |
applications | Summarize CUDA-Q application areas and notebooks. | references/onboarding.md |
parallelize | Choose mgpu, mqpu, async dispatch, or distributed observe. | references/onboarding.md |
author | Author CUDA-Q Python kernels, select execution APIs, and debug compiler issues. | references/authoring.md |
| (none) | Print the menu below and ask which topic to explore. | This file |
Menu
CUDA-Q Getting Started
CUDA-Q is NVIDIA's unified quantum-classical programming model for CPUs, GPUs, and QPUs.
Supports Python and C++. Docs: https://nvidia.github.io/cuda-quantum/latest/
Choose a topic:
/cudaq-guide install Install CUDA-Q
/cudaq-guide test-program Write and run a Bell-state kernel
/cudaq-guide gpu-sim Accelerate simulation on NVIDIA GPUs
/cudaq-guide qpu Connect to real QPU hardware
/cudaq-guide applications Explore what you can build
/cudaq-guide parallelize Run across GPUs or QPUs
/cudaq-guide author Author @cudaq.kernel Python codeReference Files
references/onboarding.md: installation, test program, GPU targets, QPU providers, application areas, parallelization modes, examples, and platform troubleshooting.
references/authoring.md: execution APIs, kernel-language constraints, silent-failure pitfalls, recurring coding patterns, resource metrics, debugging, and validation.
Limitations
Guidance targets CUDA-Q Python/C++ workflows, with authoring details focused on decorator-mode Python APIs used in CUDA-Q 0.14 and 0.15.
GPU and multi-GPU support depends on local CUDA-Q, CUDA Toolkit, driver, MPI, and hardware availability.
QPU access and target options are provider-specific and may change; verify against local docs before giving operational steps.
Troubleshooting
Import error after
pip install cudaq: check Python 3.10+ and supported OS.No GPU detected: verify CUDA Toolkit and
nvidia-smi; fall back toqpp-cpu.Kernel compile error: read references/authoring.md and check the restricted kernel-language subset.
Version-specific behavior differs: compare
cudaq.__version__with the latest documentation, then review relevant documentation or source changes when debugging an installed version that is not the latest release.QPU submission fails: verify provider credentials are set as environment variables or through a secrets manager, never hardcoded.
Documentation lookup fails: retry transient MCP or repository lookup once, then fall back to local docs or official CUDA-Q documentation.
Files
- ATTRIBUTION.mdAdded by AutoGineer896 B
- BENCHMARK.md9.2 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md4.9 KiB
- evals/EVAL.md1.9 KiB
- evals/config.yml962 B
- evals/evals.json9.2 KiB
- references/authoring.md19.6 KiB
- references/onboarding.md8.0 KiB
- skill-card.md3.9 KiB
- skill.oms.sig5.4 KiB
references/onboarding.md
CUDA-Q Onboarding Reference
Use this reference for /cudaq-guide install, test-program, gpu-sim,
qpu, applications, and parallelize.
Documentation Map
| Section | Doc file |
|---|---|
| Install | docs/sphinx/using/install/install.rst, docs/sphinx/using/quick_start.rst |
| Test Program | docs/sphinx/using/basics/kernel_intro.rst, docs/sphinx/using/basics/build_kernel.rst |
| GPU Simulation | docs/sphinx/using/backends/sims/svsims.rst, docs/sphinx/using/examples/multi_gpu_workflows.rst |
| QPU | docs/sphinx/using/backends/hardware.rst, docs/sphinx/using/backends/cloud.rst |
| Applications | docs/sphinx/using/applications.rst |
| Parallelize | docs/sphinx/using/examples/multi_gpu_workflows.rst |
Install
Instructions:
Default to Python installation unless the user explicitly mentions C++ or the
nvq++compiler.After installation, always guide the user through validation with the Bell state example and confirm output shows roughly
{ 00:~500 11:~500 }.Default to GPU-accelerated targets (
nvidia) unless the user is on macOS/Apple Silicon, mentions no GPU, or explicitly asks for CPU-only simulation. In those cases useqpp-cpu.Do not suggest cloud options unless the user has no local environment, asks about cloud access, or needs classroom/workshop access for students.
Platform notes:
Linux x86_64 or ARM64: full GPU support with
pip install cudaqplus CUDA Toolkit.macOS ARM64/Apple Silicon: CPU simulation only with
pip install cudaq; no CUDA Toolkit needed.Windows: use WSL, then follow Linux instructions.
C++ without sudo:
bash install_cuda_quantum*.$(uname -m) --accept -- --installpath $HOME/.cudaqBrev cloud workspace: log in at the NVIDIA Application Hub, open a CUDA-Q workspace, then SSH in with the Brev CLI:
brev open ${WORKSPACE_NAME}CUDA-Q and the CUDA Toolkit are pre-installed.
Classroom / academic access:
When the user is teaching a course or running a workshop and students need access without local setup, recommend:
Brev academic workspaces: same NVIDIA Application Hub / Brev CLI flow as above, with CUDA-Q pre-installed.
CUDA-Q Academic (https://github.com/NVIDIA/cuda-q-academic): ready-made course notebooks runnable locally or in the cloud via qBraid, CoCalc, or Google Colab (see
docs/sphinx/using/quick_start.rst).Amazon Braket notebook instances: managed cloud notebooks with CUDA-Q available, useful when the class also targets Braket QPUs.
Test Program
Key concepts to explain:
@cudaq.kernel/__qpu__marks a quantum kernel compiled to Quake MLIR.cudaq.qvector(N)allocates N qubits in|0>.cudaq.sample()runs a measured kernel and returns a bitstring histogram (SampleResult).cudaq.run()runs a kernel with a classical return valueshots_counttimes and returns the list of those return values.cudaq.observe()computes expectation value<H>for a spin operator.cudaq.get_state()returns the full statevector on simulators.
Kernel restrictions:
Only a restricted Python subset is valid inside a kernel; it compiles to Quake MLIR, not normal Python.
NumPy and SciPy cannot be used inside a kernel. Use them outside kernels for classical pre/post-processing.
Kernels can call other kernels, but the callee must also be a CUDA-Q kernel.
For compiler internals (inspect module -> ast_bridge.py -> Quake MLIR ->
QIR -> JIT), route to /cudaq-compiler if that skill is available.
GPU Simulation
To recommend the best simulation backend, consult the latest CUDA-Q simulator backend table and detailed backend sections: https://nvidia.github.io/cuda-quantum/latest/using/backends/simulators.html.
QPU
Do not dump all providers at once. Use a two-step dialogue.
Step 1: ask which technology they want:
Which QPU technology are you targeting?
1. Ion trap (IonQ, Quantinuum)
2. Superconducting (IQM, OQC, Anyon, TII)
3. Neutral atom (QuEra, Infleqtion, Pasqal)
4. Cloud / multi-platform (AWS Braket, Scaleway)Step 2: once they pick a technology, ask which provider, then use the latest CUDA-Q provider listings and examples:
Hardware provider index: https://nvidia.github.io/cuda-quantum/latest/using/backends/hardware.html
Cloud backend index: https://nvidia.github.io/cuda-quantum/latest/using/backends/cloud.html
Provider examples: https://nvidia.github.io/cuda-quantum/latest/using/examples/hardware_providers.html
Then walk through that provider's setup steps.
After walking through the provider steps, always close with:
Test locally first with
emulate=Truebefore submitting to hardware.Use
cudaq.sample_async()/cudaq.observe_async()for non-blocking submission.Handle provider credentials securely: export them as environment variables in the shell session, or use a local profile or secrets manager that is not committed. Never paste tokens into shared files, logs, notebooks, or commits.
Applications
CUDA-Q ships with ready-to-run application notebooks.
| Category | Examples |
|---|---|
| Optimization | QAOA, ADAPT-QAOA, MaxCut |
| Chemistry | VQE, UCCSD, ADAPT-VQE |
| Error Correction | Surface codes, QEC memory |
| Algorithms | Grover's, Shor's, QFT, Deutsch-Jozsa, HHL |
| ML | Quantum neural networks, kernel methods |
| Simulation | Hamiltonian dynamics, Trotter evolution |
| Finance | Portfolio optimization, Monte Carlo |
Parallelize
CUDA-Q supports two distinct multi-GPU parallelization strategies. Pick based on what the user is trying to scale.
| Goal | Strategy | Target option |
|---|---|---|
| Single circuit too large for one GPU | Pool GPU memory | nvidia --target-option mgpu |
| Many independent circuits at once | Run circuits in parallel | nvidia --target-option mqpu |
| Large Hamiltonian expectation value | Distribute terms across GPUs | mqpu plus execution=cudaq.parallel.thread |
Circuit batching with mqpu
The mqpu option maps one virtual QPU to each GPU. Dispatch circuits
asynchronously with qpu_id to all GPUs simultaneously.
import cudaq
cudaq.set_target("nvidia", option="mqpu")
n_qpus = cudaq.get_platform().num_qpus()
futures = [
cudaq.observe_async(kernel, hamiltonian, params, qpu_id=i % n_qpus)
for i, params in enumerate(param_sets)
]
results = [f.get().expectation() for f in futures]Hamiltonian batching
For a single kernel with a large Hamiltonian, add execution= to
cudaq.observe; no other code change is needed.
# Single node, multiple GPUs
result = cudaq.observe(kernel, hamiltonian, *args,
execution=cudaq.parallel.thread)
# Multi-node via MPI
result = cudaq.observe(kernel, hamiltonian, *args,
execution=cudaq.parallel.mpi)See the CUDA-Q docs for complete working examples of both patterns.
Invocation Examples
/cudaq-guide: print the onboarding menu and ask which topic to explore./cudaq-guide install: walk through installation, defaulting to Pythonpip install cudaq, then validate with the Bell state example./cudaq-guide test-program: build and run a Bell state kernel and confirm output shows roughly{ 00:~500 11:~500 }./cudaq-guide gpu-sim: recommend a simulation backend, such asnvidiafor one GPU ornvidia --target-option mgpufor circuits larger than one GPU's memory./cudaq-guide qpu: start the two-step QPU dialogue and read the matching hardware doc./cudaq-guide parallelize: choose betweenmgpufor pooled memory andmqpufor many independent circuits./cudaq-guide author: route toreferences/authoring.md.
Platform Troubleshooting
Import error after
pip install cudaq: ensure Python 3.10+ and a supported OS, Linux or macOS.No GPU detected: verify CUDA Toolkit and
nvidia-smi; fall back toqpp-cpu.Multi-GPU
mgpufails: verify MPI availability and CUDA-Q target support.QPU submission fails: confirm credentials are set as environment variables or through the provider mechanism documented in local CUDA-Q docs.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
The author says: Python 3.10+, C++ 20
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- CUDA-Q Team
- Publisher
- NVIDIA (Official)
- Distributed by
- NVIDIA
- Source
- NVIDIA/skills · skills/cudaq-guide · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by CUDA-Q Team or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download cudaq-guide.zip