]> foleosoft.com Git - QAnsel.git/commitdiff
Sat Mar 2 09:12:07 PM EST 2024
authormiha-q <>
Sun, 3 Mar 2024 02:12:07 +0000 (21:12 -0500)
committermiha-q <>
Sun, 3 Mar 2024 02:12:07 +0000 (21:12 -0500)
src/gpu.c
src/gpu_mmul.cl

index 82c89c3de0d225243d3ec63b26c655170a6509f4..97702885b83081baef766eab685ef251c9d4d4f8 100644 (file)
--- a/src/gpu.c
+++ b/src/gpu.c
@@ -125,8 +125,11 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
        #ifdef GPU_DEBUG
        printf("Line %d.\n", __LINE__);
        #endif
-       const char* ptr = (const char*)gpu_mmul_cl;
-       cl_program program = clCreateProgramWithSource(GPU_context, 1, &ptr, &gpu_mmul_cl_len, &err);
+       char ptr[gpu_mmul_cl_len + 1];
+       memcpy(ptr, gpu_mmul_cl, gpu_mmul_cl_len);
+       ptr[gpu_mmul_cl_len] = 0;
+       cl_program program = clCreateProgramWithSource(GPU_context, 1, (const char**)(&ptr), NULL, &err);
+       printf("---------------------\n%s---------------------\n", ptr);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clCreateProgramWithSource() failed.\n");
index 1c762f3be8802a11b6af60bfe561152c1b9423de..1e53db116c2631381dc1050fb9210c395e768614 100644 (file)
@@ -1,3 +1,11 @@
 __kernel gpu_mmul(__global float* ptrR, __global float* ptrA, __global float* ptrB, const int N, const int W)
 {
+    int row = get_global_id(0);
+    int col = get_global_id(1);
+    float sum = 0;
+    for (int i = 0; i < N; i++)
+    {
+        sum += ptrA[row * W + i] * ptrB[i * W + col];
+    }
+    ptrR[row * W + col] = sum;
 }
\ No newline at end of file