Sergei Isakov
Sergei Isakov
In principle, this can be implemented. One doesn't need to modify qsim as it can run gates step by step without fusion. As @95-martin-orion pointed out, this will impact the...
I guess there's been no development on this. The core qsim library supports boundaries and can return the wavefunction at various steps. One sample C++ application (qsim_amplitudes.cc) saves intermediate results....
In this context, the error message means that `cudaMalloc` fails somehow. Certainly, there should be enough memory on your GPU for just two qubits in `qsimcirq_test.py::test_cirq_qsim_gpu_amplitudes`. Could you add `ErrorCheck(rc);`...
Yes, we don't use BLAS outside of the custatevec variant of qsim. As @95-martin-orion pointed out, AVX-512 can give rise up to 2x speedup in the best case. In reality,...
qsimh is a hybrid Schrödinger-Feynman simulator. The circuit is split into two parts. So there should be at least two qubits for non-empty output. qsimh option 'p' specifies the number...
The circuit is split into two parts. The number of prefix gates `p` plus the number of root gates `r` should not exceed the number of gates on the cut...
In principle, we don't have to transfer ownership if there is a guarantee that the state doesn't get garbage collected by Python during simulation. Though there might be another problem....
There are two issues here. First, `[](void *data) { detail::free(data); }` shouldn't be used in line 788 (pybind_main.cpp) in order to avoid double free. Second, the state vector allocated in...
> @sergeisakov would know best, but I believe this is because qsim stores the state as a float array for vector operations. Real and imaginary components of each complex value...
> (digression: I suppose a full solution to the issue requires changing pybind_main.cpp to expose the buffer, and thus requires a recompilation. Unfortunately, I can't recompile qsim from scratch because...