catalyst
catalyst copied to clipboard
A JIT compiler for hybrid quantum programs in PennyLane
This is a trivial change. Instead of having a call to `ctx.disableMultiThreading()` call `ctx.enableMultiThreading()`. To close this ticket, we should also clean up the printing infrastructure. At the very least,...
Transforms produce multiple tapes. We have the assumption that there is one tape per qfunc. Currently transforms is the only way to produce code that does not follow this convention....
- [x] Rewrite the 'compile from source' section to have subsections per OS, allowing users to easily see together all the commands to run. - [ ] Make sure it...
```py dev = qml.device("braket.local.qubit", wires=2) @qjit @qml.qnode(dev) def f(x: float): qml.PSWAP(x, wires=[0, 1]) qml.ISWAP(wires=[1, 0]) return qml.probs() f(0.3) ``` The circuit raises a cryptic error that does not make it...
```py dev = qml.device("braket.local.qubit", wires=2, shots=100) @qjit @qml.qnode(dev) def f(x: float): return qml.expval(qml.PauliZ(0) @ qml.PauliX(1)) f(0.7) ``` ``` RuntimeError: [OpenQasmRunner.hpp][Line:343][Function:Expval] Error in Catalyst Runtime: max() arg is an empty sequence...
A strategy discussed in discord: > [The easiest way to benefit from parallelism is to use function passes. Then MLIR will process all functions in parallel. This does not work...
Instead of the async flag specifying async for all qnodes in the JIT context, we could have an async flag for specific qnodes if we move the flag to the...
While looking into exception handling I found that async tests (even without triggering exceptions and without the pass for exception handling) would not consistently succeed when load was increased. I...
Right now, all `qnode`s share a global memory manager. The role of the global memory manager is to deallocate tensors generated during the execution of the JIT compiled context. We...
`qml.cond` can be used with the typical Catalyst conditional: ```py def true_fn(): qml.RY(0.7, wires=0) qml.cond(x < 0.9, true_fn)() ``` But what doesn't work is the common PennyLane usage pattern for...