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:
Related
Cirq Device 2.0 design
Cirq Gateset design
Related issues: #abc, #xyz, ...
Summarize the task
Refactor cirq-google to
DeviceSpecificationproto and its serialization/deserialization logic.Acceptance criteria - when is the task considered done?
When all tasks below are complete:
DeviceSpecificationproto updatesGateFamilytag supportCompilationTargetGatesetsupport in GridDeviceMetadataGridDeviceshellvalid_targetsin the new GateSpecificationgate_setfield in Engine methods. Deprecate gate_set args in various Engine methods #4995cirq_google.devices.known_devices.py(deprecation PR: Deprecate create_device_proto_for_qubits #5592 and 983875e)cirq_google/serialization/gate_sets.py) and the SerializableGateSet class (deprecation PR: SerializableGateSet deprecation #5573)[?] Program.language.gateset proto field (deprecation PR: Deprecate Program.language.gate_set proto field #5591)Future improvements:
--experimental_allow_proto3_optionalcan be used forprotoc3.12-3.14,protoc-gen-mypydoesn't support it.program.protoanddevice.proto. Can consider removing few months after Cirq 1.0, or can be left untouched until v3 protos.Devicerefreshes [unclear if necessary]Related
Cirq Device 2.0 design
Cirq Gateset design
Related issues: #abc, #xyz, ...