我有一个内核,其中在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函数。这之后会发生什么?我的意思是现在有两个并发的SetValues调用。每个函数调用都会串行执行吗?它们就像2个内核函数调用一样吗?