Skip to content

cirq-google Device Refactor #5050

@verult

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, ...

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions