-
-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
project that manipulate quantum circuit using Metatheory.jl #122
Comments
Hi I noticed you forked YaoEgraph a while ago, I can see the design of your IR is quite similar, I'm wondering if you know YaoHIR/YaoBlocks? For the compilation efforts it seems you are building something similar to YaoCompiler's IR or YaoBlocks with egraph. we have been working on this direction for a while too, the old fork from @0x0f0f0f was for helping us fix a bug, we recently made it private because we want to improve it more before releasing. We have been working towards better circuit compilation for a while, e.g we also have ZX calculus, Quon, and YaoCompiler.
|
Neat work! I want invite you to the monthly Yao community call, where you can get more resources and information. From the next month, I and @Roger-luo will introduce each modules in detail, and we are polishing the documentation now (this time it is real!). The reason why I want to invite you is because I saw some duplicated efforts here, for example,
I do not mean you should have known this, I mean if you can join the community call, we can avoid such duplicated efforts. You can focus on the creative part, while your need will also help improve Yao too. Yao is well maintained, and light weighted quantum simulator, it is not a formidable at all to add it as a dependency. I and Roger are both happy to play a supportive role, like change the protocal to support new features. julia> @time using Yao
1.754890 seconds (4.92 M allocations: 328.584 MiB, 0.78% gc time, 34.27% compilation time)
julia> @time rand_state(3) |> put(3, 2=>X)
0.068815 seconds (261.49 k allocations: 13.971 MiB, 99.32% compilation time)
ArrayReg{2, ComplexF64, Array...}
active qubits: 3/3
nlevel: 2 @Roger-luo do you have any idea how to invite @overshiki to the community call? |
Just join Julia slack, find |
Hi @Roger-luo, And there are some reasons why When I got the symbolic idea from the I also read about It is a pity that I don't know much about And ZX calculus is a really powerful framework for circuit simplification, but currently, it is not easy to do it symbolically(graph manipulation is hard). One of my goals in building In summary, yes, if |
Hi @GiggleLiu, And you are right, I can take advantage of a lot of features provided by
Actually, I just newly implemented an interface to turn the circuit in |
You don't need a * operator to make it work. That's just syntax.
This is exactly why YaoHIR was created and it works directly with metatheory as well as MLStyle. That's why I'm saying this is duplicating efforts. And we put a lot effort to make sure this IR also works with Julia compiler.
This is also what we are tying to see in YaoEgraph 😅 |
I mean, in my case
That is really cool! and I'm willing to learn more. However, currently, it seems to lack documentation. And I'm also looking forward to the release of YaoEgraph. As you mentioned, it is now in a private development state.
Currently, the Eqsat solution is not a perfect one, for a long circuit, the system may need too long time and too much resources to saturate, see an issue here. One of the reasons is the expensive |
To all who may concern, the goal of Thanks to the reminder of @Roger-luo and @GiggleLiu, And thanks @0x0f0f0f for allowing me to post such an issue here:) Again, |
Hi @Roger-luo
I think I got what you mean. I must say that the version of my fork of YaoEgraph is quite broken, I can barely know anything about the progress of YaoEgraph from it. And the similarity about the IR, I have to say, most framework of quantum computation looks alike, especially if you want to do it symbolically. My intuition about the circuit IR actually comes from mindquantum, it treats circuit as a The key point of a symbolic system on quantum circuit, is not how it looks like, it is how it solves the problem of defining rules! Unfortunately, currently, I can see no rules related with YaoEgraph. The development of Hope this clarified your concern. |
Thanks for your clarification. I guess we just happen to be working on the same thing then! There's a lot problems to explore in this area. We should chat directly, I sent you an email. |
Cool, happy to cooperate! |
Hi,
I wrote a package SymbolicCircuit.jl. It provides a symbolic system for the representation of quantum circuit, in which, one can manipulate quantum circuit using term rewriting & equality saturation techniques.
This project is highly dependent on and highly motivated by
Metatheory.jl
. So, thanks a lot for your great work!The text was updated successfully, but these errors were encountered: