[Rtk-users] SimpleRTK : help for defining a correct json file for CudaBackProjectionImageFilter

Yannick Boursier boursier at cppm.in2p3.fr
Fri Dec 22 17:42:38 EST 2017


Ok thanks for this important precision.

Just a remark, I don't have access to the SetStepSize() function through 
SimpleRTK. Is it normal ? Does it come from the .json file or the template ?

Thanks in advance.
Yannick


Le 22/12/2017 à 23:34, Simon Rit a écrit :
> No it doesn't, it's voxel based. The adjoint which uses the step size 
> is CudaRayCastBackProjectionImageFilter 
> <http://www.openrtk.org/Doxygen/classrtk_1_1CudaRayCastBackProjectionImageFilter.html> 
> but it's very slow and we never use it in practice because it's not 
> practical. When we want to use adjoint operators, we mainly use the 
> CPU version, with double precision when adjointness is very important.
> Simon
>
> On Fri, Dec 22, 2017 at 11:31 PM, Yannick Boursier 
> <boursier at cppm.in2p3.fr <mailto:boursier at cppm.in2p3.fr>> wrote:
>
>     Hi Simon,
>
>     Thank you a lot for your answer, I will try to put the step size
>     to the voxel size then (if I understand well). It seems that the
>     implementation of the CudaBackProjectionImageFilter doesn't use
>     any stepsize. I'll let you know.
>
>     Merry Christmas to you,
>     Yannick
>
>
>     Le 22/12/2017 à 22:55, Simon Rit a écrit :
>>     Hi Yannick,
>>     I would just try to change the step size
>>     <http://www.openrtk.org/Doxygen/classrtk_1_1CudaForwardProjectionImageFilter.html#a93671bae5219bada43b9a00b6046dbed>.
>>     Indeed, the CPU version is the Joseph projector and it adapts
>>     automatically the step size to each ray for bilinear
>>     interpolation in each slice. The GPU version is a fixed step size
>>     combined with a trilinear interpolation.
>>     Merry Christmas to you,
>>     Simon
>>
>>     On Fri, Dec 22, 2017 at 9:17 PM, Yannick Boursier
>>     <boursier at cppm.in2p3.fr <mailto:boursier at cppm.in2p3.fr>> wrote:
>>
>>         Hi Cyril,
>>
>>         Sorry for my late answer. First thank you because your last
>>         trick (removing <InpuImageType>) worked, I correctly compiled
>>         and installed everything.
>>
>>         I am late because I thought that I did something wrong since
>>         when I tested the code by simply projecting then
>>         backprojecting a simple volume, the results between the
>>         CPU-codes and GPU-codes were different and the GPU result cas
>>         clearly wrong.
>>
>>         I understood this morning the problem and put it in evidence
>>         : the CudaForwardProjectionImageFilter seems to be not
>>         adapted to the case when the size of voxels and pixels are
>>         not equal to 1 whereas the CudaBackProjectionImageFilter is
>>         OK for that !!
>>
>>         I will try to debug it and let you know.
>>
>>         I wish to all of you a Merry Christmas and relaxing holidays.
>>
>>         Best ,
>>
>>         Yannick
>>
>>
>>         Le 18/12/2017 à 16:52, Cyril Mory a écrit :
>>>
>>>         Hi again Yannick,
>>>
>>>         Simply removing the <InputImageType> on line 9 of your .json
>>>         file made it compile. I didn't test it yet. Let us know if
>>>         that works for you.
>>>
>>>         Cyril
>>>
>>>
>>>         On 18/12/2017 16:31, Cyril Mory wrote:
>>>>
>>>>         Hi Yannick,
>>>>
>>>>         You seem to be in a hurry, so I'll start with an incomplete
>>>>         answer: the CudaForwardProjectionImageFilter is templated
>>>>         over its input and output image type, but the
>>>>         CudaBackProjectionImageFilter isn't (compare
>>>>         rtkCudaForwardProjectionImageFilter.h and
>>>>         rtkCudaBackProjectionImageFilter.h, there is not "template
>>>>         <>" before the class definition in ...Back..., while it is
>>>>         there in ...Forward...).
>>>>
>>>>         I'm trying to modify your .json file accordingly, recompile
>>>>         and test, but I never use SimpleRTK myself, so you might
>>>>         find the solution before I do. If so, please report back on
>>>>         this mailing list.
>>>>
>>>>         Cyril
>>>>
>>>>
>>>>         On 18/12/2017 16:07, Yannick BOURSIER wrote:
>>>>>         Hello all,
>>>>>
>>>>>         I really need in "relative" emergency to execute the kernel CudaBackProjectionImageFilter using the Python Wrapper provided by SimpleRTK.
>>>>>         Unfortunately, this is not implemented in cuda (CudaForwardProjectionImageFilter is but not the BackProjection).
>>>>>
>>>>>         I tried to define a json file (in attachement) on the base of CudaForwardProjectionImageFilter (since all the h, hxx, cxx, files I looked at seemed to be the same for these two kernels) but it does not compile (cmake instruction OK but not the make instruction) with the following error :
>>>>>
>>>>>         /data/boursier/Compile/rtk-bin-extended/SimpleRTK-build/Code/BasicFilters/src/srtkCudaBackProjectionImageFilter.cxx: In member function ‘rtk::simple::Image rtk::simple::CudaBackProjectionImageFilter::ExecuteInternal(const rtk::simple::Image&, const rtk::simple::Image&)’:
>>>>>         /data/boursier/Compile/rtk-bin-extended/SimpleRTK-build/Code/BasicFilters/src/srtkCudaBackProjectionImageFilter.cxx:132:16: error: ‘rtk::CudaBackProjectionImageFilter’ is not a template
>>>>>             typedef rtk::CudaBackProjectionImageFilter<InputImageType> FilterType;
>>>>>
>>>>>         I would very much appreciate some help please because at this point, I have no idea about the problem...
>>>>>         Thanks in advance,
>>>>>         Best regards,
>>>>>         Yannick Boursier
>>>>>
>>>>>
>>>>>         _______________________________________________
>>>>>         Rtk-users mailing list
>>>>>         Rtk-users at public.kitware.com
>>>>>         <mailto:Rtk-users at public.kitware.com>
>>>>>         https://public.kitware.com/mailman/listinfo/rtk-users
>>>>>         <https://public.kitware.com/mailman/listinfo/rtk-users>
>>>>
>>>
>>
>>
>>         _______________________________________________
>>         Rtk-users mailing list
>>         Rtk-users at public.kitware.com
>>         <mailto:Rtk-users at public.kitware.com>
>>         https://public.kitware.com/mailman/listinfo/rtk-users
>>         <https://public.kitware.com/mailman/listinfo/rtk-users>
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20171222/f57a4485/attachment-0001.html>


More information about the Rtk-users mailing list