Generated banner for Cudaq Guide
Generated logo for Cudaq Guide

Cudaq Guide

NVIDIAOfficialCreated by CUDA-Q TeamDistributed by NVIDIA

  • Skill
  • Tool integration
  • Software development
  • Apache-2.0
  • Medium risk

From the author

Use for CUDA-Q setup, simulation targets, QPU access, and @cudaq.kernel authoring guidance.
— the description by CUDA-Q Team

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

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/nvidia/cudaq-guide/download
  2. Unzip 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

ArgumentActionReference
installWalk through Python or C++ installation and validation.references/onboarding.md
test-programBuild and run a Bell-state kernel.references/onboarding.md
gpu-simSelect GPU, multi-GPU, tensor-network, or CPU targets.references/onboarding.md
qpuGuide provider selection and credential-safe QPU setup.references/onboarding.md
applicationsSummarize CUDA-Q application areas and notebooks.references/onboarding.md
parallelizeChoose mgpu, mqpu, async dispatch, or distributed observe.references/onboarding.md
authorAuthor 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 code

Reference 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 to qpp-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

references/onboarding.md

CUDA-Q Onboarding Reference

Use this reference for /cudaq-guide install, test-program, gpu-sim, qpu, applications, and parallelize.

Documentation Map

SectionDoc file
Installdocs/sphinx/using/install/install.rst, docs/sphinx/using/quick_start.rst
Test Programdocs/sphinx/using/basics/kernel_intro.rst, docs/sphinx/using/basics/build_kernel.rst
GPU Simulationdocs/sphinx/using/backends/sims/svsims.rst, docs/sphinx/using/examples/multi_gpu_workflows.rst
QPUdocs/sphinx/using/backends/hardware.rst, docs/sphinx/using/backends/cloud.rst
Applicationsdocs/sphinx/using/applications.rst
Parallelizedocs/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 use qpp-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 cudaq plus 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/.cudaq
  • Brev 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 value shots_count times 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:

Then walk through that provider's setup steps.

After walking through the provider steps, always close with:

  • Test locally first with emulate=True before 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.

CategoryExamples
OptimizationQAOA, ADAPT-QAOA, MaxCut
ChemistryVQE, UCCSD, ADAPT-VQE
Error CorrectionSurface codes, QEC memory
AlgorithmsGrover's, Shor's, QFT, Deutsch-Jozsa, HHL
MLQuantum neural networks, kernel methods
SimulationHamiltonian dynamics, Trotter evolution
FinancePortfolio optimization, Monte Carlo

Parallelize

CUDA-Q supports two distinct multi-GPU parallelization strategies. Pick based on what the user is trying to scale.

GoalStrategyTarget option
Single circuit too large for one GPUPool GPU memorynvidia --target-option mgpu
Many independent circuits at onceRun circuits in parallelnvidia --target-option mqpu
Large Hamiltonian expectation valueDistribute terms across GPUsmqpu 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 Python pip 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 as nvidia for one GPU or nvidia --target-option mgpu for 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 between mgpu for pooled memory and mqpu for many independent circuits.

  • /cudaq-guide author: route to references/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 to qpp-cpu.

  • Multi-GPU mgpu fails: 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