Skip to content

cirq-google Device Refactor #5050

Description

@verult

Summarize the task
Refactor cirq-google to

  • Simplify Quantum Engine DeviceSpecification proto and its serialization/deserialization logic.
  • Implement Devices 2.0 and GateSets APIs in cirq-core.

Acceptance criteria - when is the task considered done?
When all tasks below are complete:

Future improvements:

  • Serialize GridDevice back to DeviceSpecification
  • Documentation
    • Update cirq_google tutorials
    • Document how to add/remove gates
  • SycamoreTargetGateset additional_gates arg
  • Deprecate ASYMMETRIC and SUBSET_PERMUTATION target types.
  • Make gate_durations optional (requires protobuf 3.15)
    • While the protoc flag --experimental_allow_proto3_optional can be used for protoc 3.12-3.14, protoc-gen-mypy doesn't support it.
  • Removing deprecated fields in program.proto and device.proto. Can consider removing few months after Cirq 1.0, or can be left untouched until v3 protos.
  • More frequent Device refreshes [unclear if necessary]
    • Update devices documentation

Related
Cirq Device 2.0 design
Cirq Gateset design

Related issues: #abc, #xyz, ...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions