cudaMemcpy - ПРОВЕРКА - PullRequest
       5

cudaMemcpy - ПРОВЕРКА

0 голосов
/ 22 июня 2010

Может кто-нибудь дать мне совет в следующем.Я копирую некоторые данные из процессора в графический процессор, и мне нужно знать, скопированы ли его права.Я могу проверить код возврата cudeMemcpy, но было бы намного лучше, если бы я мог распечатать массив в графическом процессоре.

int doCopyMemory(char * Input, int InputBytes)
{
        /* Copying needed data on GPU */
    cudaError_t s = cudaMemcpy      ( SOURCE_DATA, Input, InputBytes, cudaMemcpyHostToDevice );
    if (s != cudaSuccess) return 0;
    else return 100;
}

Мне нужно увидеть содержимое SOURCE_DATA после копирования.Спасибо в совете.

Ответы [ 3 ]

1 голос
/ 23 июня 2010

Вы говорите, что видели, что копия была неудачной, но cudaMemcpy возвращает cudaSuccess?Я никогда не видел это, и если у вас есть, то вы должны отправить сообщение об ошибке.

С другой стороны, если вы просто делаете дополнительные проверки по какой-то причине (паранойя ?!), то вы можете просто скопировать обратно,Вы можете печатать с графического процессора (проверьте cuPrintf в вычислительной возможности 1.x или просто используйте printf, если у вас есть устройство 2.x), но для того, что вы делаете, лучше скопировать обратно на хост.

1 голос
/ 22 июня 2010

Вы можете просто скопировать память обратно (cudaMemcpyDeviceToHost) в другой временный буфер на хосте и проверить, соответствует ли он исходному буферу.

0 голосов
/ 01 мая 2011

Отображенная закрепленная память очень полезна для этого сценария отладки, поскольку вы можете иметь указатели хоста и устройства на одну и ту же память.Только не забудьте вызвать cudaThreadSynchronize (), чтобы убедиться, что графический процессор завершает обработку (или, в Windows Vista или Windows 7, что работа передается в графический процессор) перед проверкой памяти.

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