]> foleosoft.com Git - QAnsel.git/commitdiff
Mon Mar 4 12:22:37 AM EST 2024
authormiha-q <>
Mon, 4 Mar 2024 05:22:37 +0000 (00:22 -0500)
committermiha-q <>
Mon, 4 Mar 2024 05:22:37 +0000 (00:22 -0500)
src/gpu/gpu_knk.cl

index ff22a2162a9e26249a546e39aa24d132425e90fb..f4a9aaf35ebde89b42109cd6a8c484b509420d6f 100644 (file)
@@ -11,5 +11,22 @@ __kernel void gpu_knk
     const int colsB
 )
 {
+    const int rowR = get_global_id(0);
+    const int colR = get_global_id(1);
+
+    const int rowA = rowR / rowsB;
+    const int colA = colR / colsB;
+    const int rowB = rowR % rowsB;
+    const int colB = colR % colsB;
+
+    const float r1 = ptrA[((colA * 2) + 1) + ((rowA * 2) + 1) * (colsA * 2)];
+    const float i1 = ptrA[(colA * 2) + ((rowA * 2) + 1) * (colsA * 2)];
+    const float r2 = ptrB[((colB * 2) + 1) + ((rowB * 2) + 1) * (colsB * 2)];
+    const float i2 = ptrB[(colB * 2) + ((rowB * 2) + 1) * (colsB * 2)];
+
+    ptrR[(colR * 2) + (rowR * 2) * (colsR * 2)] = (r1 * r2) + (-(i1 * i2));
+    ptrR[((colR * 2) + 1) + (rowR * 2) * (colsR * 2)] = -((r1 * i2) + (i1 * r2));
+    ptrR[(colR * 2) + ((rowR * 2) + 1) * (colsR * 2)] = (r1 * i2) + (i1 * r2);
+    ptrR[((colR * 2) + 1) + ((rowR * 2) + 1) * (colsR * 2)] = (r1 * r2) + (-(i1 * i2));
 }