CUDA: необходимость синхронизации для чтения переменной памяти устройства - PullRequest
1 голос
/ 30 января 2012

Я запускаю итеративную программу в cuda, которая работает до сходимости.Как сказано в этом посте SO ( Являются ли ядра CUDA синхронными или асинхронными ), с точки зрения CPU, ядра CUDA являются асинхронными.

В моей программе одно из ядер проверяетсходимости и возвращает логическое значение для хоста для чтения.Я хотел знать, нужно ли мне делать

cudaDeviceSynchronize()

перед чтением логического значения?

1 Ответ

5 голосов
/ 30 января 2012

Зависит от того, как вы возвращаете логическое значение обратно в CPU. вы используете cudaMemcpy? если да, то вам не нужно использовать cudaDeviceSynchronize (), поскольку cudaMemcpy будет блокировать, пока ядро ​​не завершит выполнение, а затем скопирует данные из GPU в CPU.

...