CUDA: Chamando uma função __device__ de um kernel

Tenho um kernel que chamadispositiv dentro de uma instrução if. O código é o seguinte:

__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);
}

Nos threads do kernel 0-1, chame SetValues simultaneamente. O que acontece depois disso? Quero dizer, agora existem 2 chamadas simultâneas para SetValues. Toda chamada de função é executada em série? Então eles se comportam como duas chamadas de função do kernel?

questionAnswers(1)

yourAnswerToTheQuestion