同步算法bug

pull/13/head
陈增辉 2025-03-24 14:33:21 +08:00
parent 25057d0b62
commit 3512ebfe69
2 changed files with 12 additions and 11 deletions

View File

@ -486,9 +486,9 @@ __global__ void Kernel_Computer_R_amp_NoAntPattern(
double NearR, double FarR, double NearR, double FarR,
double* d_temp_R, double* d_temp_amps// 计算输出 double* d_temp_R, double* d_temp_amps// 计算输出
) { ) {
long idx = blockIdx.x * blockDim.x + threadIdx.x; // 获取当前的线程编码 long long idx = blockIdx.x * blockDim.x + threadIdx.x; // 获取当前的线程编码
long prfId = idx / SHAREMEMORY_FLOAT_HALF; long long prfId = idx / SHAREMEMORY_FLOAT_HALF;
long posId = idx % SHAREMEMORY_FLOAT_HALF + startPosId; // 当前线程对应的影像点 long long posId = idx % SHAREMEMORY_FLOAT_HALF + startPosId; // 当前线程对应的影像点
if (prfId < PRFCount && posId < pixelcount) { if (prfId < PRFCount && posId < pixelcount) {
double RstX = antlist[prfId].Px - goallist[posId].Tx; // 计算坐标矢量 double RstX = antlist[prfId].Px - goallist[posId].Tx; // 计算坐标矢量
@ -552,14 +552,14 @@ __global__ void CUDA_Kernel_Computer_echo_NoAntPattern(
__shared__ float s_R[SHAREMEMORY_FLOAT_HALF]; // 注意一个完整的block_size 共享相同内存 __shared__ float s_R[SHAREMEMORY_FLOAT_HALF]; // 注意一个完整的block_size 共享相同内存
__shared__ float s_amp[SHAREMEMORY_FLOAT_HALF]; __shared__ float s_amp[SHAREMEMORY_FLOAT_HALF];
long tid = threadIdx.x; long long tid = threadIdx.x;
long bid = blockIdx.x; long long bid = blockIdx.x;
long idx = bid * blockDim.x + tid; long long idx = bid * blockDim.x + tid;
long prfId = idx / FreqPoints; // 脉冲ID long long prfId = idx / FreqPoints; // 脉冲ID
long fId = idx % FreqPoints;//频率ID long long fId = idx % FreqPoints;//频率ID
long psid = 0; long long psid = 0;
long pixelId = 0; long long pixelId = 0;
for (long ii = 0; ii < SHAREMEMORY_FLOAT_HALF_STEP; ii++) { // SHAREMEMORY_FLOAT_HALF_STEP * BLOCK_SIZE=SHAREMEMORY_FLOAT_HALF for (long ii = 0; ii < SHAREMEMORY_FLOAT_HALF_STEP; ii++) { // SHAREMEMORY_FLOAT_HALF_STEP * BLOCK_SIZE=SHAREMEMORY_FLOAT_HALF
psid = tid * SHAREMEMORY_FLOAT_HALF_STEP + ii; psid = tid * SHAREMEMORY_FLOAT_HALF_STEP + ii;
pixelId = prfId * posNum + psid; // pixelId = prfId * posNum + psid; //
@ -743,7 +743,7 @@ extern "C" void ProcessRFPCTask(RFPCTask& task, long devid)
cudaDeviceSynchronize(); cudaDeviceSynchronize();
if ((sTi * 100.0 / task.targetnum) - process >= 1) { if ((sTi * 100.0 / task.targetnum) - process >= 1) {
process = sTi * 100.0 / task.targetnum; process = sTi * 100.0 / task.targetnum;
PRINT("TargetID [%f]: %d / %d finished\n", sTi * 100.0 / task.targetnum, sTi, task.targetnum); PRINT("TargetID [%f]: %d / %d finished %d\n", sTi * 100.0 / task.targetnum, sTi, task.targetnum,devid);
} }

View File

@ -1022,6 +1022,7 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU_NoAntPattern(size_t startprfid, si
std::pair<long, std::shared_ptr<GoalState>>( std::pair<long, std::shared_ptr<GoalState>>(
pair.first, pair.first,
std::shared_ptr<GoalState>((GoalState*)mallocCUDAHost(sizeof(GoalState) * pair.second), FreeCUDAHost))); std::shared_ptr<GoalState>((GoalState*)mallocCUDAHost(sizeof(GoalState) * pair.second), FreeCUDAHost)));
PRINT("clsid : %d ,Count: %d\n", pair.first, pair.second);
} }
} }