summaryrefslogtreecommitdiffstats
path: root/cuda/2d
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2014-10-02 13:42:42 +0200
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2014-10-02 13:42:42 +0200
commit8188b0697751d7c7ec6fe3069d0fceb50ebd0c9e (patch)
treef957ff62ca987167221db39d005407b8a440b077 /cuda/2d
parent6354a9af8f1bb5443e7a56b24a84ee1c258a95af (diff)
downloadastra-8188b0697751d7c7ec6fe3069d0fceb50ebd0c9e.tar.gz
astra-8188b0697751d7c7ec6fe3069d0fceb50ebd0c9e.tar.bz2
astra-8188b0697751d7c7ec6fe3069d0fceb50ebd0c9e.tar.xz
astra-8188b0697751d7c7ec6fe3069d0fceb50ebd0c9e.zip
Improve cuda 2d header comments
Diffstat (limited to 'cuda/2d')
-rw-r--r--cuda/2d/algo.h7
-rw-r--r--cuda/2d/dims.h19
2 files changed, 25 insertions, 1 deletions
diff --git a/cuda/2d/algo.h b/cuda/2d/algo.h
index 96195a3..9f2aa00 100644
--- a/cuda/2d/algo.h
+++ b/cuda/2d/algo.h
@@ -74,6 +74,13 @@ public:
// instead of calling setBuffers, you can also call allocateBuffers
// to let ReconAlgo manage its own GPU memory
virtual bool allocateBuffers();
+
+ // copy data to GPU. This must be called after allocateBuffers.
+ // pfSinogram, pfReconstruction, pfVolMask, pfSinoMask are the
+ // sinogram, reconstruction, volume mask and sinogram mask in system RAM,
+ // respectively. The corresponding pitch variables give the pitches
+ // of these buffers, measured in floats.
+ // The sinogram is multiplied by fSinogramScale after uploading it.
virtual bool copyDataToGPU(const float* pfSinogram, unsigned int iSinogramPitch, float fSinogramScale,
const float* pfReconstruction, unsigned int iReconstructionPitch,
const float* pfVolMask, unsigned int iVolMaskPitch,
diff --git a/cuda/2d/dims.h b/cuda/2d/dims.h
index df349f7..3978eab 100644
--- a/cuda/2d/dims.h
+++ b/cuda/2d/dims.h
@@ -44,12 +44,29 @@ struct SFanProjection {
struct SDimensions {
+ // Width, height of reconstruction volume
unsigned int iVolWidth;
unsigned int iVolHeight;
+
+ // Number of projection angles
unsigned int iProjAngles;
+
+ // Number of detector pixels
unsigned int iProjDets;
- float fDetScale; // size of detector compared to volume pixels
+
+ // size of detector compared to volume pixels
+ float fDetScale;
+
+ // in FP, number of rays to trace per detector pixel.
+ // This should usually be set to 1.
+ // If fDetScale > 1, this should be set to an integer of roughly
+ // the same size as fDetScale.
unsigned int iRaysPerDet;
+
+ // in BP, square root of number of rays to trace per volume pixel
+ // This should usually be set to 1.
+ // If fDetScale < 1, this should be set to an integer of roughly
+ // the same size as 1 / fDetScale.
unsigned int iRaysPerPixelDim;
};