Changeset: 6d9248251b1e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6d9248251b1e
Modified Files:
        monetdb5/extras/bwd/cl_program_utilities.c
Branch: bwd
Log Message:

* fixed more bugs in the gpu grouping code (group id assignment)


Unterschiede (30 Zeilen):

diff --git a/monetdb5/extras/bwd/cl_program_utilities.c 
b/monetdb5/extras/bwd/cl_program_utilities.c
--- a/monetdb5/extras/bwd/cl_program_utilities.c
+++ b/monetdb5/extras/bwd/cl_program_utilities.c
@@ -256,13 +256,15 @@ cl_program getSingleAttributeGroupProgra
                "      
(((offset+approximationBits)>targetTypeBits)?(((vals[slot]<<(approximationBits-targetTypeBits+offset))
 + 
(vals[slot+1]>>(targetTypeBits-(approximationBits-targetTypeBits+offset))))&approximationMask):0)\n"
                "    + 
(((offset+approximationBits)<=targetTypeBits)*(vals[slot]>>(targetTypeBits-offset-approximationBits)))\n"
                "      )&approximationMask);\n"
-               "  const uint oldValue = atomic_cmpxchg(histogramOIDs + delta + 
2, 0, inputIndex);\n"
-               "  const uint groupID = oldValue?oldValue:inputIndex;\n"
+               "  const uint oldValue = atomic_cmpxchg(histogramOIDs + delta + 
2, 0, inputIndex+1);\n"
+               "  const uint groupID = oldValue?oldValue-1:inputIndex;\n"
                "  groupIDs[inputIndex+2] = groupID;\n"
                "  atomic_inc(histogramCounts+delta+2);\n"
                " }\n"
                "}\n";
        char options[256];
+       printf ("WARNING!!! single attribute grouping use immature code\n");
+       exit(1);
        snprintf(options, 256, "-DapproximationBits=%d", approximationBits);
        return compileProgram(sourceCode, options);
 }
@@ -300,7 +302,7 @@ cl_program getTwoAttributeGroupProgram(u
                "\n"
                "  const unsigned int delta = 
(firstDelta<<secondApproximationBits) + secondDelta;"
                "  const uint oldValue = atomic_cmpxchg(histogramOIDs + delta + 
2, 0, inputIndex+1);\n"
-               "  const uint groupID = oldValue?oldValue:(inputIndex);\n"
+               "  const uint groupID = oldValue?oldValue-1:(inputIndex);\n"
                "  groupIDs[inputIndex+2] = groupID;\n"
                "  atomic_inc(histogramCounts+delta+2);\n"
                " }\n"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to