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

* minor fixes in uselect


Unterschiede (78 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
@@ -31,8 +31,8 @@ const int VALUES_PER_WORK_ITEM = 1;
 extern const int VALUES_PER_WORK_ITEM;
 #endif
 /* #define MAX_INTERMEDIATE_RESULT_SIZE 16777216 */
-#define MAX_INTERMEDIATE_RESULT_SIZE 59142609
-
+/* #define MAX_INTERMEDIATE_RESULT_SIZE 59142609 */
+#define MAX_INTERMEDIATE_RESULT_SIZE 67108864
 #pragma mark Actual MAL Operations Implementation
 
 #ifdef __APPLE__
@@ -655,6 +655,7 @@ static inline unsigned int refinementLoo
                                const int positionIsCorrectPositive =           
                                                                                
                \
                                        (positionIsTruePositiveCondition);      
                                                                                
                        \
                                positionRegion[j] = index;                      
                                                                                
                                                \
+                                                                               
                                                                                
                                                                                
                                                \
                                j+= ((deCompressedValue comparator value1) &    
                                                                        \
                                                 (deCompressedValue comparator2 
value2) &                                                                       
        \
                                                 (positionIsCorrectPositive));  
                                                                                
                                \
@@ -744,6 +745,7 @@ case '=': {
 #undef refineLoopSingleOperator
 #undef refineLoopDoubleOperator
        }
+
        return j;
 }
 
@@ -801,7 +803,7 @@ str uselectrefine(bat *res, bat *bid, pt
                                        clTail* compressedTail;
                                        {
                                                size_t bufferSize;
-                                               size_t approximationSize = 
sizeof(clTail) + candidateCount * 4 * 
ceil(batTailApproximationBits(approximation)/32.0);
+                                               size_t approximationSize = 
sizeof(clTail) + ceil(candidateCount * 
batTailApproximationBits(approximation)/8.0);
 
                                                
clGetMemObjectInfo(batTailApproximation(approximation), CL_MEM_SIZE, 
sizeof(size_t), &bufferSize
                                                                                
                                         , NULL);
@@ -809,13 +811,14 @@ str uselectrefine(bat *res, bat *bid, pt
                                                compressedTail = 
GDKmalloc(approximationSize);
                                                err = 
clEnqueueReadBuffer(getCommandQueue(), batTailApproximation(approximation), 
CL_TRUE, 0, approximationSize, compressedTail , 0, NULL, NULL);       
                                                if(err) printf("#%s, 
clEnqueueReadBuffer: %s, %s:%u;\n", __func__, clError(err), __FILE__, __LINE__);
+                                               assert(compressedHead->count == 
compressedTail->count);
                                        }
 
                                        {
                                                unsigned int  j = 
refinementLoop(OP, OP2, *(int*)val, val2?*(int*)val2:0, candidateCount,
                                                                                
                                                                                
                 compressedHead, compressedTail, (unsigned int*)residuals, 
(oid*) Hloc(data, BUNfirst(data)),
-                                                                               
                                                                                
                 batTailApproximationBits(approximation),
-                                                                               
                                                                                
                 batTailResidualBits(approximation), 
+                                                                               
                                                                                
                 batTailApproximationBits(data),
+                                                                               
                                                                                
                 batTailResidualBits(data), 
                                                                                
                                                                                
                 positionRegion, (unsigned int*) data->T->heap.base);
        
                                                if(1) printf ("%s reduced the 
result from %zd to %d\n", __func__, Hloc(data, 
BUNfirst(data))?MIN(candidateCount, BATcount(data)):candidateCount, j);
@@ -1081,8 +1084,9 @@ str BWDSemijoinRefine(int *res, int *lid
                                                                
 #define projectResidualsLoop(residualPosition)                                 
                                                                \
                                                                for ( i = j = 
0; j < BATcount(right); ++j) {                                            \
-                                                                       
while(supersetPositionsColumn->positions[i]                                     
        \
-                                                                               
                != ((oid*)right->H->heap.base)[j])                              
                        \
+                                                                       
while((supersetPositionsColumn->positions[i]                                    
\
+                                                                               
                 != ((oid*)right->H->heap.base)[j])                             
                        \
+                                                                               
                && (i<supersetPositionsColumn->count))                          
        \
                                                                                
i++;                                                                            
                                                                                
                                \
                                                                                
                                                                                
                                                                                
                                                \
                                                                        {       
                                                                                
                                                                                
                                                \
@@ -1118,7 +1122,8 @@ str BWDSemijoinRefine(int *res, int *lid
                                                                        
projectResidualsLoop(i);
                                                                }
 #undef projectResidualsLoop                                                    
        
-                                                       }
+                       } 
+
 
                                                BATsetcount(refinement, 
refinementCount);
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to