[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