Comments (2)
Something I had in my future TODO list is the gate fusion algorithm from the TFQ paper. If I understand correctly what is proposed here is a "special" case of this.
In terms of implementation I think we only need one additional kernel that applies two-qubit gates from 4x4 matrices (currently we only have one-qubit gates using 2x2 matrix), which should be easy to implement. Other than that we need to implement the algorithm that decides which gates can be fused but this can be done inside the models.Circuit
in Python.
An easier solution which would work for variational circuits until we implement a more sophisticated/automated fusion algorithm is to create a qibo.gates.Gate
object for variational layers. The user could then add the whole layer in the circuit instead of adding the one-qubit gates one by one. This layer would have a __call__
method that is optimized for this particular case (eg. one qubit gates fused with CZPow's).
from qibo.
Another thing that I think it would be very interesting is to have some parameterized 2-qubit gates (e.g. fSim(theta,phi) ) implemented, besides CZPow. These are native for instance in Google's Sycamore chip, and I've seen them somewhere else (Andreas Wallraff's group). I think the community will move towards this kind of 2-qubit continuous gate sets in the near future for doing variational algorithms.
Here I leave some references:
https://arxiv.org/pdf/2001.08343.pdf
https://arxiv.org/pdf/2005.05275.pdf
from qibo.
Related Issues (20)
- Add qulacs backend
- `Circuit.unitary` breaks in the presente of two-qubit gate initialized by `Gate.controlled_by`
- Change to Circuit.measurements broke to_qasm() HOT 1
- Add Matteo to documentation
- Reuploading classifier expects states method from circuit result object HOT 4
- `AbstractResult` object
- Does Qibo provides measurements? HOT 2
- Restore QGAN model
- CVXPY not available in Python 3.12
- ResetChannel does not do in-place modification of density matrices with qibojit
- Change transpiler `final_layout`
- qibo.transpilation does not seem to allow user to define some native gates HOT 1
- ZNE doesn't repeat RX or CNOT gates when there is no RX or CNOT in the circuit HOT 1
- Transpiler handling across backends HOT 1
- Inconsistent pytest results on macos with pytorch HOT 1
- Suggested improvement for ZNE's `get_noisy_circuit` function (related to #1305) HOT 1
- Unroller duplicates gates when measuring in specific basis HOT 2
- Request for adding VTE (Variational Time Evolution) or PF (Product Formulas) in QiboTN HOT 4
- Conversion of circuits with Unitary gates to QASM not supported
- DBI utils module
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qibo.