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.