-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathlightning_gpu.toml
112 lines (98 loc) · 4.58 KB
/
lightning_gpu.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# TODO: verify the contents of this file against what the device reports.
schema = 2
# The union of all gate types listed in this section must match what
# the device considers "supported" through PennyLane's device API.
[operators.gates.native]
Identity = { properties = [ "differentiable" ] }
PauliX = { properties = [ "differentiable" ] }
PauliY = { properties = [ "differentiable" ] }
PauliZ = { properties = [ "differentiable" ] }
Hadamard = { properties = [ "differentiable" ] }
S = { properties = [ "differentiable" ] }
T = { properties = [ "differentiable" ] }
PhaseShift = { properties = [ "differentiable" ] }
RX = { properties = [ "differentiable" ] }
RY = { properties = [ "differentiable" ] }
RZ = { properties = [ "differentiable" ] }
Rot = { properties = [ "differentiable" ] }
CNOT = { properties = [ "differentiable" ] }
CY = { properties = [ "differentiable" ] }
CZ = { properties = [ "differentiable" ] }
SWAP = { properties = [ "differentiable" ] }
CSWAP = { properties = [ "differentiable" ] }
Toffoli = { properties = [ "differentiable" ] }
IsingXX = { properties = [ "differentiable" ] }
IsingXY = { properties = [ "differentiable" ] }
IsingYY = { properties = [ "differentiable" ] }
IsingZZ = { properties = [ "differentiable" ] }
ControlledPhaseShift = { properties = [ "differentiable" ] }
CRX = { properties = [ "differentiable" ] }
CRY = { properties = [ "differentiable" ] }
CRZ = { properties = [ "differentiable" ] }
CRot = { properties = [ "differentiable" ] }
SingleExcitation = { properties = [ "differentiable" ] }
SingleExcitationPlus = { properties = [ "differentiable" ] }
SingleExcitationMinus = { properties = [ "differentiable" ] }
DoubleExcitation = { properties = [ "differentiable" ] }
DoubleExcitationPlus = { properties = [ "differentiable" ] }
DoubleExcitationMinus = { properties = [ "differentiable" ] }
MultiRZ = { properties = [ "differentiable" ] }
QubitUnitary = { properties = [ "differentiable" ] }
GlobalPhase = { properties = [ "differentiable" ] }
# Operators that should be decomposed according to the algorithm used
# by PennyLane's device API.
# Optional, since gates not listed in this list will typically be decomposed by
# default, but can be useful to express a deviation from this device's regular
# strategy in PennyLane.
[operators.gates.decomp]
BasisState = {}
QubitStateVector = {}
StatePrep = {}
MultiControlledX = {}
# Gates which should be translated to QubitUnitary
[operators.gates.matrix]
BlockEncode = {properties = [ "controllable" ]}
GlobalPhase = {properties = [ "controllable" ]}
ControlledQubitUnitary = {}
ECR = {}
SX = {}
ISWAP = {}
PSWAP = {}
SISWAP = {}
SQISW = {}
OrbitalRotation = {}
QubitCarry = {}
QubitSum = {}
DiagonalQubitUnitary = {}
# Observables supported by the device
[operators.observables]
Identity = {}
PauliX = {}
PauliY = {}
PauliZ = {}
Hadamard = {}
Hermitian = {}
Hamiltonian = {}
SparseHamiltonian = {}
[measurement_processes]
Expval = {}
Var = {}
Probs = {}
State = { condition = [ "analytic" ] }
Sample = { condition = [ "finiteshots" ] }
Counts = { condition = [ "finiteshots" ] }
[compilation]
# If the device is compatible with qjit
qjit_compatible = false
# If the device requires run time generation of the quantum circuit.
runtime_code_generation = false
# If the device supports mid circuit measurements natively
mid_circuit_measurement = true
# This field is currently unchecked but it is reserved for the purpose of
# determining if the device supports dynamic qubit allocation/deallocation.
dynamic_qubit_management = false
# whether the device can support non-commuting measurements together
# in a single execution
non_commuting_observables = true
# Whether the device supports (arbitrary) initial state preparation.
initial_state_prep = true