CUDA: Aufruf einer Funktion __device__ von einem Kernel

Habe ich einen kernel, der ruft eine Gerät Funktion innerhalb einer if-Anweisung. Der code ist wie folgt:

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

In der kernel-threads 0-1 nennen SetValues gleichzeitig. Was passiert danach? Ich meine, es sind nun 2 gleichzeitige Anrufe zu SetValues. Jeder Funktionsaufruf ausführen Seriell? So Verhalten Sie sich wie 2 kernel-Funktion Aufrufe?

InformationsquelleAutor der Frage scatman | 2011-04-19

Schreibe einen Kommentar