のではなく、別のGPUで実行している場合、セグメンテーションフォールトを与えるCUDAと:それは常にcpu_thread_idで作業しているは、OpenMP私はCUDAでの作業と並行スレッドのためのOpenMPを使用しています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
}
}
= 0であっても私は4つのGPUを持っています。だから、私はcpu_thread_idを別の番号1,2、および3に変更してテストします。私はセグメンテーションフォルトを持っています。このエラーで、私はなぜそれが問題であるか分かりません。
お気づきのことはありますか?事前
カーネルで渡している引数がどのように割り当てられているか(特にスレッディング)に関する質問を編集できますか?また、どのCUDAバージョンでこれをやっていますか? – talonmies
すべてのCUDA GPUが正しく検出されていますか? cudaGetDeviceCountを呼び出して、正しい数のGPUを返すかどうかを確認してください。 – Tudor