From: miha-q <> Date: Mon, 4 Mar 2024 16:55:49 +0000 (-0500) Subject: Mon Mar 4 11:55:49 AM EST 2024 X-Git-Url: http://www.foleosoft.com/?a=commitdiff_plain;h=6f6791219ae911a4e5e8ffc6a33e4a8a8fe648cc;p=QAnsel.git Mon Mar 4 11:55:49 AM EST 2024 --- diff --git a/src/QAnsel.c b/src/QAnsel.c index 6615e70..fb19487 100644 --- a/src/QAnsel.c +++ b/src/QAnsel.c @@ -211,43 +211,18 @@ void qansel_instruction(cpx_mtx_t* stateVector, unsigned char qubitCount, QInstr tmp.rows = filter.rows * gate.rows; tmp.cols = filter.cols * gate.cols; - //tmp.ptr = malloc((tmp.rows * 2) * (tmp.cols * 2) * sizeof(float)); tmp.ptr = malloc(tmp.rows * (tmp.cols * 2) * sizeof(float)); #ifdef GPU_ENABLED if (USE_GPU/* && (tmp.rows >= 512 || tmp.cols >= 512)*/) { - cpx_mtx_knk - ( - tmp.ptr, filter.ptr, gate.ptr, - tmp.rows, tmp.cols, - filter.rows, filter.cols, - gate.rows, gate.cols - ); - //cpx_ncpx_knk_mt - //( - // tmp.ptr, tmp.rows, tmp.cols, - // filter.ptr, filter.rows, filter.cols, - // gate.ptr, gate.rows, gate.cols - //); + cpx_mtx_knk(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols); } else { - cpx_mtx_knk - ( - tmp.ptr, filter.ptr, gate.ptr, - tmp.rows, tmp.cols, - filter.rows, filter.cols, - gate.rows, gate.cols - ); + cpx_mtx_knk(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols); } #else - //cpx_ncpx_knk_mt - //( - // tmp.ptr, tmp.rows, tmp.cols, - // filter.ptr, filter.rows, filter.cols, - // gate.ptr, gate.rows, gate.cols - //); cpx_mtx_knk ( tmp.ptr, filter.ptr, gate.ptr, diff --git a/src/complex.c b/src/complex.c index 5ecd977..b8e4197 100644 --- a/src/complex.c +++ b/src/complex.c @@ -148,8 +148,10 @@ void cpx_mtx_dot(float* ptrR, float* ptrA, float* ptrB, size_t rowsA, size_t col } } -void cpx_mtx_knk(float* ptrR, float* ptrA, float* ptrB, int rowsR, int colsR, int rowsA, int colsA, int rowsB, int colsB) +void cpx_mtx_knk(float* ptrR, float* ptrA, float* ptrB, int rowsA, int colsA, int rowsB, int colsB) { + int rowsR = rowsA * rowsB; + int colsR = colsA * colsB; for (int i = 0; i < rowsR; i++) { GPU_GLOBAL_ID_0 = i; @@ -319,8 +321,10 @@ void cpx_mtx_dot_metal(float* ptrR, float* ptrA, float* ptrB, int rowsA, int col err = clReleaseMemObject(memR); gpuerr(clReleaseMemObject); } -void cpx_mtx_knk_metal(float* ptrR, float* ptrA, float* ptrB, int rowsR, int colsR, int rowsA, int colsA, int rowsB, int colsB) +void cpx_mtx_knk_metal(float* ptrR, float* ptrA, float* ptrB, int rowsA, int colsA, int rowsB, int colsB) { + int rowsR = rowsA * rowsB; + int colsR = colsA * colsB; //Create buffers size_t sizeR = ((colsR * 2) * rowsR) * sizeof(float); size_t sizeA = ((colsA * 2) * rowsA) * sizeof(float);