[Rtk-users] Difference in rtkfdk (cpu) speed/threading

Simon Rit simon.rit at creatis.insa-lyon.fr
Wed May 28 16:48:20 CEST 2014


Hi Ben,
It was on my todo list. I found the problem and here is the fix:
https://github.com/SimonRit/RTK/commit/8eca086de6d67f390f985a74d8df239a60a09ce7
Multithreading was indeed disabled as you pointed out, I had to
remember pieces of code that were quite old (for an animal like me).
Thanks again for the detailed report,
Simon

On Thu, Feb 20, 2014 at 12:20 PM, Ben Champion
<benjamin.champion.13 at ucl.ac.uk> wrote:
> Hi Simon,
>
> Really appreciate your prompt response!
>
> Indeed, I was not using FFTW. After rebuilding ITK with FFTW, I get faster
> reconstructions, and the time increase between the two commits reduces to a
> little over 2x (See below).
>
> My dataset consists of 344 projections (about 172.0 MB)
>
> Does this sound about right? The CPU utilization still looks a bit like a
> series of spikes for the latter commit (but different than before).
>
> Reconstructing and writing... It took 36.0746 s
> FDKConeBeamReconstructionFilter timing:
>   Prefilter operations: 2.59479 s
>   Ramp filter: 19.3106 s
>   Backprojection: 13.8042 s
>
> ***versus***
>
> Reconstructing and writing... It took 83.4121 s
> FDKConeBeamReconstructionFilter timing:
>   Prefilter operations: 2.62535 s
>   Ramp filter: 66.5537 s
>   Backprojection: 13.8829 s
>
> Thanks again,
>
> Ben
>
>
>
>
> On 20/02/14 06:57, Simon Rit wrote:
>>
>> Hi,
>> Thank you Ben for the amazing report. I can spot a few things that
>> could have gone wrong there but it seems to me that your
>> reconstruction is slow both before and after the commit... Two
>> potential reasons:
>> - you have not activated FFTW in ITK. You should definitely do that,
>> the FFT of ITK is (very) slow and probably not multithreaded. You must
>> turn on ITK_USE_FFTWD and ITK_USE_FFTWF. Be careful to use a recent
>> version of ITK4, I had some issues with the first versions, see
>> http://www.itk.org/pipermail/insight-users/2013-April/047562.html
>> - you are using a huge dataset.
>> If you did not use FFTW, could you try again with FFTW and tell us if
>> you still observe a drop in performances? If you had FFTW, can you
>> provide the sie of the dataset you used?
>> Thanks,
>> Simon
>>
>> On Wed, Feb 19, 2014 at 6:35 PM, Ben Champion
>> <benjamin.champion.13 at ucl.ac.uk>  wrote:
>>>
>>> Hello,
>>>
>>> First of all, many thanks to the RTK community for this useful toolkit!
>>>
>>> While experimenting with different versions of the code (I'm a relatively
>>> new user), I've encountered large differences in rtkfdk (CPU)
>>> reconstruction
>>> speed between code versions (a newer version being substantially slower
>>> than
>>> an older version).
>>>
>>> To test I ran rtkfdk with "--hardware 'cpu' --verbose" (as well as the
>>> required -g, -p, -r and -o flags, but no other flags).
>>>
>>> Using git-bisect, I narrowed it down to a particular commit. The parent
>>> commit runs quite quickly, but the child commit shows nearly 4x
>>> reconstruction time, and less-uniform CPU utilization (it looks like a
>>> series of spikes).
>>>
>>> (See below)
>>>
>>> Looking at the diffs, it seems that in addition to adding the HannY
>>> functionality (which should be disabled by default?), there were some
>>> changes in this commit related to threading (in
>>> code/rtkFFTRampImageFilter.{h,txx}). However, perhaps threading is
>>> misleading and the substantial difference consists in changing the FFT
>>> Ramp
>>> Kernel.
>>>
>>> I'm currently reading the source to try to understand those changes, but
>>> I
>>> thought I would post in case someone is able to point me in the right
>>> direction. Although these differences are unexpected to me, I doubt that
>>> they are unexpected to more experienced users...!
>>>
>>> Apologies if I've left out any critical information (or if I've provided
>>> too
>>> much!).
>>>
>>> Many thanks in advance,
>>> Ben
>>>
>>> ****** Parent Commit ******
>>> commit 9df6108ae0293f86b455a2dcd4b35801e4815718
>>> Author: Julien Jomier<julien.jomier at kitware.com>
>>> Date:   Fri Nov 30 09:30:59 2012 +0100
>>>
>>>      ENH: Minimum CMake version is 2.8.3
>>>
>>> ***Partial output***
>>>
>>> Reconstructing and writing... It took 44.3992 s
>>> FDKConeBeamReconstructionFilter timing:
>>>    Prefilter operations: 2.67915 s
>>>    Ramp filter: 26.3847 s
>>>    Backprojection: 13.0447 s
>>>
>>> ***Screenshot of CPU usage attached:
>>> 9df6108ae0293f86b455a2dcd4b35801e4815718.png ***
>>>
>>> ****** Child Commit ******
>>> commit e223a2ed2200bbd7d86966d4eb27319ed589ee00
>>> Author: Simon Rit<simon.rit at creatis.insa-lyon.fr>
>>> Date:   Wed Dec 5 16:22:47 2012 +0100
>>>
>>>      First version of Hann windowing in the second direction
>>> (perpendicular
>>> to the ramp)
>>>
>>> ***Partial output***
>>> Reconstructing and writing... It took 126.911 s
>>> FDKConeBeamReconstructionFilter timing:
>>>    Prefilter operations: 2.47678 s
>>>    Ramp filter: 108.254 s
>>>    Backprojection: 13.2973 s
>>>
>>> ***Screenshot of CPU usage attached:
>>> e223a2ed2200bbd7d86966d4eb27319ed589ee00.png***
>>>
>>>
>>>
>>> _______________________________________________
>>> Rtk-users mailing list
>>> Rtk-users at openrtk.org
>>> http://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users
>>>
>



More information about the Rtk-users mailing list