Skip to content

Commit

Permalink
Docs preview for PR #2478.
Browse files Browse the repository at this point in the history
  • Loading branch information
cuda-quantum-bot committed Dec 13, 2024
1 parent d1fc1c4 commit b98e866
Show file tree
Hide file tree
Showing 18 changed files with 100 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[38;2;255;000;000mwarning\u001b[0m] Target \u001b[38;2;000;000;255mnvidia-mqpu\u001b[0m: \u001b[38;2;000;000;255mThis target is deprecating. Please use the 'nvidia' target with option 'mqpu,fp32' or 'mqpu' (fp32 is the default precision option) by adding the command line option '--target-option mqpu,fp32' or passing it as cudaq.set_target('nvidia', option='mqpu,fp32') in Python. Please refer to CUDA-Q \u001b]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform.html#nvidia-mqpu-platform\u001b\\documentation\u001b]8;;\u001b\\ for more information.\u001b[0m\n"
"[\u001b[38;2;255;000;000mwarning\u001b[0m] Target \u001b[38;2;000;000;255mnvidia-mqpu\u001b[0m: \u001b[38;2;000;000;255mThis target is deprecating. Please use the 'nvidia' target with option 'mqpu,fp32' or 'mqpu' (fp32 is the default precision option) by adding the command line option '--target-option mqpu,fp32' or passing it as cudaq.set_target('nvidia', option='mqpu,fp32') in Python. Please refer to CUDA-Q \u001b]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform\u001b\\documentation\u001b]8;;\u001b\\ for more information.\u001b[0m\n"
]
}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"source": [
"Note that there is a subtle difference between how `sample` is executed with the target device set to a simulator or with the target device set to a QPU. In simulation mode, the quantum state is built once and then sampled $s$ times where $s$ equals the `shots_count`. In hardware execution mode, the quantum state collapses upon measurement and hence needs to be rebuilt over and over again.\n",
"\n",
"There are a number of helpful tools that can be found in the API [here](https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api.html#cudaq.SampleResult) to process the `Sample_Result` object produced by `sample`."
"There are a number of helpful tools that can be found in the [API docs](https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api) to process the `Sample_Result` object produced by `sample`."
]
},
{
Expand Down
31 changes: 27 additions & 4 deletions pr-2478/_sources/releases.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,43 @@ CUDA-Q Releases

**latest**

The latest version of CUDA-Q is on the main branch of our `GitHub repository <https://github.com/NVIDIA/cuda-quantum>`__ and is also available as a Docker image. More information about installing the nightly builds can be found :doc:`here <using/install/install>`
The latest version of CUDA-Q is on the main branch of our `GitHub repository <https://github.com/NVIDIA/cuda-quantum>`__
and is also available as a Docker image. More information about installing the nightly builds can be found
:doc:`here <using/install/install>`

- `Docker image (nightly builds) <https://catalog.ngc.nvidia.com/orgs/nvidia/teams/nightly/containers/cuda-quantum>`__
- `Documentation <https://nvidia.github.io/cuda-quantum/latest>`__
- `Examples <https://github.com/NVIDIA/cuda-quantum/tree/main/docs/sphinx/examples>`__

**0.9.0**

We are very excited to share a new toolset added for modeling and manipulating the dynamics of physical systems.
The new API allows to define and execute a time evolution under arbitrary operators. For more information, take
a look at the `docs <https://nvidia.github.io/cuda-quantum/0.9.0/using/backends/dynamics.html>`__.
The 0.9.0 release furthermore includes a range of contribution to add new backends to CUDA-Q, including backends
from `Anyon Technologies <https://nvidia.github.io/cuda-quantum/0.9.0/using/backends/hardware.html#anyon-technologies-anyon-computing>`__,
`Ferimioniq <https://nvidia.github.io/cuda-quantum/0.9.0/using/backends/simulators.html#fermioniq>`__, and
`QuEra Computing <https://nvidia.github.io/cuda-quantum/0.9.0/using/backends/hardware.html#quera-computing>`__,
as well as updates to existing backends from `ORCA <https://nvidia.github.io/cuda-quantum/latest/using/backends/hardware.html#orca-computing>`__
and `OQC <https://nvidia.github.io/cuda-quantum/0.9.0/using/backends/hardware.html#oqc>`__.
We hope you enjoy the new features - also check out our new notebooks and examples to dive into CUDA-Q.

- `Docker image <https://catalog.ngc.nvidia.com/orgs/nvidia/teams/quantum/containers/cuda-quantum>`__
- `Python wheel <https://pypi.org/project/cuda-quantum/0.9.0>`__
- `C++ installer <https://github.com/NVIDIA/cuda-quantum/releases/0.9.0>`__
- `Documentation <https://nvidia.github.io/cuda-quantum/0.9.0>`__
- `Examples <https://github.com/NVIDIA/cuda-quantum/tree/releases/v0.9.0/docs/sphinx/examples>`__

The full change log can be found `here <https://github.com/NVIDIA/cuda-quantum/releases/0.9.0>`__.

**0.8.0**

The 0.8.0 release adds a range of changes to improve the ease of use and performance with CUDA-Q.
The changes listed below highlight some of what we think will be the most useful features and changes
to know about. While the listed changes do not capture all of the great contributions, we would like
to extend many thanks for every contribution, in particular those from external contributors.

- `Docker image <https://catalog.ngc.nvidia.com/orgs/nvidia/teams/quantum/containers/cuda-quantum>`__
- `Docker image <https://catalog.ngc.nvidia.com/orgs/nvidia/teams/quantum/containers/cuda-quantum/tags>`__
- `Python wheel <https://pypi.org/project/cuda-quantum/0.8.0>`__
- `C++ installer <https://github.com/NVIDIA/cuda-quantum/releases/0.8.0>`__
- `Documentation <https://nvidia.github.io/cuda-quantum/0.8.0>`__
Expand All @@ -30,7 +53,7 @@ The full change log can be found `here <https://github.com/NVIDIA/cuda-quantum/r
The 0.7.1 release adds simulator optimizations with significant performance improvements and
extends their functionalities. The `nvidia-mgpu` backend now supports user customization of the
gate fusion level as controlled by the `CUDAQ_MGPU_FUSE` environment variable documented
`here <https://nvidia.github.io/cuda-quantum/latest/using/backends/simulators.html>`__.
`here <https://nvidia.github.io/cuda-quantum/0.7.1/using/backends/simulators.html>`__.
It furthermore adds a range of bug fixes and changes the Python wheel installation instructions.

- `Docker image <https://catalog.ngc.nvidia.com/orgs/nvidia/teams/quantum/containers/cuda-quantum/tags>`__
Expand All @@ -46,7 +69,7 @@ The full change log can be found `here <https://github.com/NVIDIA/cuda-quantum/r
The 0.7.0 release adds support for using :doc:`NVIDIA Quantum Cloud <using/backends/nvqc>`,
giving you access to our most powerful GPU-accelerated simulators even if you don't have an NVIDIA GPU.
With 0.7.0, we have furthermore greatly increased expressiveness of the Python and C++ language frontends.
Check out our `documentation <https://nvidia.github.io/cuda-quantum/latest/using/quick_start.html>`__
Check out our `documentation <https://nvidia.github.io/cuda-quantum/0.7.0/using/quick_start.html>`__
to get started with the new Python syntax support we have added, and `follow our blog <https://developer.nvidia.com/cuda-q>`__
to learn more about the new setup and its performance benefits.

Expand Down
4 changes: 2 additions & 2 deletions pr-2478/applications/python/deutschs_algorithm.html
Original file line number Diff line number Diff line change
Expand Up @@ -804,7 +804,7 @@ <h2>XOR <span class="math notranslate nohighlight">\(\oplus\)</span><a class="he
</section>
<section id="Quantum-oracles">
<h2>Quantum oracles<a class="headerlink" href="#Quantum-oracles" title="Permalink to this heading"></a></h2>
<p><img alt="d9f8dde1bbbe4618813c14c347252277" class="no-scaled-link" src="../../_images/oracle.png" style="width: 300px; height: 150px;" /></p>
<p><img alt="d40c1c45157844ceb3f0459c751a73ea" class="no-scaled-link" src="../../_images/oracle.png" style="width: 300px; height: 150px;" /></p>
<p>Suppose we have <span class="math notranslate nohighlight">\(f(x): \{0,1\} \longrightarrow \{0,1\}\)</span>. 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 logic gates.</p>
<p>Above you see an oracle represented as <span class="math notranslate nohighlight">\(U_f\)</span> which allows us to transform the state <span class="math notranslate nohighlight">\(\ket{x}\ket{y}\)</span> into:</p>
<div class="math notranslate nohighlight">
Expand Down Expand Up @@ -852,7 +852,7 @@ <h2>Quantum parallelism<a class="headerlink" href="#Quantum-parallelism" title="
<h2>Deutschs’ Algorithm:<a class="headerlink" href="#Deutschs'-Algorithm:" title="Permalink to this heading"></a></h2>
<p>Our aim is to find out if <span class="math notranslate nohighlight">\(f: \{0,1\} \longrightarrow \{0,1\}\)</span> is a constant or a balanced function? If constant, <span class="math notranslate nohighlight">\(f(0) = f(1)\)</span>, and if balanced, <span class="math notranslate nohighlight">\(f(0) \neq f(1)\)</span>.</p>
<p>We step through the circuit diagram below and follow the math after the application of each gate.</p>
<p><img alt="c0d2ee3d78e543b4a493ce1df9f69434" class="no-scaled-link" src="../../_images/deutsch.png" style="width: 500px; height: 210px;" /></p>
<p><img alt="1276d38cb3e9415b8b81137601da92f0" class="no-scaled-link" src="../../_images/deutsch.png" style="width: 500px; height: 210px;" /></p>
<div class="math notranslate nohighlight">
\[\ket{\psi_0} = \ket{01}
\tag{1}\]</div>
Expand Down
2 changes: 1 addition & 1 deletion pr-2478/applications/python/vqe_advanced.html
Original file line number Diff line number Diff line change
Expand Up @@ -992,7 +992,7 @@ <h2>Parallel Parameter Shift Gradients<a class="headerlink" href="#Parallel-Para
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
[<span style="color: rgb(255,0,0)">warning</span>] Target <span style="color: rgb(0,0,255)">nvidia-mqpu</span>: <span style="color: rgb(0,0,255)">This target is deprecating. Please use the &#39;nvidia&#39; target with option &#39;mqpu,fp32&#39; or &#39;mqpu&#39; (fp32 is the default precision option) by adding the command line option &#39;--target-option mqpu,fp32&#39; or passing it as cudaq.set_target(&#39;nvidia&#39;, option=&#39;mqpu,fp32&#39;) in Python. Please refer to CUDA-Q ]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform.html#nvidia-mqpu-platform\documentation]8;;\ for more information.</span>
[<span style="color: rgb(255,0,0)">warning</span>] Target <span style="color: rgb(0,0,255)">nvidia-mqpu</span>: <span style="color: rgb(0,0,255)">This target is deprecating. Please use the &#39;nvidia&#39; target with option &#39;mqpu,fp32&#39; or &#39;mqpu&#39; (fp32 is the default precision option) by adding the command line option &#39;--target-option mqpu,fp32&#39; or passing it as cudaq.set_target(&#39;nvidia&#39;, option=&#39;mqpu,fp32&#39;) in Python. Please refer to CUDA-Q ]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform\documentation]8;;\ for more information.</span>
</pre></div></div>
</div>
<p>The cost function needs to be slightly updated to make use of the gradient in the optimization procedure and allow for a gradient based optimizer like L-BFGS-B to be used.</p>
Expand Down
2 changes: 1 addition & 1 deletion pr-2478/applications/python/vqe_advanced.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[\u001b[38;2;255;000;000mwarning\u001b[0m] Target \u001b[38;2;000;000;255mnvidia-mqpu\u001b[0m: \u001b[38;2;000;000;255mThis target is deprecating. Please use the 'nvidia' target with option 'mqpu,fp32' or 'mqpu' (fp32 is the default precision option) by adding the command line option '--target-option mqpu,fp32' or passing it as cudaq.set_target('nvidia', option='mqpu,fp32') in Python. Please refer to CUDA-Q \u001b]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform.html#nvidia-mqpu-platform\u001b\\documentation\u001b]8;;\u001b\\ for more information.\u001b[0m\n"
"[\u001b[38;2;255;000;000mwarning\u001b[0m] Target \u001b[38;2;000;000;255mnvidia-mqpu\u001b[0m: \u001b[38;2;000;000;255mThis target is deprecating. Please use the 'nvidia' target with option 'mqpu,fp32' or 'mqpu' (fp32 is the default precision option) by adding the command line option '--target-option mqpu,fp32' or passing it as cudaq.set_target('nvidia', option='mqpu,fp32') in Python. Please refer to CUDA-Q \u001b]8;;https://nvidia.github.io/cuda-quantum/latest/using/backends/platform\u001b\\documentation\u001b]8;;\u001b\\ for more information.\u001b[0m\n"
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion pr-2478/examples/python/executing_kernels.html
Original file line number Diff line number Diff line change
Expand Up @@ -789,7 +789,7 @@ <h2>Sample<a class="headerlink" href="#Sample" title="Permalink to this heading"
</pre></div></div>
</div>
<p>Note that there is a subtle difference between how <code class="docutils literal notranslate"><span class="pre">sample</span></code> is executed with the target device set to a simulator or with the target device set to a QPU. In simulation mode, the quantum state is built once and then sampled <span class="math notranslate nohighlight">\(s\)</span> times where <span class="math notranslate nohighlight">\(s\)</span> equals the <code class="docutils literal notranslate"><span class="pre">shots_count</span></code>. In hardware execution mode, the quantum state collapses upon measurement and hence needs to be rebuilt over and over again.</p>
<p>There are a number of helpful tools that can be found in the API <a class="reference external" href="https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api.html#cudaq.SampleResult">here</a> to process the <code class="docutils literal notranslate"><span class="pre">Sample_Result</span></code> object produced by <code class="docutils literal notranslate"><span class="pre">sample</span></code>.</p>
<p>There are a number of helpful tools that can be found in the <a class="reference external" href="https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api">API docs</a> to process the <code class="docutils literal notranslate"><span class="pre">Sample_Result</span></code> object produced by <code class="docutils literal notranslate"><span class="pre">sample</span></code>.</p>
</section>
<section id="Observe">
<h2>Observe<a class="headerlink" href="#Observe" title="Permalink to this heading"></a></h2>
Expand Down
2 changes: 1 addition & 1 deletion pr-2478/examples/python/executing_kernels.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"source": [
"Note that there is a subtle difference between how `sample` is executed with the target device set to a simulator or with the target device set to a QPU. In simulation mode, the quantum state is built once and then sampled $s$ times where $s$ equals the `shots_count`. In hardware execution mode, the quantum state collapses upon measurement and hence needs to be rebuilt over and over again.\n",
"\n",
"There are a number of helpful tools that can be found in the API [here](https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api.html#cudaq.SampleResult) to process the `Sample_Result` object produced by `sample`."
"There are a number of helpful tools that can be found in the [API docs](https://nvidia.github.io/cuda-quantum/latest/api/languages/python_api) to process the `Sample_Result` object produced by `sample`."
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions pr-2478/examples/python/performance_optimizations.html
Original file line number Diff line number Diff line change
Expand Up @@ -731,9 +731,9 @@ <h1>Optimizing Performance<a class="headerlink" href="#Optimizing-Performance" t
<section id="Gate-Fusion">
<h2>Gate Fusion<a class="headerlink" href="#Gate-Fusion" title="Permalink to this heading"></a></h2>
<p>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 <code class="docutils literal notranslate"><span class="pre">nvidia-mgpu</span></code> backend and setting the <code class="docutils literal notranslate"><span class="pre">CUDAQ_MGPU_FUSE</span></code> environment variable, you can select the degree of fusion that takes place. A full command line example would look like <code class="docutils literal notranslate"><span class="pre">CUDAQ_MGPU_FUSE=4</span> <span class="pre">python</span> <span class="pre">c2h2VQE.py</span> <span class="pre">--target</span> <span class="pre">nvidia</span> <span class="pre">--target-option</span> <span class="pre">fp64,mgpu</span></code></p>
<p><img alt="a152cb3a9f824ae8a60f103eab60cc39" src="../../_images/gate-fuse1.png" /></p>
<p><img alt="2048def55ec5415baf71426d025a4ff9" src="../../_images/gate-fuse1.png" /></p>
<p>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.</p>
<p><img alt="10f72cdf42fe46ecaae298c2aa2700b1" src="../../_images/gatefusion.png" /></p>
<p><img alt="22086102a01046bda1ba0d4320335975" src="../../_images/gatefusion.png" /></p>
</section>
</section>

Expand Down
Loading

0 comments on commit b98e866

Please sign in to comment.