231
社区成员
发帖
与我相关
我的任务
分享
__global__ void GetJointEntropyKernel(float * JonEnt, int * ang1, int * ang2, int xDim, int yDim, int zDim ,int Num)
{
int pid = threadIdx.x+blockIdx.x*blockDim.x;
if (pid<Num)
{
float HXY=0.0;
float pxy=0.0;;
int ptNum=0;
int idx,idy,idz;
int vpid;
idx=pid%xDim;
idz=pid/(xDim*yDim);
idy=pid/xDim-idz*yDim;
for (int vi=0;vi<360;vi++)
{
for (int vj=0;vj<360;vj++)
{
for (int k=-6;k<7;k++)
{
for (int j=-6;j<7;j++)
{
for (int i=-6;i<7;i++)
{
if ((i+idx)>=0&&(i+idx)<xDim&&(j+idy)>=0&&(j+idy)<yDim&&(k+idz)>=0&&(k+idz)<zDim)
{
vpid=(idx+i)+(idy+j)*xDim+(idz+k)*xDim*yDim;
if (vpid>=0&&vpid<Num)
{
if (ang1[vpid]==vi&&ang2[vpid]==vj)
{
pxy+=1;
++ptNum;
}
}
}
}
}
}
if (fabs(pxy)>1e-6)
{
HXY+=pxy*log(pxy);
}
}
}
JonEnt[pid]=HXY/(log(2.0)*ptNum)-log(float(ptNum));
}
}
cudaThreadSynchronize returned error code 6 after launching GetCEKernel!
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0012fdcc..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0012fdc8..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0012fdc8..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0012fdc8..
First-chance exception at 0x7c812fd3 in myCuda1.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..