修复bug,
parent
ad377e3165
commit
ab8ca4802f
|
@ -484,12 +484,24 @@ __global__ void Kernel_Computer_R_amp_NoAntPattern(
|
|||
long long prfId = idx / SHAREMEMORY_FLOAT_HALF;
|
||||
long long posId = idx % SHAREMEMORY_FLOAT_HALF + startPosId; // 当前线程对应的影像点
|
||||
|
||||
//if (prfId > 20000) {
|
||||
// printf("prfid %d,PRFCount : %d\n", prfId, PRFCount);
|
||||
//}
|
||||
|
||||
if (prfId < PRFCount && posId < pixelcount) {
|
||||
double RstX = antlist[prfId].Px - goallist[posId].Tx; // 计算坐标矢量
|
||||
double RstY = antlist[prfId].Py - goallist[posId].Ty;
|
||||
double RstZ = antlist[prfId].Pz - goallist[posId].Tz;
|
||||
|
||||
double RstR = sqrt(RstX * RstX + RstY * RstY + RstZ * RstZ); // 矢量距离
|
||||
|
||||
//if (prfId > 20000) {
|
||||
// printf("prfid %d,nearR R Rfar %e %e %e ant=[%e,%e,%e] dem_G=[%e,%e,%e]\n", prfId,NearR,RstR,FarR,
|
||||
// antlist[prfId].Px , antlist[prfId].Py , antlist[prfId].Pz ,
|
||||
// goallist[posId].Tx, goallist[posId].Ty, goallist[posId].Tz
|
||||
// );
|
||||
//}
|
||||
|
||||
if (RstR<NearR || RstR>FarR) {
|
||||
d_temp_R[idx] = 0;
|
||||
d_temp_amps[idx] = 0;
|
||||
|
@ -525,7 +537,9 @@ __global__ void Kernel_Computer_R_amp_NoAntPattern(
|
|||
|
||||
d_temp_amps[idx] = temp_amp * isNan;
|
||||
d_temp_R[idx] = temp_R * isNan;
|
||||
//printf("out R amp : %f %e %d %e\n", d_temp_R[idx], d_temp_amps[idx], isNan, sigma);
|
||||
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -570,10 +584,11 @@ __global__ void CUDA_Kernel_Computer_echo_NoAntPattern(
|
|||
|
||||
__syncthreads(); // 确定所有待处理数据都已经进入程序中
|
||||
|
||||
|
||||
|
||||
if (fId < maxfreqnum && prfId < temp_PRF_Count) {
|
||||
|
||||
|
||||
|
||||
|
||||
long echo_ID = prfId * maxfreqnum + fId; // 计算对应的回波位置
|
||||
float factorjTemp = RFPCPIDIVLIGHT * (f0 + fId * dfreq);
|
||||
cuComplex echo = make_cuComplex(0, 0);
|
||||
|
@ -583,7 +598,7 @@ __global__ void CUDA_Kernel_Computer_echo_NoAntPattern(
|
|||
for (long dataid = 0; dataid < SHAREMEMORY_FLOAT_HALF; dataid++) {
|
||||
|
||||
temp_phi = s_R[dataid] * factorjTemp;
|
||||
temp_amp = 1; s_amp[dataid];
|
||||
temp_amp = s_amp[dataid];
|
||||
echo.x += (temp_amp * cosf(temp_phi));
|
||||
echo.y += (temp_amp * sinf(temp_phi));
|
||||
//if (dataid > 5000) {
|
||||
|
@ -596,7 +611,7 @@ __global__ void CUDA_Kernel_Computer_echo_NoAntPattern(
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
echodata[echo_ID] = cuCaddf(echodata[echo_ID], echo);
|
||||
|
||||
}
|
||||
|
@ -695,7 +710,7 @@ extern "C" void ProcessRFPCTask(RFPCTask& task, long devid)
|
|||
{
|
||||
size_t pixelcount = task.prfNum * task.freqNum;
|
||||
size_t grid_size = (pixelcount + BLOCK_SIZE - 1) / BLOCK_SIZE;
|
||||
printf("computer pixelcount goalnum gridsize blocksize %zu,%zu ,%zu,%d\n", pixelcount, task.targetnum, grid_size, BLOCK_SIZE);
|
||||
printf("computer pixelcount goalnum gridsize blocksize prfnum %zu,%zu ,%zu,%d ,%d \n", pixelcount, task.targetnum, grid_size, BLOCK_SIZE,task.prfNum);
|
||||
|
||||
double* d_R = (double*)mallocCUDADevice(task.prfNum * SHAREMEMORY_FLOAT_HALF * sizeof(double), devid);
|
||||
double* d_amps = (double*)mallocCUDADevice(task.prfNum * SHAREMEMORY_FLOAT_HALF * sizeof(double), devid);
|
||||
|
@ -706,12 +721,13 @@ extern "C" void ProcessRFPCTask(RFPCTask& task, long devid)
|
|||
long freqpoints = BLOCK_FREQNUM;
|
||||
|
||||
printf("freqpoints:%d\n", freqpoints);
|
||||
long prfcount = task.prfNum;
|
||||
long process = 0;
|
||||
for (long sTi = 0; sTi < task.targetnum; sTi = sTi + SHAREMEMORY_FLOAT_HALF) {
|
||||
cudaBlocknum = (task.prfNum * SHAREMEMORY_FLOAT_HALF + BLOCK_SIZE - 1) / BLOCK_SIZE;
|
||||
Kernel_Computer_R_amp_NoAntPattern << <cudaBlocknum, BLOCK_SIZE >> >(
|
||||
task.antlist,
|
||||
task.prfNum,
|
||||
prfcount,
|
||||
task.goallist,
|
||||
task.targetnum,
|
||||
sTi, task.targetnum,
|
||||
|
|
|
@ -1092,7 +1092,7 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU_NoAntPattern(size_t startprfid, si
|
|||
}
|
||||
|
||||
task.antlist = (SateState*)mallocCUDADevice(prfcount * sizeof(SateState), devId);
|
||||
HostToDevice(h_antlist.get(), task.antlist, sizeof(double) * prfcount);
|
||||
HostToDevice(h_antlist.get(), task.antlist, sizeof(SateState) * prfcount);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue