Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 45 additions & 1 deletion docs/dev/rfc_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,49 @@ While we encourage and celebrate every contributor, the bar for RFC acceptance i
* Failure to achieve consensus during the design review.
* Concerns raised during implementation (for example: inability to achieve backwards compatibility, concerns about maintenance).

If this process is functioning well, RFCs are expected to fail in the earlier, rather than later stages.
If this process is functioning well, RFCs are expected to fail in the earlier, rather than later stages.
An approved RFC is not a commitment to implementation on any sort of timeline. The prioritization of features depends on user interest and willingness of contributors to implement them.

## New hardware integrations

Several hardware vendors already have integrations with cirq. We are not
currently soliciting additional vendors. However, if you are considering
integrating with cirq, we would highly encourage you to engage with the
cirq-maintainer team through attending the weekly cirq cync and submitting
an RFC as specified above. Everyone benefits from a well-maintained, user
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have an example of a vendor integration that would be useful to link to?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linked to hardware pages. I was reluctant to pick one in particular.

friendly interface with a high reliability, which is the goal of having this
RFC process.

Examples of other integrations can be found on the
[Hardware page](/cirq/hardware).

There are a range of possibilities for integrating with cirq, including:

* Completely independent repository: requires the least engagement from
the cirq team, but also lacks the benefits of a tighter integration and
partnership.
* Different repository with links or tutorials hosted on cirq:
less coordination is needed than a hosted integration, but requires
continuous integration on the external repository to ensure compatibility
with new cirq versions.
* Integration hosted within cirq repository: requires the highest
amount of coordination and effort but allows a tighter integration and for
cirq-maintainers to modify the integration code to stay in sync with an
evolving cirq-core code base. We generally do not accept submissions for
this type of integration for third-party vendors that function as
intermediaries for other cloud vendors.

Several things are needed for a successful integration:

* Plan for including external dependencies (if needed).
* Access and authentication.
* Tutorials and guides for use of the interface (for instance,
a Getting Started guide).
* `Device` implementation for validating circuits on the hardware
* Transformer for compiling circuits to the supported gates on the
hardware (or use `cirq.optimize_for_target_gateset`)
* ` Sampler` interface for running circuits on the hardware service.
* Conisder also providing a noise model that users can use to simulate the
device if direct access is not available.


6 changes: 5 additions & 1 deletion docs/ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The following document provides an ecosystem overview of how the various tools c

* **Quantum Circuit Simulators:** Cirq is compatible with a number of quantum circuit simulators that can run either locally or in a distributed fashion.

# Research libraries and tools
# Research libraries and tools

## Algorithm libraries and experiments

Expand Down Expand Up @@ -45,6 +45,10 @@ The following document provides an ecosystem overview of how the various tools c
|[Pasqal](https://quantumai.google/cirq/tutorials/pasqal/getting_started)|Neutral atoms|
|[Rigetti](https://quantumai.google/cirq/tutorials/rigetti/getting_started)|Superconducting qubits|

For more information for vendors about integrating with cirq,
see our [RFC page](/cirq/dev/rfc_process#new_hardware_integrations).


## High performance quantum circuit simulators

|Name|Main sponsor|Description|
Expand Down
2 changes: 1 addition & 1 deletion docs/hardware/_index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ landing_page:
name: menu_book

- heading: Custom devices
description: How to write custom Device classes for quantum hardware.
description: How to write custom Device classes for quantum hardware. More information for vendors on integrating with cirq can be found on the RFC page.
items:
- heading: Neutral atom device
description: A custom device class for a neutral atom device.
Expand Down