diff --git a/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu b/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu index f88f3f7..46c7d37 100644 --- a/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu +++ b/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cu @@ -65,16 +65,16 @@ __global__ void processPulseKernel( ) { // - long long idx = blockIdx.x * blockDim.x + threadIdx.x; - long long pixelcount = nx * ny; - if (idx >= pixelcount) return; + int64_t idx = int64_t(blockIdx.x) * int64_t(blockDim.x) + int64_t(threadIdx.x); + int64_t pixelcount = int64_t(nx) * int64_t(ny); + if (idx >= pixelcount) { return; } //printf("processPulseKernel start!!\n"); //if (x >= nx || y >= ny) return; //int idx = x * ny + y; - + double dx = AntX - x_mat[idx]; double dy = AntY - y_mat[idx]; double dz = AntZ - z_mat[idx]; @@ -169,13 +169,12 @@ void bpBasic0CUDA(GPUDATA& data, int flag,double* h_R) { printfinfo("fft finished!!\n"); // ͼؽ - double r_start = data.r_vec[0]; double dr = (data.r_vec[data.Nfft - 1] - r_start) / (data.Nfft - 1); printfinfo("dr = %f\n",dr); - long pixelcount = data.nx* data.ny; - long grid_size = (pixelcount + BLOCK_SIZE - 1) / BLOCK_SIZE; + int64_t pixelcount = int64_t(data.nx)* int64_t(data.ny); + int64_t grid_size = (pixelcount + BLOCK_SIZE - 1) / BLOCK_SIZE; printfinfo("grid finished!!\n"); //double* d_R = (double*)mallocCUDADevice(sizeof(double) * data.nx * data.ny); diff --git a/Toolbox/SimulationSARTool/SimulationSAR/TBPImageAlgCls.cpp b/Toolbox/SimulationSARTool/SimulationSAR/TBPImageAlgCls.cpp index 6d50619..235ad8c 100644 --- a/Toolbox/SimulationSARTool/SimulationSAR/TBPImageAlgCls.cpp +++ b/Toolbox/SimulationSARTool/SimulationSAR/TBPImageAlgCls.cpp @@ -119,7 +119,7 @@ ErrorCode TBPImageAlgCls::ProcessGPU() size_t img_rowCont = L1ds->getrowCount(); size_t img_colCont = L1ds->getcolCount(); - size_t block_imgRowCount = Memory1GB / img_colCont / 8 / 3 * 1;// 4GB-- 可以分配内存 + size_t block_imgRowCount = Memory1GB / img_colCont / 8 / 3 * 12;// 4GB-- 可以分配内存 gdalImage demgridimg(imgXYZPath); gdalImageComplex im_finalds(outimgDataPath); @@ -310,7 +310,7 @@ void TBPImageAlgCls::EchoFreqToTime() gdalImageComplex outTimeEchoImg = CreategdalImageComplexNoProj(this->TimeEchoDataPath, this->TimeEchoRowCount, this->TimeEchoColCount, 1); // 分块 - long echoBlockline = Memory1GB / 8 / 2 / outColCount * 3; //1GB + long echoBlockline = Memory1GB / 8 / 2 / outColCount *2; //1GB echoBlockline = echoBlockline < 1 ? 1 : echoBlockline;