[ITK-users] How to analyse the time taken by each module? and use of ELASTIX in ITK !?!

Denis Shamonin dshamoni at gmail.com
Mon Jan 18 10:16:13 EST 2016


Hi Vishal,

1. One of the ways of profiling on Linux is using callgrind for collecting
the performance profiling information http://linux.die.net/man/1/callgrind
   command = "valgrind --tool=callgrind " + appname + call + " -out " + out
   That will generate profile files like callgrind.out.xxxx. Then you could
use the KCachegrind tool http://kcachegrind.sourceforge.net/html/Home.html
   to visualize this files and see all the timings. No special code
injections or compilation flags are needed.

2. The resampling (itk::ResampleImageFilter) part of the image registration
is highly optimized for GPU.
   The performance reaches incredible 0.1 sec execution time on modern
cards, depending on image size, interpolator and transformations.
   The work and source code could be found at Insight Journal
http://insight-journal.org/browse/publication/884

   It is possible to convert some algorithms to GPU, but would require
skill, time and a lot of testing. Good luck with that ;)

   You could relatively easy integrate (itk::GPUResampleImageFilter) in
your application, see itkGPUResampleImageFilterTest.cxx of the submission.
   One way to use ::RegisterOneFactory() calls to replace CPU version with
GPU, other way explicit creation.
   -  See test\itkGPUResampleImageFilterTest.cxx for implicit replacement
of the itk::ResampleImageFilter to GPU version.
   -  See the elastix component called OpenCLResampler in  elastix\
src\Components\Resamplers\OpenCLResampler.

3. The elastix a toolbox for rigid and nonrigid registration of images
http://elastix.isi.uu.nl
   To enable GPU resampling (itk::GPUResampleImageFilter) in elastix, just
set this two parameters (below) to true and enjoy.
   Resampler "OpenCLResampler"
   OpenCLResamplerUseOpenCL "true"

   Regards,

   Denis P. Shamonin,
   Division of Image Processing (LKEB)
   Department of Radiology
   Leiden University Medical Center


On 15 January 2016 at 09:28, vishal <itkhelpacc at gmail.com> wrote:

> Hi,
> I have three question:
>
> [1] I working on a registration algorithm that takes half an hour to
> converge... I want to optimize my code.. so I need to no which module takes
> the most computation time.. is there any method to do this?
>
> [2] after analysing the code is it possible to convert the CPU based module
> to GPU based module? Can any one guide to do that?
>
> [3] I came across this software called ELASTIX.. wherein there are many ITK
> modules written to run on GPU.. is it possible for me to include these
> modules into my code directly??
>
> any suggestion is appreciated...
> thank you
>
> Regards
> Vishal
>
>
>
>
> --
> View this message in context:
> http://itk-users.7.n7.nabble.com/How-to-analyse-the-time-taken-by-each-module-and-use-of-ELASTIX-in-ITK-tp36650.html
> Sent from the ITK - Users mailing list archive at Nabble.com.
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160118/e70b90ec/attachment.html>


More information about the Insight-users mailing list