<p>The gate U in <a href="https://arxiv.org/pdf/1707.03429.pdf" rel="nofollow noreferrer">OpenQASM 2</a> was defined as a special unitary (i.e. determinant=1). But if you are writing circuits in the OpenQASM 2 language, this choice should not be consequential, as OpenQASM 2 does not have a way of explicitly dealing with global phases (and they are not observable).</p>
<p><a href="https://arxiv.org/pdf/2104.14722.pdf" rel="nofollow noreferrer">OpenQASM 3</a> on the other hand has a mechanism for controlling gates. This makes global phases consequential (controlling turns the global phase into a relative, observable phase). It turns out the new definition of U in OpenQASM 3 is the same as the <a href="https://qiskit.org/documentation/stubs/qiskit.circuit.library.UGate.html" rel="nofollow noreferrer">definition in Qiskit</a>. If you are writing circuits in OpenQASM 3 or Qiskit, then global phases matter. Therefore you should use this new definition.</p>
<p>(As a side note, the new definition is chosen because standard gates such as Paulis can be derived from it in a more straightforward way).</p>
The Universtal Gate U(theta, phi, lamda) in Open QASM vs Qiskit
<p>I have noticed that Open QASM and Qiskit define the universal single-qubit gate U(lambda, theta, phi) differently. The difference causes a phase difference in RZ, for example.</p>
<p>Has anyone come across this problem? Which should one choose?</p>