view example/bitonic_sort/cuda/swap.cu @ 2069:26aa08c9a1de draft default tip

cuda example fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 12 Feb 2017 10:04:55 +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;
        }
    }        
}