cuda-quantum icon indicating copy to clipboard operation
cuda-quantum copied to clipboard

[refactoring] [Python] Replace `MidCircuitMeasurementAnalyzer` with existing `quake-add-metadata` pass

Open khalatepradnya opened this issue 1 year ago • 1 comments

This analysis pass may actually be a relic from the original implementation - originally we had a library mode for Python and this pass was necessary to inform the runtime that the kernel had mid circuit measurement. We can probably drop it now for the MLIR pass. But you will have to update sample.py to check the Module attribute instead of the python kernel metadata attribute.

Originally posted by @amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/1994#discussion_r1688797509

khalatepradnya avatar Jul 24 '24 16:07 khalatepradnya

Started implementation here - https://github.com/NVIDIA/cuda-quantum/pull/1994/commits/59ec10d33126069a80c3f214ac73fadc32c79547

(Remaining work - analyze failing tests related to State)

khalatepradnya avatar Jul 24 '24 16:07 khalatepradnya

I have a minimal example that was discussed with @bmhowe23

# minimal example
import os

os.environ["CUDAQ_LOG_LEVEL"] = "trace"

import cudaq
print(cudaq.__version__)

cudaq.set_target("qpp-cpu")

@cudaq.kernel()
def function_with_return() -> bool:
    q = cudaq.qvector(2)
    bit0 = mz(q[0])
    # x(q[1])
    bit1 = mz(q[1])
    flag_bit = (bit0 or bit1)
    if not flag_bit:
        reset(q[0])
        h(q[0])
        mx(q[0])
    return flag_bit


print(function_with_return())
counts = cudaq.sample(function_with_return, shots_count=100)
counts.dump()
exit(0)

The flag_bit should be 0 (unless one uncomments the x gate) and that should trigger the if statement to create a |+> state on qubit zero.

When calling the kernel I can see that the flag_bit returned value is False

[2025-03-06 03:53:38.036] [info] [LinkedLibraryHolder.cpp:205] Init infrastructure for pythonic builder.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target anyon with config file anyon.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: anyon -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target braket with config file braket.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: braket -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target density-matrix-cpu with config file density-matrix-cpu.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use dm simulator for target density-matrix-cpu
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: density-matrix-cpu -> (sim=dm, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target dynamics with config file dynamics.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use dynamics simulator for target dynamics
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: dynamics -> (sim=dynamics, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target fermioniq with config file fermioniq.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: fermioniq -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target infleqtion with config file infleqtion.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: infleqtion -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target ionq with config file ionq.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: ionq -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target iqm with config file iqm.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: iqm -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-fp64 with config file nvidia-fp64.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp64 simulator for target nvidia-fp64
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-fp64 -> (sim=cusvsim_fp64, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mgpu with config file nvidia-mgpu.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use nvidia-mgpu simulator for target nvidia-mgpu
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mgpu -> (sim=nvidia_mgpu, platform=default)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu-fp64 with config file nvidia-mqpu-fp64.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp64 simulator for target nvidia-mqpu-fp64
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu-fp64 -> (sim=cusvsim_fp64, platform=mqpu)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu-mps with config file nvidia-mqpu-mps.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:135] Use tensornet-mps simulator for target nvidia-mqpu-mps
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu-mps -> (sim=tensornet_mps, platform=mqpu)
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu with config file nvidia-mqpu.yml
[2025-03-06 03:53:38.037] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target nvidia-mqpu
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu -> (sim=cusvsim_fp32, platform=mqpu)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia with config file nvidia.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target nvidia
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia -> (sim=cusvsim_fp32, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target nvqc with config file nvqc.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvqc -> (sim=qpp, platform=mqpu)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target opt-test with config file opt-test.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target opt-test
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: opt-test -> (sim=cusvsim_fp32, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target oqc with config file oqc.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: oqc -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target orca-photonics with config file orca-photonics.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: orca-photonics -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target orca with config file orca.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: orca -> (sim=qpp, platform=mqpu)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target pasqal with config file pasqal.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: pasqal -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target qpp-cpu with config file qpp-cpu.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: qpp-cpu -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target quantinuum with config file quantinuum.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: quantinuum -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target quera with config file quera.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: quera -> (sim=qpp, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target remote-mqpu with config file remote-mqpu.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: remote-mqpu -> (sim=qpp, platform=mqpu)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target stim with config file stim.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use stim simulator for target stim
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: stim -> (sim=stim, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target tensornet-mps with config file tensornet-mps.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use tensornet-mps simulator for target tensornet-mps
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: tensornet-mps -> (sim=tensornet_mps, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:185] Found Target tensornet with config file tensornet.yml
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:135] Use tensornet simulator for target tensornet
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:195] Found Target: tensornet -> (sim=tensornet, platform=default)
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:230] Init: Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:242] Init: add dynamic library path /usr/local/lib/python3.10/dist-packages/cuquantum/lib/libcustatevec.so.1.
[2025-03-06 03:53:38.038] [info] [LinkedLibraryHolder.cpp:242] Init: add dynamic library path /usr/local/lib/python3.10/dist-packages/cuquantum/lib/libcutensornet.so.2.
[2025-03-06 03:53:38.105] [info] [LinkedLibraryHolder.cpp:322] Found platform plugin default.
[2025-03-06 03:53:38.106] [info] [LinkedLibraryHolder.cpp:322] Found platform plugin mqpu.
[2025-03-06 03:53:38.107] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_fp32.
[2025-03-06 03:53:38.107] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_fp64.
[2025-03-06 03:53:38.107] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_kernels.
[2025-03-06 03:53:38.107] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'cusvsim_fp32' from /opt/nvidia/cudaq/lib/libnvqir-cusvsim-fp32.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:53:38.107] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'cusvsim_fp64' from /opt/nvidia/cudaq/lib/libnvqir-cusvsim-fp64.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:53:38.108] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin dm.
[2025-03-06 03:53:38.108] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin dynamics.
[2025-03-06 03:53:38.109] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'nvidia_mgpu_fp32' from /opt/nvidia/cudaq/lib/libnvqir-nvidia-mgpu-fp32.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:53:38.109] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'nvidia_mgpu' from /opt/nvidia/cudaq/lib/libnvqir-nvidia-mgpu.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:53:38.109] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin qpp.
[2025-03-06 03:53:38.110] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin stim.
[2025-03-06 03:53:38.110] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin tensornet_mps.
[2025-03-06 03:53:38.111] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin tensornet.
[2025-03-06 03:53:38.111] [info] [LinkedLibraryHolder.cpp:44] nvidia-smi: command not found
[2025-03-06 03:53:38.111] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:38.111] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:53:38.111] [info] [LinkedLibraryHolder.cpp:455] Setting target=qpp-cpu (sim=qpp, platform=default)
[2025-03-06 03:53:38.111] [info] [PluginUtils.h:24] Requesting N5nvqir16CircuitSimulatorE plugin via symbol name getCircuitSimulator_qpp.
[2025-03-06 03:53:38.111] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:53:38.111] [info] [NVQIR.cpp:70] [runtime] Setting the circuit simulator to qpp.
[2025-03-06 03:53:38.111] [info] [PluginUtils.h:24] Requesting N5cudaq16quantum_platformE plugin via symbol name getQuantumPlatform_default.
[2025-03-06 03:53:38.111] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:53:38.112] [info] [DefaultQuantumPlatform.cpp:88] Backend string is qpp-cpu
[2025-03-06 03:53:38.112] [info] [DefaultQuantumPlatform.cpp:105] Config file path = /opt/nvidia/cudaq/targets/qpp-cpu.yml
[2025-03-06 03:53:38.112] [info] [quantum_platform.cpp:37] external caller setting the platform.
[2025-03-06 03:53:38.112] [info] [execution_manager.cpp:21] external caller clearing the execution manager.
[2025-03-06 03:53:39.214] [info] [CUDAQuantumExtension.cpp:70] Calling initialize_cudaq.
CUDA-Q Version cu12-latest (https://github.com/NVIDIA/cuda-quantum e2e5b64ea61e54a7927f4313e3b93e77c0a9049e)
[2025-03-06 03:53:39.214] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:53:39.214] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:53:39.214] [info] [LinkedLibraryHolder.cpp:455] Setting target=qpp-cpu (sim=qpp, platform=default)
[2025-03-06 03:53:39.214] [info] [PluginUtils.h:24] Requesting N5nvqir16CircuitSimulatorE plugin via symbol name getCircuitSimulator_qpp.
[2025-03-06 03:53:39.214] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:53:39.214] [info] [NVQIR.cpp:70] [runtime] Setting the circuit simulator to qpp.
[2025-03-06 03:53:39.214] [info] [PluginUtils.h:24] Requesting N5cudaq16quantum_platformE plugin via symbol name getQuantumPlatform_default.
[2025-03-06 03:53:39.214] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:53:39.214] [info] [DefaultQuantumPlatform.cpp:88] Backend string is qpp-cpu
[2025-03-06 03:53:39.214] [info] [DefaultQuantumPlatform.cpp:105] Config file path = /opt/nvidia/cudaq/targets/qpp-cpu.yml
[2025-03-06 03:53:39.214] [info] [quantum_platform.cpp:37] external caller setting the platform.
[2025-03-06 03:53:39.214] [info] [execution_manager.cpp:21] external caller clearing the execution manager.
[2025-03-06 03:53:39.230] [trace] - [py_alt_launch_kernel.cpp:94] jitAndCreateArgs - execute passes executed in 9.391 ms. (args = {function_with_return})
[2025-03-06 03:53:39.235] [trace] [py_alt_launch_kernel.cpp:74] jitAndCreateArgs executed in 14.628 ms. (args = {function_with_return})
[2025-03-06 03:53:39.235] [info] [CircuitSimulator.h:979] Allocating 2 new qubits.
[2025-03-06 03:53:39.235] [trace] -- [NVQIR.cpp:263] NVQIR::qubit_allocate_array executed in 0.071 ms. (args = {2})
[2025-03-06 03:53:39.236] [info] [QppCircuitSimulator.cpp:287] Measured qubit 1 -> 0
[2025-03-06 03:53:39.236] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.6 ms. (args = {0, bit0})
[2025-03-06 03:53:39.236] [info] [QppCircuitSimulator.cpp:287] Measured qubit 0 -> 0
[2025-03-06 03:53:39.236] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.123 ms. (args = {1, bit1})
[2025-03-06 03:53:39.237] [trace] -- [NVQIR.cpp:558] NVQIR::reset executed in 0.435 ms. (args = {0})
[2025-03-06 03:53:39.237] [info] [CircuitSimulator.h:1275] (apply) h(0)
[2025-03-06 03:53:39.237] [trace] -- [NVQIR.cpp:427] NVQIR::h executed in 0.086 ms. (args = {0})
[2025-03-06 03:53:39.237] [info] [CircuitSimulator.h:1275] (apply) h(0)
[2025-03-06 03:53:39.237] [trace] -- [NVQIR.cpp:427] NVQIR::h executed in 0.007 ms. (args = {0})
[2025-03-06 03:53:39.238] [info] [QppCircuitSimulator.cpp:287] Measured qubit 1 -> 0
[2025-03-06 03:53:39.238] [trace] -- [NVQIR.cpp:566] NVQIR::mz executed in 0.871 ms. (args = {0})
[2025-03-06 03:53:39.238] [info] [CircuitSimulator.h:1051] Deallocating qubit 0
[2025-03-06 03:53:39.239] [info] [CircuitSimulator.h:1051] Deallocating qubit 1
[2025-03-06 03:53:39.239] [info] [CircuitSimulator.h:1063] Deallocated all qubits, reseting state vector.
[2025-03-06 03:53:39.239] [trace] -- [NVQIR.cpp:365] NVQIR::qubit_release_array executed in 1.39 ms. (args = {2})
[2025-03-06 03:53:39.239] [trace] - [DefaultQuantumPlatform.cpp:40] QPU::launchKernel executed in 3.679 ms.
[2025-03-06 03:53:39.239] [trace] [quantum_platform.cpp:226] altLaunchKernel executed in 3.694 ms. (args = {function_with_return, 1})
False

and I can see from the trace above that the gates in the if statements were executed.

The behavior changes when I use the primitive cudaq.sample , and I get

[2025-03-06 03:53:39.239] [info] [DefaultExecutionManager.cpp:267] [DefaultExecutionManager] Creating the qpp backend.
[2025-03-06 03:53:39.239] [info] [CircuitSimulator.h:1205] Setting current circuit name to 
[2025-03-06 03:53:39.239] [trace] [DefaultQuantumPlatform.cpp:46] DefaultPlatform::setExecutionContext executed in 0.066 ms. (args = {sample})
[2025-03-06 03:53:39.240] [trace] [py_alt_launch_kernel.cpp:74] jitAndCreateArgs executed in 0.085 ms. (args = {function_with_return})
[2025-03-06 03:53:39.240] [info] [cudaq.cpp:230] Replacing code for kernel function_with_return
[2025-03-06 03:53:39.240] [info] [CircuitSimulator.h:979] Allocating 2 new qubits.
[2025-03-06 03:53:39.240] [trace] -- [NVQIR.cpp:263] NVQIR::qubit_allocate_array executed in 0.013 ms. (args = {2})
[2025-03-06 03:53:39.240] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.019 ms. (args = {0, bit0})
[2025-03-06 03:53:39.240] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.002 ms. (args = {1, bit1})
[2025-03-06 03:53:39.240] [info] [CircuitSimulator.h:1046] Deferring qubit 0 deallocation
[2025-03-06 03:53:39.240] [info] [CircuitSimulator.h:1046] Deferring qubit 1 deallocation
[2025-03-06 03:53:39.240] [trace] -- [NVQIR.cpp:365] NVQIR::qubit_release_array executed in 0.007 ms. (args = {2})
[2025-03-06 03:53:39.240] [trace] - [DefaultQuantumPlatform.cpp:40] QPU::launchKernel executed in 0.137 ms.
[2025-03-06 03:53:39.240] [trace] [quantum_platform.cpp:226] altLaunchKernel executed in 0.142 ms. (args = {function_with_return, 1})
[2025-03-06 03:53:39.240] [info] [CircuitSimulator.h:720] Sampling the current state, with measure qubits = [0, 1]
[2025-03-06 03:53:39.240] [info] [CircuitSimulator.h:1190] Deallocated all qubits, reseting state vector.
[2025-03-06 03:53:39.240] [trace] - [BasicExecutionManager.h:108] BasicExecutionManager::resetExecutionContext executed in 0.27 ms.
[2025-03-06 03:53:39.240] [trace] [DefaultQuantumPlatform.cpp:58] DefaultPlatform::resetExecutionContext executed in 0.281 ms. (args = {sample})
{ 
  __global__ : { 00:100 }
   bit0 : { 0:100 }
   bit1 : { 0:100 }
}

in the same session. The trace for the kernel during the sample call is very different. The output clearly shows the gates in the if statement were not implemented.

Another problem occurs when removing the not in the if statement. Using if flag_bit: instead of if not flag_bit results in the if statement block to be implemented EVEN THOUGH flag_bit is False!

[2025-03-06 03:57:01.016] [info] [LinkedLibraryHolder.cpp:205] Init infrastructure for pythonic builder.
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target anyon with config file anyon.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: anyon -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target braket with config file braket.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: braket -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target density-matrix-cpu with config file density-matrix-cpu.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:135] Use dm simulator for target density-matrix-cpu
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: density-matrix-cpu -> (sim=dm, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target dynamics with config file dynamics.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:135] Use dynamics simulator for target dynamics
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: dynamics -> (sim=dynamics, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target fermioniq with config file fermioniq.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: fermioniq -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target infleqtion with config file infleqtion.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: infleqtion -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target ionq with config file ionq.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: ionq -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target iqm with config file iqm.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: iqm -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-fp64 with config file nvidia-fp64.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp64 simulator for target nvidia-fp64
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-fp64 -> (sim=cusvsim_fp64, platform=default)
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mgpu with config file nvidia-mgpu.yml
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:135] Use nvidia-mgpu simulator for target nvidia-mgpu
[2025-03-06 03:57:01.017] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mgpu -> (sim=nvidia_mgpu, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu-fp64 with config file nvidia-mqpu-fp64.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp64 simulator for target nvidia-mqpu-fp64
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu-fp64 -> (sim=cusvsim_fp64, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu-mps with config file nvidia-mqpu-mps.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use tensornet-mps simulator for target nvidia-mqpu-mps
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu-mps -> (sim=tensornet_mps, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia-mqpu with config file nvidia-mqpu.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target nvidia-mqpu
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia-mqpu -> (sim=cusvsim_fp32, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target nvidia with config file nvidia.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target nvidia
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvidia -> (sim=cusvsim_fp32, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target nvqc with config file nvqc.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: nvqc -> (sim=qpp, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target opt-test with config file opt-test.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use cusvsim-fp32 simulator for target opt-test
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: opt-test -> (sim=cusvsim_fp32, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target oqc with config file oqc.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: oqc -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target orca-photonics with config file orca-photonics.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: orca-photonics -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target orca with config file orca.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: orca -> (sim=qpp, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target pasqal with config file pasqal.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: pasqal -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target qpp-cpu with config file qpp-cpu.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: qpp-cpu -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target quantinuum with config file quantinuum.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: quantinuum -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target quera with config file quera.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: quera -> (sim=qpp, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target remote-mqpu with config file remote-mqpu.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: remote-mqpu -> (sim=qpp, platform=mqpu)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target stim with config file stim.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use stim simulator for target stim
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: stim -> (sim=stim, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target tensornet-mps with config file tensornet-mps.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use tensornet-mps simulator for target tensornet-mps
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: tensornet-mps -> (sim=tensornet_mps, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:185] Found Target tensornet with config file tensornet.yml
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:135] Use tensornet simulator for target tensornet
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:195] Found Target: tensornet -> (sim=tensornet, platform=default)
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:230] Init: Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:242] Init: add dynamic library path /usr/local/lib/python3.10/dist-packages/cuquantum/lib/libcustatevec.so.1.
[2025-03-06 03:57:01.018] [info] [LinkedLibraryHolder.cpp:242] Init: add dynamic library path /usr/local/lib/python3.10/dist-packages/cuquantum/lib/libcutensornet.so.2.
[2025-03-06 03:57:01.069] [info] [LinkedLibraryHolder.cpp:322] Found platform plugin default.
[2025-03-06 03:57:01.069] [info] [LinkedLibraryHolder.cpp:322] Found platform plugin mqpu.
[2025-03-06 03:57:01.070] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_fp32.
[2025-03-06 03:57:01.070] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_fp64.
[2025-03-06 03:57:01.070] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin custatevec_kernels.
[2025-03-06 03:57:01.071] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'cusvsim_fp32' from /opt/nvidia/cudaq/lib/libnvqir-cusvsim-fp32.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:57:01.071] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'cusvsim_fp64' from /opt/nvidia/cudaq/lib/libnvqir-cusvsim-fp64.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:57:01.071] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin dm.
[2025-03-06 03:57:01.072] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin dynamics.
[2025-03-06 03:57:01.072] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'nvidia_mgpu_fp32' from /opt/nvidia/cudaq/lib/libnvqir-nvidia-mgpu-fp32.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:57:01.072] [info] [LinkedLibraryHolder.cpp:293] Failed to load NVQIR backend 'nvidia_mgpu' from /opt/nvidia/cudaq/lib/libnvqir-nvidia-mgpu.so. Error: libnvidia-ml.so.1: cannot open shared object file: No such file or directory
[2025-03-06 03:57:01.072] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin qpp.
[2025-03-06 03:57:01.073] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin stim.
[2025-03-06 03:57:01.074] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin tensornet_mps.
[2025-03-06 03:57:01.074] [info] [LinkedLibraryHolder.cpp:301] Found simulator plugin tensornet.
[2025-03-06 03:57:01.075] [info] [LinkedLibraryHolder.cpp:44] nvidia-smi: command not found
[2025-03-06 03:57:01.075] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:01.075] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:57:01.075] [info] [LinkedLibraryHolder.cpp:455] Setting target=qpp-cpu (sim=qpp, platform=default)
[2025-03-06 03:57:01.075] [info] [PluginUtils.h:24] Requesting N5nvqir16CircuitSimulatorE plugin via symbol name getCircuitSimulator_qpp.
[2025-03-06 03:57:01.075] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:57:01.075] [info] [NVQIR.cpp:70] [runtime] Setting the circuit simulator to qpp.
[2025-03-06 03:57:01.075] [info] [PluginUtils.h:24] Requesting N5cudaq16quantum_platformE plugin via symbol name getQuantumPlatform_default.
[2025-03-06 03:57:01.075] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:57:01.075] [info] [DefaultQuantumPlatform.cpp:88] Backend string is qpp-cpu
[2025-03-06 03:57:01.075] [info] [DefaultQuantumPlatform.cpp:105] Config file path = /opt/nvidia/cudaq/targets/qpp-cpu.yml
[2025-03-06 03:57:01.075] [info] [quantum_platform.cpp:37] external caller setting the platform.
[2025-03-06 03:57:01.075] [info] [execution_manager.cpp:21] external caller clearing the execution manager.
[2025-03-06 03:57:02.197] [info] [CUDAQuantumExtension.cpp:70] Calling initialize_cudaq.
CUDA-Q Version cu12-latest (https://github.com/NVIDIA/cuda-quantum e2e5b64ea61e54a7927f4313e3b93e77c0a9049e)
[2025-03-06 03:57:02.197] [info] [LinkedLibraryHolder.cpp:129] CUDA-Q Library Path is /opt/nvidia/cudaq/lib.
[2025-03-06 03:57:02.197] [info] [LinkedLibraryHolder.cpp:135] Use qpp simulator for target qpp-cpu
[2025-03-06 03:57:02.197] [info] [LinkedLibraryHolder.cpp:455] Setting target=qpp-cpu (sim=qpp, platform=default)
[2025-03-06 03:57:02.197] [info] [PluginUtils.h:24] Requesting N5nvqir16CircuitSimulatorE plugin via symbol name getCircuitSimulator_qpp.
[2025-03-06 03:57:02.197] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:57:02.197] [info] [NVQIR.cpp:70] [runtime] Setting the circuit simulator to qpp.
[2025-03-06 03:57:02.197] [info] [PluginUtils.h:24] Requesting N5cudaq16quantum_platformE plugin via symbol name getQuantumPlatform_default.
[2025-03-06 03:57:02.197] [info] [PluginUtils.h:36] Successfully loaded the plugin.
[2025-03-06 03:57:02.197] [info] [DefaultQuantumPlatform.cpp:88] Backend string is qpp-cpu
[2025-03-06 03:57:02.197] [info] [DefaultQuantumPlatform.cpp:105] Config file path = /opt/nvidia/cudaq/targets/qpp-cpu.yml
[2025-03-06 03:57:02.197] [info] [quantum_platform.cpp:37] external caller setting the platform.
[2025-03-06 03:57:02.197] [info] [execution_manager.cpp:21] external caller clearing the execution manager.
[2025-03-06 03:57:02.213] [trace] - [py_alt_launch_kernel.cpp:94] jitAndCreateArgs - execute passes executed in 9.121 ms. (args = {function_with_return})
[2025-03-06 03:57:02.218] [trace] [py_alt_launch_kernel.cpp:74] jitAndCreateArgs executed in 14.59 ms. (args = {function_with_return})
[2025-03-06 03:57:02.218] [info] [CircuitSimulator.h:979] Allocating 2 new qubits.
[2025-03-06 03:57:02.218] [trace] -- [NVQIR.cpp:263] NVQIR::qubit_allocate_array executed in 0.161 ms. (args = {2})
[2025-03-06 03:57:02.219] [info] [QppCircuitSimulator.cpp:287] Measured qubit 1 -> 0
[2025-03-06 03:57:02.219] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.526 ms. (args = {0, bit0})
[2025-03-06 03:57:02.219] [info] [QppCircuitSimulator.cpp:287] Measured qubit 0 -> 0
[2025-03-06 03:57:02.219] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.228 ms. (args = {1, bit1})
[2025-03-06 03:57:02.219] [info] [CircuitSimulator.h:1051] Deallocating qubit 0
[2025-03-06 03:57:02.220] [info] [CircuitSimulator.h:1051] Deallocating qubit 1
[2025-03-06 03:57:02.220] [info] [CircuitSimulator.h:1063] Deallocated all qubits, reseting state vector.
[2025-03-06 03:57:02.220] [trace] -- [NVQIR.cpp:365] NVQIR::qubit_release_array executed in 1.169 ms. (args = {2})
[2025-03-06 03:57:02.220] [trace] - [DefaultQuantumPlatform.cpp:40] QPU::launchKernel executed in 2.214 ms.
[2025-03-06 03:57:02.220] [trace] [quantum_platform.cpp:226] altLaunchKernel executed in 2.229 ms. (args = {function_with_return, 1})
False
[2025-03-06 03:57:02.221] [info] [DefaultExecutionManager.cpp:267] [DefaultExecutionManager] Creating the qpp backend.
[2025-03-06 03:57:02.221] [info] [CircuitSimulator.h:1205] Setting current circuit name to 
[2025-03-06 03:57:02.221] [trace] [DefaultQuantumPlatform.cpp:46] DefaultPlatform::setExecutionContext executed in 0.071 ms. (args = {sample})
[2025-03-06 03:57:02.221] [trace] [py_alt_launch_kernel.cpp:74] jitAndCreateArgs executed in 0.039 ms. (args = {function_with_return})
[2025-03-06 03:57:02.221] [info] [cudaq.cpp:230] Replacing code for kernel function_with_return
[2025-03-06 03:57:02.221] [info] [CircuitSimulator.h:979] Allocating 2 new qubits.
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:263] NVQIR::qubit_allocate_array executed in 0.007 ms. (args = {2})
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0.012 ms. (args = {0, bit0})
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:592] NVQIR::mz executed in 0 ms. (args = {1, bit1})
[2025-03-06 03:57:02.221] [info] [CircuitSimulator.h:720] Sampling the current state, with measure qubits = [0, 1]
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:558] NVQIR::reset executed in 0.654 ms. (args = {0})
[2025-03-06 03:57:02.221] [info] [CircuitSimulator.h:1275] (apply) h(0)
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:427] NVQIR::h executed in 0.024 ms. (args = {0})
[2025-03-06 03:57:02.221] [info] [CircuitSimulator.h:1275] (apply) h(0)
[2025-03-06 03:57:02.221] [trace] -- [NVQIR.cpp:427] NVQIR::h executed in 0.002 ms. (args = {0})
[2025-03-06 03:57:02.222] [trace] -- [NVQIR.cpp:566] NVQIR::mz executed in 0.53 ms. (args = {0})
[2025-03-06 03:57:02.222] [info] [CircuitSimulator.h:1046] Deferring qubit 0 deallocation
[2025-03-06 03:57:02.222] [info] [CircuitSimulator.h:1046] Deferring qubit 1 deallocation
[2025-03-06 03:57:02.222] [trace] -- [NVQIR.cpp:365] NVQIR::qubit_release_array executed in 0.025 ms. (args = {2})
[2025-03-06 03:57:02.222] [trace] - [DefaultQuantumPlatform.cpp:40] QPU::launchKernel executed in 1.334 ms.
[2025-03-06 03:57:02.222] [trace] [quantum_platform.cpp:226] altLaunchKernel executed in 1.347 ms. (args = {function_with_return, 1})
[2025-03-06 03:57:02.222] [info] [CircuitSimulator.h:720] Sampling the current state, with measure qubits = [0]
[2025-03-06 03:57:02.222] [info] [CircuitSimulator.h:1190] Deallocated all qubits, reseting state vector.
[2025-03-06 03:57:02.222] [trace] - [BasicExecutionManager.h:108] BasicExecutionManager::resetExecutionContext executed in 0.077 ms.
[2025-03-06 03:57:02.222] [trace] [DefaultQuantumPlatform.cpp:58] DefaultPlatform::resetExecutionContext executed in 0.104 ms. (args = {sample})
{ 
  __global__ : { 0:100 }
   bit0 : { 0:100 }
   bit1 : { 0:100 }
}

erinaldiq avatar Mar 06 '25 03:03 erinaldiq