You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sphinx/examples_rst/qec/realtime_decoding.rst
+19-6Lines changed: 19 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -364,9 +364,20 @@ CUDA-Q QEC's real-time decoding system is designed to work seamlessly across dif
364
364
Simulation Backend
365
365
^^^^^^^^^^^^^^^^^^
366
366
367
-
The simulation backend is the primary tool during development, testing, and algorithm validation. It runs entirely on the local machine, using quantum simulators like Stim to execute circuits while decoders process syndromes in parallel threads. This setup is ideal for rapid iteration: the user can test decoder configurations, validate circuit logic, and debug syndrome processing without waiting for hardware access or paying for compute time.
368
-
369
-
The simulation backend faithfully mimics real-time decoding's concurrent operation - decoders run in separate threads and process syndromes asynchronously, just as they would on hardware. This means code will behave the same way whether testing locally or running on a quantum computer. The main difference is that simulation does not have the same strict latency constraints, making it easier to experiment with complex decoder configurations.
367
+
The simulation backend is the primary tool during development, testing, and
368
+
algorithm validation. It runs entirely on the local machine, using quantum
369
+
simulators like Stim to execute circuits while decoders process syndromes and
370
+
calculation corrections. This setup is ideal for rapid iteration: the user can
371
+
test decoder configurations, validate circuit logic, and debug syndrome
372
+
processing without waiting for hardware access or paying for compute time.
373
+
374
+
The simulation backend mimics real-time decoding's concurrent operation by
375
+
running the decoder(s) within the same process as the simulator. This means that
376
+
other than GPU hardware differences between the local environment and the remote
377
+
NVQLink decoders, the decoders behave the same way whether testing locally or
378
+
running on a quantum computer. The main difference is that simulation does not
379
+
have the same strict latency constraints, making it easier to experiment with
380
+
complex decoder configurations.
370
381
371
382
Use the simulation backend for local development and testing:
372
383
@@ -390,7 +401,8 @@ Use the simulation backend for local development and testing:
390
401
391
402
# Compile with simulation support
392
403
nvq++ -std=c++20 my_circuit.cpp -lcudaq-qec \
393
-
-lcudaq-qec-realtime-simulation
404
+
-lcudaq-qec-realtime-decoding \
405
+
-lcudaq-qec-realtime-decoding-simulation
394
406
395
407
./a.out
396
408
@@ -405,7 +417,7 @@ The Quantinuum hardware backend connects quantum circuits to real ion-trap quant
405
417
406
418
2. **Extra Payload Provider**: The user **must** specify ``extra_payload_provider="decoder"`` when setting the target. This registers a payload provider that injects the decoder configuration UUID into each job request, telling Quantinuum which decoder configuration to use for the circuit.
407
419
408
-
3. **Backend Compilation**: For C++, the user must link against ``-lcudaq-qec-realtime-quantinuum`` instead of the simulation library. This library implements the Quantinuum-specific communication protocol for syndrome transmission.
420
+
3. **Backend Compilation**: For C++, the user must link against ``-lcudaq-qec-realtime-decoding-quantinuum`` instead of the simulation library. This library implements the Quantinuum-specific communication protocol for syndrome transmission.
409
421
410
422
4. **Configuration Lifetime**: Decoder configurations persist on Quantinuum's servers and are referenced by UUID. If the configuration is modified, it must be uploaded again - the system will generate a new UUID and use the new configuration for subsequent jobs.
411
423
@@ -448,7 +460,8 @@ Use the Quantinuum backend for hardware or emulation:
0 commit comments