From: miha-q <> Date: Sun, 3 Mar 2024 02:12:07 +0000 (-0500) Subject: Sat Mar 2 09:12:07 PM EST 2024 X-Git-Url: http://www.foleosoft.com/?a=commitdiff_plain;h=a14002acb9de4c341f21ce7e15e4a3638c65e011;p=QAnsel.git Sat Mar 2 09:12:07 PM EST 2024 --- diff --git a/src/gpu.c b/src/gpu.c index 82c89c3..9770288 100644 --- 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"); diff --git a/src/gpu_mmul.cl b/src/gpu_mmul.cl index 1c762f3..1e53db1 100644 --- a/src/gpu_mmul.cl +++ b/src/gpu_mmul.cl @@ -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