Hi, I'm not very familiar with VariableLengthVector but I think it is not the same as a Vector. An itk::CudaImage<itk::Vector<float,3>,2> buffer is not fragmented. In terms of performances, it depends how you use them. In our usage, I think it's more efficient to have all values belonging to a pixel next to each other in memory. No, there is no memory reorganization for the GPU, it's a straight copy of the CPU to the GPU. We use textures internally sometimes but this is done when executing the filter. Don't hesitate to describe the problem you want to solve, I can try to help... Simon
On Thu, Feb 21, 2019 at 11:45 PM Kabelitz, Gordian < gordian.kabel...@medma.uni-heidelberg.de> wrote: > Hi Simon, > > > > I asked because of the description of the itk::VectorImage ( > https://itk.org/Doxygen/html/classitk_1_1VectorImage.html): > > *“**Conceptually, a **VectorImage< TPixel, 3 >** is the same as a **Image > <https://itk.org/Doxygen/html/classitk_1_1Image.html>< > VariableLengthVector< TPixel >, 3 >**. The difference lies in the memory > organization. The latter results in a fragmented organization with each > location in the Image <https://itk.org/Doxygen/html/classitk_1_1Image.html>** > holding > a pointer to an **VariableLengthVector > <https://itk.org/Doxygen/html/classitk_1_1VariableLengthVector.html>** holding > the actual pixel. The former stores the **k** pixels instead of a pointer > reference, which apart from avoiding fragmentation of memory also avoids > storing a 8 bytes of pointer reference for each pixel. The parameter **k** can > be set using **SetVectorLength**.”* > > > > Does it make any performance differences on the CPU algorithms? > > I guess that the memory is reorganized in the rtk::CudaImageFilter to make > it more efficient on the GPU (like a new image for each vector component). > Or it is handled in a different way? > > > > I think it will be more time consuming and error prone to do it by myself > since I am not very familiar with GPU memory management. > > > > Gordian > > > > *Von:* Simon Rit [mailto:simon....@creatis.insa-lyon.fr] > *Gesendet:* Mittwoch, 20. Februar 2019 16:27 > *An:* Kabelitz, Gordian > *Cc:* rtk-users@public.kitware.com > *Betreff:* Re: [Rtk-users] rtk::CudaVectorImage available > > > > Hi Gordian, > > I don't think so. We have successfully used images of vectors (e.g., > itk::CudaImage<itk::Vector<float,3>,2>) but I have never used VectorImage > and I think you would need to rewrite an itk::CudaVectorImage to do so. I'm > not sure how difficult that would be... > > Simon > > > > On Wed, Feb 20, 2019 at 4:13 PM Kabelitz, Gordian < > gordian.kabel...@medma.uni-heidelberg.de> wrote: > > Hello, > > > > I am looking for a ITKCudaCommon datatype that resembles the > itk::VectorImage. > > > > Is there a possibility to use itk::CudaImage somehow or other workarounds? > > > > Thanks in advance, > > Gordian > > _______________________________________________ > Rtk-users mailing list > Rtk-users@public.kitware.com > https://public.kitware.com/mailman/listinfo/rtk-users > >
_______________________________________________ Rtk-users mailing list Rtk-users@public.kitware.com https://public.kitware.com/mailman/listinfo/rtk-users