summaryrefslogtreecommitdiffstats
path: root/src/CudaBackProjectionAlgorithm3D.cpp
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2015-11-18 11:26:15 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2015-12-04 12:02:40 +0100
commitb14fb531ad9ae3d565f2cf28f5506408ab10dbed (patch)
tree892d400e72f185b6c4a06aca464343737b135120 /src/CudaBackProjectionAlgorithm3D.cpp
parent3ea35516aceec4f5817871a00008b109777ebb13 (diff)
downloadastra-b14fb531ad9ae3d565f2cf28f5506408ab10dbed.tar.gz
astra-b14fb531ad9ae3d565f2cf28f5506408ab10dbed.tar.bz2
astra-b14fb531ad9ae3d565f2cf28f5506408ab10dbed.tar.xz
astra-b14fb531ad9ae3d565f2cf28f5506408ab10dbed.zip
Add CompositeGeometryManager
This handles FP and BP operations on multiple data objects at once, splitting them to fit in GPU memory where necessary.
Diffstat (limited to 'src/CudaBackProjectionAlgorithm3D.cpp')
-rw-r--r--src/CudaBackProjectionAlgorithm3D.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/CudaBackProjectionAlgorithm3D.cpp b/src/CudaBackProjectionAlgorithm3D.cpp
index 8cf4c3b..ce8e111 100644
--- a/src/CudaBackProjectionAlgorithm3D.cpp
+++ b/src/CudaBackProjectionAlgorithm3D.cpp
@@ -37,6 +37,7 @@ $Id$
#include "astra/ParallelProjectionGeometry3D.h"
#include "astra/ParallelVecProjectionGeometry3D.h"
#include "astra/ConeVecProjectionGeometry3D.h"
+#include "astra/CompositeGeometryManager.h"
#include "astra/Logging.h"
@@ -203,9 +204,16 @@ void CCudaBackProjectionAlgorithm3D::run(int _iNrIterations)
&volgeom, projgeom,
m_iGPUIndex, m_iVoxelSuperSampling);
} else {
+
+#if 1
+ CCompositeGeometryManager cgm;
+
+ cgm.doBP(m_pProjector, pReconMem, pSinoMem);
+#else
astraCudaBP(pReconMem->getData(), pSinoMem->getDataConst(),
&volgeom, projgeom,
m_iGPUIndex, m_iVoxelSuperSampling);
+#endif
}
}