view example/bitonic_sort/cuda/swap.cu @ 2054:2e7a6f40672f draft

add param(4) in FileMapReduce.cc
author masa
date Fri, 29 Jan 2016 15:56:28 +0900
parents bc010492ade4
children
line wrap: on
line source

extern "C" {
    __global__ void
    swap(long* param, int* Data)
    {
        long block = param[0];
        long first = param[1];
        int x = blockIdx.x*blockDim.x+threadIdx.x;
        
        int position = x/block;
        int index = x+block*position;
        
        block = (first == 1) ? ((block<<1)*(position+1))-(index%block)-1 : index+block;
    
        if (Data[block] < Data[index]) {
            int tmp = Data[index];
            Data[index] = Data[block];
            Data[block] = tmp;
        }
    }        
}