Sergei Isakov

Results 20 comments of 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...