У меня есть ядро, которое вызывает функцию device внутри оператора if. Код выглядит следующим образом:
__device__ void SetValues(int *ptr,int id)
{
if(ptr[threadIdx.x]==id) //question related to here
ptr[threadIdx.x]++;
}
__global__ void Kernel(int *ptr)
{
if(threadIdx.x<2)
SetValues(ptr,threadIdx.x);
}
В потоках ядра 0-1 вызывать SetValues одновременно. Что происходит после этого? Я имею в виду, что теперь есть 2 одновременных вызова SetValues. Каждый ли вызов функции выполняется последовательно? Так они ведут себя как 2 вызова функций ядра?