diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-01-06 15:10:34 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-01-19 16:50:16 +0100 |
commit | 687c5e244e46e51786afad77f5015cae9abad129 (patch) | |
tree | fde2e2dff70e26e8fde2a44c381ced50d71ccf0c /include/astra | |
parent | 8e68248bd587456325101911a927b206b5450b31 (diff) | |
download | astra-687c5e244e46e51786afad77f5015cae9abad129.tar.gz astra-687c5e244e46e51786afad77f5015cae9abad129.tar.bz2 astra-687c5e244e46e51786afad77f5015cae9abad129.tar.xz astra-687c5e244e46e51786afad77f5015cae9abad129.zip |
Add multi-GPU support to CompositeGeometryManager
Diffstat (limited to 'include/astra')
-rw-r--r-- | include/astra/CompositeGeometryManager.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/astra/CompositeGeometryManager.h b/include/astra/CompositeGeometryManager.h index 6610151..49d02a7 100644 --- a/include/astra/CompositeGeometryManager.h +++ b/include/astra/CompositeGeometryManager.h @@ -50,9 +50,16 @@ class CProjectionGeometry3D; class CProjector3D; +struct SGPUParams { + std::vector<int> GPUIndices; + size_t memory; +}; + class _AstraExport CCompositeGeometryManager { public: + CCompositeGeometryManager(); + class CPart; typedef std::list<boost::shared_ptr<CPart> > TPartList; class CPart { @@ -139,10 +146,19 @@ public: bool doFP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData); bool doBP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData); + void setGPUIndices(const std::vector<int>& GPUIndices); + + static void setGlobalGPUParams(const SGPUParams& params); + protected: bool splitJobs(TJobSet &jobs, size_t maxSize, int div, TJobSet &split); + std::vector<int> m_GPUIndices; + size_t m_iMaxSize; + + + static SGPUParams* s_params; }; } |