]> foleosoft.com Git - QAnsel.git/commitdiff
Thu Mar 7 08:06:20 PM EST 2024
authormiha-q <>
Fri, 8 Mar 2024 01:06:20 +0000 (20:06 -0500)
committermiha-q <>
Fri, 8 Mar 2024 01:06:20 +0000 (20:06 -0500)
examples/slow.txt
src/complex.c

index f4126d6591edb7805ece613083561c0d244610fa..d9970614865ed06fd26a83b436e36591808cd8e6 100644 (file)
@@ -1,5 +1,5 @@
 //designed to be slow
-qreg q[14];
+qreg q[11];
 x q[0];
 x q[1];
 x q[2];
@@ -11,8 +11,5 @@ x q[7];
 x q[8];
 x q[9];
 x q[10];
-x q[11];
-x q[12];
-x q[13];
 
 born;
\ No newline at end of file
index 2d632df2b7030e018aa49cd3cd915d7ae8dfc61a..f1faff3b186f6d26a39ff015c5e9b036da34c5d5 100644 (file)
@@ -8,6 +8,7 @@
 #include "cores.c"
 #include "kernel_cpu.cl"
 #include "kernel_gpu.cl"
+#define OPTIMAL_WGS_KNK 2
 typedef struct
 {
     float real, imaginary;
@@ -556,8 +557,8 @@ void cpx_mtx_dot_metal(float* ptrR, float* ptrA, float* ptrB, int rowsA, int col
        err = clSetKernelArg(kernel, 5, sizeof(int), &rowsB); gpuerr(err);
        err = clSetKernelArg(kernel, 6, sizeof(int), &colsB); gpuerr(err);
 
-       //Run the program
-       err = clEnqueueNDRangeKernel(cpx_mtx_command_queue, kernel, 2, NULL, (size_t[]){rowsR, colsR}, NULL, 0, NULL, NULL);
+       size_t wgs[2] = {1, 1};
+       err = clEnqueueNDRangeKernel(cpx_mtx_command_queue, kernel, 2, NULL, (size_t[]){rowsR, colsR}, wgs, 0, NULL, NULL);
        gpuerr(err);
 
        //Wait for completion
@@ -751,10 +752,9 @@ void cpx_mtx_knk_metal_2x2(float* ptrR, float* ptrA, float* ptrB, int rowsA, int
        err = clSetKernelArg(kernel,10, sizeof(float), &gate6); gpuerr(err);
        err = clSetKernelArg(kernel,11, sizeof(float), &gate7); gpuerr(err);
 
-
        //Run the program
-       size_t wgs = 2;
-       err = clEnqueueNDRangeKernel(cpx_mtx_command_queue, kernel, 1, NULL, (size_t[]){rowsR / 2}, &wgs, 0, NULL, NULL);
+       size_t wgs[2] = {OPTIMAL_WGS_KNK};
+       err = clEnqueueNDRangeKernel(cpx_mtx_command_queue, kernel, 1, NULL, (size_t[]){rowsR / 2}, wgs, 0, NULL, NULL);
        gpuerr(err);
 
        //Wait for completion