OpenMP с CUDA дает ошибку сегментации при запуске в другом GPU, а не 0 - PullRequest
2 голосов
/ 27 октября 2011

Я работаю с cuda и использую openMP для параллельной работы:

#pragma omp parallel
{
    unsigned int cpu_thread_id = omp_get_thread_num();
    cudaSetDevice(cpu_thread_id);

    if(cpu_thread_id==0) 
    {
        // call kernel function
    }
}

Он всегда работает с cpu_thread_id = 0, даже если у меня 4 gpus. Поэтому, когда я меняю cpu_thread_id на другое число 1,2 и 3 для тестирования. Я получил: ошибка сегментации. с этой ошибкой, я понятия не имею, почему это проблема.

Вы заметили что-нибудь?

Заранее спасибо

1 Ответ

0 голосов
/ 02 ноября 2011

Я добавил мьютекс между потоками, и он работает.Я не знаю, почему это так ...

...