Skip to content

Commit 188bb94

Browse files
authored
Add registry sweep documentation to cirq_google (#6291)
* Add registry sweep documentation to cirq_google - Add some simple documentation on how to use registry sweeps to cirq_google's device page (currently public but not linked to from table of contents)
1 parent 907ec3a commit 188bb94

File tree

1 file changed

+35
-34
lines changed

1 file changed

+35
-34
lines changed

docs/google/devices.md

+35-34
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ of total circuit run-time. Circuits that exceed this limit will return a
2727

2828
### Moment structure
2929

30-
The hardware will attempt to run your circuit as it exists in cirq to the
30+
The hardware will attempt to run your circuit as it exists in Cirq to the
3131
extent possible. The device will respect the moment structure of your circuit
3232
and will execute successive moments in a serial fashion.
3333

@@ -65,11 +65,40 @@ cirq.Circuit(
6565

6666
The duration of a moment is the time of its longest gate. For example,
6767
if a moment has gates of duration 12ns, 25ns, and 32ns, the entire moment
68-
will take 32ns. Qubits executing the shorter gtes will idle during the rest
68+
will take 32ns. Qubits executing the shorter gates will idle during the rest
6969
of the time. To minimize the duration of the circuit, it is best to align
7070
gates of the same duration together when possible. See the
7171
[best practices](./best_practices.ipynb) for more details.
7272

73+
## Device Parameter Sweeps
74+
75+
Certain device parameters can be changed for the duration of
76+
a circuit in order to support hardware parameter sweeps. For instance,
77+
frequencies, amplitudes, and various other parameters can be modified
78+
in order to find optimal values or explore the parameter space.
79+
80+
These parameter names are generally not public, so you will need to
81+
work with a Google sponsor or resident in order to access the proper
82+
key names. These parameters are specified as lists of strings representing
83+
a path from the device config's folder (or the "sample folder").
84+
85+
These keys can be swept like any other symbol using the
86+
`cirq_google.study.DeviceParameter` variable. For instance, the
87+
following code will sweep qubit (4,8)'s pi amplitude from 0.0 to 1.0
88+
in 0.02 increments.
89+
90+
91+
```
92+
descriptor = cirq_google.study.DeviceParameter( ["q4_8", "piAmp"])
93+
sweep = cirq.Linspace("q4_8.piAmp", 0, 1, 51, metadata=descriptor)
94+
```
95+
96+
Any `DeviceParameter` keys that are set to a single value using a `cirq.Points`
97+
object will change that value for all circuits run.
98+
99+
If units are required, they should be specified as a string (such as 'MHz')
100+
using the `units` argument of the `DeviceParameter`.
101+
73102
## Gates supported
74103

75104
The following lists the gates supported by Google devices.
@@ -188,7 +217,7 @@ $$
188217
This gate has a duration of 32ns and can be used in
189218
`cirq_google.SQRT_ISWAP_GATESET` or in the `cirq_google.FSIM_GATESET`.
190219

191-
This gate is implemented by using an entangling gate surrounding by
220+
This gate is implemented by using an entangling gate surrounded by
192221
Z gates. The preceding Z gates are physical Z gates and will absorb
193222
any phases that have accumulated through the use of Virtual Z gates.
194223
Following the entangler are virtual Z gates to match phases back. All
@@ -238,7 +267,8 @@ expressions, but only a subset of Sympy expression types are supported:
238267
`sympy.Symbol`, `sympy.Add`, `sympy.Mul`, and `sympy.Pow`.
239268

240269
## Specific Device Layouts
241-
The following devices are provided as part of cirq and can help you get your
270+
271+
The following devices are provided as part of Cirq and can help you get your
242272
circuit ready for running on hardware by verifying that you are using
243273
appropriate qubits.
244274

@@ -272,7 +302,7 @@ It can be accessed using `cirq.GridQubit(row, col)` using grid coordinates speci
272302
9 ----I-----
273303
```
274304

275-
It can be accessing by using `cirq_google.Sycamore`. This device has two possible
305+
It can be accessed by using `cirq_google.Sycamore`. This device has two possible
276306
two-qubits gates that can be used.
277307

278308
* Square root of ISWAP. The gate `cirq.ISWAP ** 0.5` or `cirq.ISWAP ** -0.5` can be
@@ -304,32 +334,3 @@ with and presents less hardware-related complications than using the full Sycamo
304334

305335
This grid can be accessed using `cirq_google.Sycamore23` and uses the same gate sets and
306336
compilation as the Sycamore device.
307-
308-
309-
### Bristlecone
310-
311-
The Bristlecone processor is a 72 qubit device
312-
[announced by Google in 2018](https://ai.googleblog.com/2018/03/a-preview-of-bristlecone-googles-new.html).
313-
314-
The device is arrayed on a grid in a diamond pattern like this.
315-
316-
```
317-
11
318-
012345678901
319-
0 -----AB-----
320-
1 ----ABCD----
321-
2 ---ABCDEF---
322-
3 --ABCDEFGH--
323-
4 -ABCDEFGHIJ-
324-
5 ABCDEFGHIJKL
325-
6 -CDEFGHIJKL-
326-
7 --EFGHIJKL--
327-
8 ---GHIJKL---
328-
9 ----IJKL----
329-
10-----KL-----
330-
```
331-
332-
It can be accessing by using `cirq_google.Bristlecone`. Circuits can be compiled to it by using
333-
`cirq_google.optimized_for_xmon` or by using `cirq_google.optimized_for_sycamore` with
334-
optimizer_type `xmon`.
335-

0 commit comments

Comments
 (0)