CUDA: Почему заполнение массива совместно используемой памяти одним столбцом снижает скорость ядра на 250%? - PullRequest
1 голос
/ 05 марта 2019
 __global__ void setRowReadColPad(int *out)
 {
    // static shared memory
    __shared__ int tile[32][33];

    // mapping from thread index to global memory offset
    unsigned int idx = threadIdx.y * blockDim.x + threadIdx.x;


    // shared memory store operation
    tile[threadIdx.y][threadIdx.x] = idx;


    // wait for all threads to complete
    __syncthreads();

    // shared memory load operation

    out[idx] = tile[threadIdx.x][threadIdx.y];

 }

С заполнением совместно используемой памяти это занимает 13,473us

Без заполнения это занимает 5,025us

Может кто-нибудь объяснить, почему заполнение имеет такое большое значение для времени выполнения ядра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...