blueqatSDK + cuQuantumの最新版の利用の仕方を書きます。
インストールはpypiでできます。
pip install -U blueqat cuquantum-python-cu11
cuquantumのインストールは最新版はcuquantum-python-cu11で行ってください。
実行方法はこれからこちらで開発を加速してサポートを増やしますが、
状態ベクトルが、
from blueqat import Circuit
Circuit(28).h[:].cx[0,1].cx[26,27].h[:].run(backend="cusv")
こんな感じでstatevecが出ます。
array([ 9.9999988e-01+0.j, 1.7457795e-08+0.j, -3.4352610e-10+0.j, ..., 0.0000000e+00+0.j, 0.0000000e+00+0.j, 0.0000000e+00+0.j], dtype=complex64)
テンソルネットワークが、
Circuit(28).h[:].cx[0,1].cx[26,27].h[:].run(backend="cutn")
となっています。こちらは、
beta : only H, X, RX, RY, RZ, CX, RZZ are available
('0.26846976 GFLOPS',
array([1.00000000e+00+0.j, 3.25176795e-17+0.j, 0.00000000e+00+0.j, ...,
0.00000000e+00+0.j, 0.00000000e+00+0.j, 0.00000000e+00+0.j]))
こんなかんじです。今はすみません、まだ状態ベクトルにしか対応していません。4月の初旬を使って状態ベクトル、単一振幅、サンプル、ハミルトニアン期待値あたりを実装しようかなとも考えています。
正直状態ベクトルはQiskitやCirq。特にQiskitから今後サポートが出ると思うので、blueqatはどうしようか迷ってます。
-40量子ビットまではcuStateVec / blueqat numpy(statevecの要素の順番は直そうと思います)。それ以上はcuTensornet / blueqat quimbを利用するというのが現実的ですが。皆様のご要望と企業や研究者の要望を聞いて進めます。