summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2017-11-09 20:57:31 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2018-01-09 14:23:54 +0100
commit0ad6cb01b9176e99c3e4bb5643ac6a5dd477aad6 (patch)
tree69b27fa6406cf318d785c827e1fd05b786da2876 /src
parentde27e439a0c59fade175fba4e0b4a1e0c84b933d (diff)
downloadastra-0ad6cb01b9176e99c3e4bb5643ac6a5dd477aad6.tar.gz
astra-0ad6cb01b9176e99c3e4bb5643ac6a5dd477aad6.tar.bz2
astra-0ad6cb01b9176e99c3e4bb5643ac6a5dd477aad6.tar.xz
astra-0ad6cb01b9176e99c3e4bb5643ac6a5dd477aad6.zip
Check for CUDA support at run-time in use_cuda()
Diffstat (limited to 'src')
-rw-r--r--src/CompositeGeometryManager.cpp3
-rw-r--r--src/Globals.cpp16
2 files changed, 15 insertions, 4 deletions
diff --git a/src/CompositeGeometryManager.cpp b/src/CompositeGeometryManager.cpp
index 8af430c..cfc2db3 100644
--- a/src/CompositeGeometryManager.cpp
+++ b/src/CompositeGeometryManager.cpp
@@ -43,6 +43,7 @@ along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
#include "astra/Float32VolumeData3DGPU.h"
#include "astra/Logging.h"
+#include "../cuda/2d/astra.h"
#include "../cuda/3d/mem3d.h"
#include <cstring>
@@ -1653,7 +1654,7 @@ bool CCompositeGeometryManager::doJobs(TJobList &jobs)
// Get memory from first GPU. Not optimal...
if (!m_GPUIndices.empty())
astraCUDA3d::setGPUIndex(m_GPUIndices[0]);
- maxSize = astraCUDA3d::availableGPUMemory();
+ maxSize = astraCUDA::availableGPUMemory();
if (maxSize == 0) {
ASTRA_WARN("Unable to get available GPU memory. Defaulting to 1GB.");
maxSize = 1024 * 1024 * 1024;
diff --git a/src/Globals.cpp b/src/Globals.cpp
index 0edb397..bbe0c2f 100644
--- a/src/Globals.cpp
+++ b/src/Globals.cpp
@@ -26,9 +26,19 @@ along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
*/
#include "astra/Globals.h"
+#include "cuda/2d/astra.h"
+
+namespace astra {
+
+bool running_in_matlab=false;
+
+_AstraExport bool cudaAvailable() {
+#ifdef ASTRA_CUDA
+ return astraCUDA::availableGPUMemory() > 0;
+#else
+ return false;
+#endif
+}
-namespace astra{
- bool running_in_matlab=false;
}
-// nothing to see here :)