<div dir="ltr">Hello,<br><br>Regarding the step issue, indeed it represents the distance between sampling points in the ray going through the volume.<br>For the GPU version this distance is in mm, so you must adapt it to the volume resolution like Simon said.<br>

For the CPU version the step is automatically adapted: the ray has a "main axis", and the step is calculated such as the ray go through every volume pixel along this axis. For example, if the main axis is x, the step will be (1,dy,dz) in pixel coordinates.<br>

<br>If something is unclear, feel free to ask me.<br><br>Coulange Tristan<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-23 3:33 GMT+02:00 Steven Pollmann <span dir="ltr"><<a href="mailto:spollmann@robarts.ca" target="_blank">spollmann@robarts.ca</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Simon,<br>
<br>
Thanks for the update.  Definitely a large dataset, but nowhere near the largest we can generate on our high-res preclinical scanners.  I'm happy to report that the forward projection application no longer results in a segmentation fault, but rather a "Description: itk::ERROR: CUDA ERROR: out of memory" error.  This still puzzles me a little bit as the 1024x1024x680 Volume in memory (assuming 32bit float) is only 2.8GB, and all 1000 projections would also be around 2.8GB as well(1024x680 x1000projections) (5.6GB total, leaving around 400MB left over), but at least now it reports a Memory error rather than a seg fault.<br>


<br>
I've also tried forward projection through only 1 angle to see what the projection would look like (I've tried this before, but it always complained of memory issues.  Not sure why it works now.  Must have been on the old video card?).  Adding the --steps flag is definitely helpful, and (without doing a more rigorous test) I would have to say I can get the forward projection to look equivalent to the CPU forward projections, so thanks for that change!.  I am trying to understand what is meant by "steps", and in what units they would be in.  Is this the distance between sampling points in the ray going through the volume?  With it originally set to 1, was that interpreted as "1mm?".<br>


<br>
Anyhow, I would definitely be interested in a streaming version of the forward projector.  It would definitely be useful with our extremely large datasets.<br>
<br>
Thanks again for the help!<br>
<br>
Steve<br>
<br>
________________________________________<br>
From: <a href="mailto:simon.rit@gmail.com">simon.rit@gmail.com</a> [<a href="mailto:simon.rit@gmail.com">simon.rit@gmail.com</a>] On Behalf Of Simon Rit [<a href="mailto:simon.rit@creatis.insa-lyon.fr">simon.rit@creatis.insa-lyon.fr</a>]<br>


Sent: July 21, 2014 9:38 AM<br>
To: Steven Pollmann<br>
Cc: <a href="mailto:rtk-users@openrtk.org">rtk-users@openrtk.org</a><br>
Subject: Re: [Rtk-users] rtkForwardProjections Segmentation fault...<br>
<br>
Hi Steven,<br>
Big dataset. I unfortunately do not have a 6 GB card at hand to test it, the maximum I have is a 3 GB card. I still believe it is a simple memory issue. I noticed that there were some checks missing so I have added them<<a href="https://github.com/SimonRit/RTK/commit/6e040cbaf77a3105871f3f42721ef426806d000b" target="_blank">https://github.com/SimonRit/RTK/commit/6e040cbaf77a3105871f3f42721ef426806d000b</a>>. Could you try again with the attached script instead of the one you have sent? It does only one projection which will require less memory and it works on my 3 GB card with half your volume. With the full volume, it fails but the new checks describe the memory issue as expected. There have been some changes in the management of the memory indeed and it will now create the full stack in the GPU memory with the example you sent. Streaming should be possible, we can work on it after you confirm it is a memory issue if you want.<br>


About the aliasing, I noticed that your voxels are finely resolved. I have tried to change the hard-coded value "float t_step = 1" to 0.1 in rtkCudaForwardProjectionImageFilter.cxx and it removes them. I have now made that configurable<<a href="https://github.com/SimonRit/RTK/commit/fb62489657397df2c9f6d1d1bf0711bbc8fd7673" target="_blank">https://github.com/SimonRit/RTK/commit/fb62489657397df2c9f6d1d1bf0711bbc8fd7673</a>> through the option --step of rtkforwardprojections.<br>


Simon<br>
<div class=""><br>
<br>
On Thu, Jul 17, 2014 at 11:09 PM, Steven Pollmann <<a href="mailto:spollmann@robarts.ca">spollmann@robarts.ca</a><mailto:<a href="mailto:spollmann@robarts.ca">spollmann@robarts.ca</a>>> wrote:<br>
Hello RTK Users,<br>
<br>
We have noticed some problems with RTK's forward projection software (rtkForwardProjections) using CUDA.  Originally, using a build we have been using from July 2013 (v1,0 rc3, commit ID 2dabe6a04cf33c0da45907efdf03d427b4473adc dated July 03, 2013), GPU Forward Projection would complete, but would leave some sort of aliasing artifacts in the projections that were not present when rtkForwardProjections was run using only the CPU methods (Joseph method, or RayCastInterpolator, changing --method commandline option, at the time).<br>


<br>
The next time we tried using a newer build of openRTK to perform some forward projections using the GPU/CUDA was later in the year.  However, I believe some CUDA memory management changes were made, and a forward projection could no longer be attempted due to running out of memory (and rtkForwardProjections being unable to chunk. or split up the volume to forward project).  (Our GPU at the time was an Nvidia GTX 770 with 4GB vram).<br>


<br>
More recently, we acquired an Nvidia GTX Titan Black with 6GB vram, running driver version 337.25 on Xubuntu 14.04, and I attempted a forward projection using the latest OPENRTK (v1.0.0, July 10, 2014 commit 8646fbdc3b01b439ae37c1d7084e2e68d155c3a5).  We no longer get the "out of memory" errors (this build still causes the GTX770 to complain of memory), but rather a Segmentation Fault when trying to do the forward projection.  The Segmentation Fault occurs after it has read in the 3D Volume, when it is "Projection Volume...".  The failure is immediate.  Again, if using just the CPU to do the forward projections, everything seems to work fine.<br>


<br>
Anyhow, I was wondering if anyone had any insight into this issue?<br>
<br>
Our scanners produce fairly large volumes (1024x1024x680) that we are interested in performing some iterative reconstructions on.<br>
<br>
I've uploaded a sample dataset (a Rubiks Cube volume) onto Google drive at the following link.  Due to the rtkForwardProjections program being unable to "chunk", or "divide" the dataset, I think you would need a substantial amount of video memory (6GB or more) to test this dataset, and experience the Segmentation Fault.<br>


<br>
<a href="https://drive.google.com/folderview?id=0B2rwn1Vax7UydVhudHlSZGlXVDQ&usp=sharing" target="_blank">https://drive.google.com/folderview?id=0B2rwn1Vax7UydVhudHlSZGlXVDQ&usp=sharing</a><br>
<br>
There, you should be able to download the Rubiks MHD and Raw Volume file, the Geometry File, and a script file containing the forward projection commands we are using.<br>
<br>
Let me know if any other information would be useful.<br>
<br>
Thanks!<br>
<br>
Steve<br>
_______________________________________________<br>
Rtk-users mailing list<br>
</div><a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a><mailto:<a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a>><br>
<a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Rtk-users mailing list<br>
<a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a><br>
<a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><br>
</div></div></blockquote></div><br></div>