Sampling the tensor network state#

The following code example illustrates how to sample the tensor network state (e.g., sampling the final quantum circuit state). The full code can be found in the NVIDIA/cuQuantum repository (here).

Headers and error handling#

Define the tensor network state and the desired number of output samples to generate#

Let’s define a tensor network state corresponding to a 16-qubit quantum circuit and request to produce 100 output samples for the full qubit register.

Initialize the cuTensorNet library handle#

Define quantum gates on GPU#

Create a pure tensor network state#

Now let’s create a pure tensor network state for a 16-qubit quantum circuit.

Apply quantum gates#

Let’s construct the GHZ quantum circuit by applying the corresponding quantum gates.

Create the tensor network state sampler#

Once the quantum circuit has been constructed, let’s create the tensor network state sampler for the full qubit register (all qubits).

Configure the tensor network state sampler#

Now we can configure the tensor network state sampler by setting the number of hyper-samples to be used by the tensor network contraction path finder.

Prepare the tensor network state sampler#

Let’s create a workspace descriptor and prepare the tensor network state sampler.

Allocate the workspace buffer on GPU and setup the workspace#

Allocate the required scratch workspace buffer, and provide extra buffer for cache workspace.

Perform sampling of the final quantum circuit state#

Once everything had been set up, we perform sampling of the quantum circuit state and print the output samples.

Free resources#