diff --git a/pr-2520/applications/python/deutschs_algorithm.html b/pr-2520/applications/python/deutschs_algorithm.html index e94137d2e3..e88e07a022 100644 --- a/pr-2520/applications/python/deutschs_algorithm.html +++ b/pr-2520/applications/python/deutschs_algorithm.html @@ -804,7 +804,7 @@
Suppose we have \(f(x): \{0,1\} \longrightarrow \{0,1\}\). We can compute this function on a quantum computer using oracles which we treat as black box functions that yield the output with an appropriate sequence of logical gates.
Above you see an oracle represented as \(U_f\) which allows us to transform the state \(\ket{x}\ket{y}\) into:
Our aim is to find out if \(f: \{0,1\} \longrightarrow \{0,1\}\) is a constant or a balanced function? If constant, \(f(0) = f(1)\), and if balanced, \(f(0) \neq f(1)\).
We step through the circuit diagram below and follow the math after the application of each gate.
-Gate fusion is an optimization technique where consecutive gates are combined into a single gate operation to improve the efficiency of the simulation (See figure below). By targeting the nvidia-mgpu
backend and setting the CUDAQ_MGPU_FUSE
environment variable, you can select the degree of fusion that takes place. A full command line example would look like CUDAQ_MGPU_FUSE=4 python c2h2VQE.py --target nvidia --target-option fp64,mgpu
The importance of gate fusion is system dependent, but can have a large influence on the performance of the simulation. See the example below for a 24 qubit VQE experiment where changing the fusion level resulted in significant performance boosts.
-