требование cudaThreadSynchronize () - PullRequest
       3

требование cudaThreadSynchronize ()

2 голосов
/ 31 августа 2010

У меня есть программа cuda, подобная этой:

for (int i=0;i<100000;i++) {
  if (i%2 == 0) {
    bind_x(x) // bind x to texture
    kernel_code<<A,B>>(M,x,y) // calculate y = M*x
  }
  else {
    bind_x(y)
    kernel_code<<A,B>>(M,y,x) // calculate x = M*y
  }

  cudaThreadSynchronize();

  if (i%2 == 0)
    unbind_x(x)
  else 
    unbind_x(y) // unbind x from texture
}

Я слышал, что если я не поставлю cudaThreadSynchronize();, процессор продолжит работу, не дожидаясь окончания ядра, так что ... Должен ли я вызватьcudaThreadSynchronize() перед unbind_x ().Я пытаюсь запустить с & без, результат тот же?!?(А по идее не должно)

1 Ответ

4 голосов
/ 31 августа 2010

Любая операция CUDA (кроме специальных асинхронных операций) вызовет cudaThreadSynchronize() автоматически.Итак, результаты должны быть одинаковыми.

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