currybab's blog

pmpp lecture 13 histogram 요약

Source: Lecture 13 - Histogram

Today

Histogram

Color Histogram

for (int i = 0; i < width * height; i++) {
    unsigned char b = image[i];
    ++bins[b];
}
    __global__ void histogram(unsigned char* image, unsigned int* bins, unsigned int width, unsigned int height) {
        int i = threadIdx.x + blockIdx.x * blockDim.x;
        if (i < width * height) {
            unsigned char b = image[i];
            ++bins[b]; // !!!! Data Race error
            // atomicAdd(&bins[b], 1);
        }
    } 

Data Races

Mutual Exclusion(상호 배타)

Locks and SIMD Execution

Atomic Operations (원자적 연산)

Atomic Operations in CUDA

High Latency

Privatization

Coarsening

#blog #cuda #gpu #pmpp