计算c=a+b的核函数
global void deviceAdd(char *a,char *b,char *c,int N)
{
shared char d[1024];
shared int pd;
int tid = threadIdx.x;
if(tid==0)
pd = 0;
if(tid<N)
{
int sum = a[tid]+b[tid];
c[tid] = sum%10;
d[tid] = sum/10;
pd += d[tid];
}
__syncthreads();
while(pd)
{
pd = 0;
int sum = c[0];
if(tid>=1)
{
sum = c[tid] + d[tid-1];
c[tid] = sum%10;
}
__syncthreads();
d[tid] = sum/10;
pd += d[tid];
}
if(tid==0)
c[N] = d[N-1];
}
不明白pd的作用