2
我使用CUDA的,並使用OpenMP並行線程時給予分段錯誤:的OpenMP與CUDA在另一個GPU上運行,而不是0
#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個GPU。所以當我將cpu_thread_id更改爲另一個數字1,2和3以進行測試時。我得到了:分段錯誤。有這個錯誤,我不知道爲什麼它是這個問題。
你有沒有注意到任何東西?
在此先感謝
你可以編輯的問題,包括一些關於如何在內核中傳遞的參數正在分配(特別是線程)的信息?另外,你在做什麼CUDA版本? – talonmies
你確定所有的CUDA GPU都被正確檢測到了嗎?嘗試調用cudaGetDeviceCount並查看它是否返回正確數量的GPU。 – Tudor