25 #include "cheetah/fldo/cuda/detail/FldoUtils.h" 48 void rebin_input_data(
int start,
int current,
int nchannels, std::vector<CandidateRebin>
const &rebin)
55 int nblock_y = (nchannels + (tile_dimy - 1))/tile_dimy;
56 int nblock_x = (rebin[start].pitch_dim + (tile_dimx - 1))/tile_dimx;
57 dim3 grid(nblock_x, nblock_y);
58 dim3 threads(tile_dimx, tile_dimy);
59 PANDA_LOG_DEBUG <<
"Call to bin input data: threads = (" 68 PANDA_LOG_DEBUG <<
"rebin_input_data: start binning: " 72 <<
") current binning: " 75 << rebin[current].rebin
78 int prebin = rebin[current].rebin/rebin[start].rebin;
86 binInputKernel_shfl<<<grid,threads, 0, rebin[current].stream>>>
87 (rebin[current].d_out,
89 rebin[start].pitch_dim,
90 rebin[current].pitch_dim,
93 int shared_memory_size = tile_dimx * tile_dimy *
sizeof(float);
94 binInputKernel<<<grid,threads, shared_memory_size, rebin[current].stream>>>
95 (rebin[current].d_out,
98 rebin[start].pitch_dim,
99 rebin[current].pitch_dim,
103 CUDA_ERROR_CHECK(cudaGetLastError());
104 CUDA_ERROR_CHECK(cudaEventRecord(rebin[current].event, rebin[current].stream));
105 PANDA_LOG_DEBUG <<
"Succes in rebinning kernel execution";
Some limits and constants for FLDO.