<div dir="ltr"><div>Hi all,</div><div><br></div><div>When testing CUDA-based FDK I found the CudaFDKWeightProjectionFilter seems to rerun unnecessarily. Details below:</div><div><br></div><div><div>In FDKConeBeamReconstructionFilter<TInputImage, TOutputImage, TFFTPrecision>::GenerateData() the three sub-filters run separately for timing:</div></div><div><br></div><div>    m_PreFilterProbe.Start();</div><div>    m_WeightFilter->Update();<br></div><div>    m_PreFilterProbe.Stop();<br></div><div><br></div><div>    m_FilterProbe.Start();</div><div><span style="white-space:pre">    </span>m_RampFilter->Update();<br></div><div><span class="" style="white-space:pre">    </span>m_FilterProbe.Stop();<br></div><div><br></div><div>    m_BackProjectionProbe.Start();</div><div>    m_BackProjectionFilter->Update();<br></div><div>    m_BackProjectionProbe.Stop();<br></div><div><br></div><div>However with some debug procedure I found when executing m_RampFilter->Update() the m_WeightFilter is updated again. Maybe there's something wrong with filter modified time or flags of CPU/GPU buffer?</div><div><br></div><div>Furthermore, if I remove m_WeightFilter->Update() then both m_WeightFilter and m_RampFilter will rerun during update of m_BackProjectionFilter. Only if I remove both m_WeightFilter->Update() and m_RampFilter->Update() and let m_BackProjectionFilter execute the whole minipipeline, all filters will run nicely only once for each projection subset.</div><div><br></div><div>The results are identical for all cases I tested.</div><div><br></div><div>I did not check whether the same issue applies to the CPU or OpenCL version.</div><div><br></div><div>Regards,</div><div>Chao</div></div>