]> foleosoft.com Git - QAnsel.git/commitdiff
Sat Mar 2 10:13:51 PM EST 2024
authormiha-q <>
Sun, 3 Mar 2024 03:13:51 +0000 (22:13 -0500)
committermiha-q <>
Sun, 3 Mar 2024 03:13:51 +0000 (22:13 -0500)
src/gpu.c

index d44c7492de224496548d1c0a9fba00002ad7e95a..4d315730f587204e49a4cc87688c9e314e1759aa 100644 (file)
--- a/src/gpu.c
+++ b/src/gpu.c
@@ -66,17 +66,10 @@ void GPU_clean()
 
 void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t colsB, size_t shared)
 {
-       #define GPU_DEBUG
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Create buffers
        size_t sizeA = rowsA * shared;
        size_t sizeB = shared * colsB;
        size_t sizeR = rowsA * colsB;
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        cl_int err;
        cl_mem memA = clCreateBuffer(GPU_context, CL_MEM_READ_ONLY, sizeof(double) * sizeA, NULL, &err);
        if (err != CL_SUCCESS)
@@ -84,18 +77,12 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clCreateBuffer() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        cl_mem memB = clCreateBuffer(GPU_context, CL_MEM_READ_ONLY, sizeof(double) * sizeB, NULL, &err);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clCreateBuffer() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        cl_mem memR = clCreateBuffer(GPU_context, CL_MEM_WRITE_ONLY, sizeof(double) * sizeR, NULL, &err);
        if (err != CL_SUCCESS)
        {
@@ -103,18 +90,12 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                exit(1);
        }
        //Populate buffers
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clEnqueueWriteBuffer(GPU_command_queue, memA, CL_TRUE, 0, sizeof(double) * sizeA, ptrA, 0, NULL, NULL);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clEnqueueWriteBuffer() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clEnqueueWriteBuffer(GPU_command_queue, memB, CL_TRUE, 0, sizeof(double) * sizeB, ptrB, 0, NULL, NULL);
        if (err != CL_SUCCESS)
        {
@@ -122,11 +103,7 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                exit(1);
        }
        //Load and compile program
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        printf("------------------------------\n%s\n------------------------------\n", src_gpu_mmul_cl); 
-
        char* tmp = malloc(src_gpu_mmul_cl_len);
        memcpy(tmp, src_gpu_mmul_cl, src_gpu_mmul_cl_len);
        const char* ptr = (const char*)src_gpu_mmul_cl;
@@ -136,9 +113,6 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clCreateProgramWithSource() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clBuildProgram(program, 1, &GPU_device_id, NULL, NULL, NULL);
        if (err != CL_SUCCESS)
        {
@@ -151,9 +125,6 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                free(log);
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Setup kernel
        cl_kernel kernel = clCreateKernel(program, "gpu_mmul", &err);
        if (err != CL_SUCCESS)
@@ -161,54 +132,36 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clCreateKernel() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clSetKernelArg(kernel, 0, sizeof(cl_mem), (void*)&memR);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clSetKernelArg() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clSetKernelArg(kernel, 1, sizeof(cl_mem), (void*)&memA);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clSetKernelArg() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clSetKernelArg(kernel, 2, sizeof(cl_mem), (void*)&memB);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clSetKernelArg() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clSetKernelArg(kernel, 3, sizeof(int), &rowsA);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clSetKernelArg() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clSetKernelArg(kernel, 4, sizeof(int), &colsB);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clSetKernelArg() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Run the program
        size_t work_size[] = {rowsA, colsB};
        err = clEnqueueNDRangeKernel(GPU_command_queue, kernel, 2, NULL, work_size, NULL, 0, NULL, NULL);
@@ -217,9 +170,6 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clEnqueueNDRangeKernel() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Wait for completion
        err = clFlush(GPU_command_queue);
        if (err != CL_SUCCESS)
@@ -227,18 +177,12 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clFlush() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clFinish(GPU_command_queue);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clFinish() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Read results
        err = clEnqueueReadBuffer(GPU_command_queue, memR, CL_TRUE, 0, sizeof(double) * sizeR, ptrR, 0, NULL, NULL);
        if (err != CL_SUCCESS)
@@ -246,10 +190,6 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clEnqueueWriteBuffer() failed.\n");
                exit(1);
        }
-
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        //Clean up
        err = clReleaseKernel(kernel);
        if (err != CL_SUCCESS)
@@ -257,52 +197,34 @@ void GPU_mmul(double* ptrR, double* ptrA, double* ptrB, size_t rowsA, size_t col
                fprintf(stderr, "GPU fatal error: clReleaseKernel() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clReleaseProgram(program);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clReleaseProgram() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clReleaseMemObject(memA);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clReleaseMemObject() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clReleaseMemObject(memB);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clReleaseMemObject() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clReleaseMemObject(memR);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clReleaseMemObject() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
        err = clReleaseMemObject(memR);
        if (err != CL_SUCCESS)
        {
                fprintf(stderr, "GPU fatal error: clReleaseMemObject() failed.\n");
                exit(1);
        }
-       #ifdef GPU_DEBUG
-       printf("Line %d.\n", __LINE__);
-       #endif
 }
\ No newline at end of file