Changeset: 1f3d47233508 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1f3d47233508
Modified Files:
        monetdb5/extras/bwd/operations.c
        monetdb5/extras/bwd/utilities.c
Branch: bwd
Log Message:

* fixed an overflow when filling the gpu buffers
* fixed filling intermediate buffers


Unterschiede (37 Zeilen):

diff --git a/monetdb5/extras/bwd/operations.c b/monetdb5/extras/bwd/operations.c
--- a/monetdb5/extras/bwd/operations.c
+++ b/monetdb5/extras/bwd/operations.c
@@ -148,10 +148,11 @@ cl_int clEnqueueFillBuffer(cl_command_qu
                } else {
                        cl_kernel kernel = clCreateKernel(getZeroOutProgram(), 
"zeroOut", &err);
                        clSetKernelArg(kernel, 0, sizeof(cl_mem), &buffer);
-                       err = bwdEnqueueNDRangeKernel(getCommandQueue(), 
kernel, 1, (const size_t[]){0}, (size_t[]){size/4}, (const size_t[]){64}, 
num_events_in_wait_list, event_wait_list, event);
+                       err = bwdEnqueueNDRangeKernel(getCommandQueue(), 
kernel, 1, (const size_t[]){0}, (size_t[]){ ceil(size/128.0)*32}, (const 
size_t[]){32}, num_events_in_wait_list, event_wait_list, event);
                        if(err) printf("#%s, bwdEnqueueNDRangeKernel: %s;\n", 
__func__, clError(err));
                        err= clFinish(getCommandQueue());
                        if(err) printf("#%s, clFinish: %s;\n", __func__, 
clError(err));
+                       return err;
                }
        }
        return -1;
diff --git a/monetdb5/extras/bwd/utilities.c b/monetdb5/extras/bwd/utilities.c
--- a/monetdb5/extras/bwd/utilities.c
+++ b/monetdb5/extras/bwd/utilities.c
@@ -109,7 +109,7 @@ char* humanreadablesize(unsigned int val
 
 
 cl_mem bwdClCreateBuffer(cl_context context, cl_mem_flags flags, size_t size, 
void *host_ptr,  cl_int *errcode_ret){
-       cl_mem result = clCreateBuffer (context, flags, size, 
host_ptr,errcode_ret);
+       cl_mem result = clCreateBuffer (context, flags, ceil(size/128.0)*128, 
host_ptr,errcode_ret);
        char buffer[64];
        humanreadablesize(size, buffer, 64);
        printf ("created cl_mem %p of size %s\n", result, buffer);
@@ -411,7 +411,7 @@ unsigned int decomposeIntArray(const int
        const unsigned int approximationBits = neededBits-residualBits;
        const size_t approximationSize = ceil(size*approximationBits/8.0) + 
sizeof(long) + sizeof(clTail);
        clTail* approximation = GDKzalloc(approximationSize);
-       unsigned int i;
+       unsigned long i;
 
        slot->tailOffsetBits = 32-neededBits;
        slot->approximationBits = approximationBits;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to