Не удается просмотреть содержимое (динамически распределяемого) массива совместно используемой памяти при отладке - PullRequest
0 голосов
/ 20 июня 2019

У меня есть код, который использует разделяемую память:

__global__ void PDH_kernel(/*arguments*/) {
    extern __shared__ atom currentBlocks[];
    int thisThread = blockDim.x * blockIdx.x + threadIdx.x;
    double dist;
    int histogramBin;
    int next;
    if (thisThread < PDH_acnt) {
        currentBlocks[threadIdx.x] = aList[thisThread];
        for (int i = blockIdx.x + 1; i < gridDim.x; i++) {
            next = thisThread + (i * blockDim.x);
            currentBlocks[threadIdx.x + blockDim.x] = aList[next];
            __syncthreads();

Когда я иду отлаживать его в Visual Studio (сообщество, 2019, версия 16.1.1) с помощью программы отладки CUDA следующего поколения (в разделе «Расширения»> «Nsight»> «Начать отладку CUDA (следующего поколения)), я m не может видеть содержимое массива currentBlocks выше; вместо этого отладчик показывает адрес массива, а затем { ??? }. Я использую конфигурацию Debug x64 для компиляции программы.

Другая информация, которая может иметь отношение к делу:

  • CUDA версия 10.1
  • NVIDIA NsightVisual Studio Edition 2019.2.0.19109

Есть ли какой-либо другой флаг, который мне нужно добавить, чтобы правильно просмотреть этот массив?

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