diff --git a/src/GPUManager.h b/src/GPUManager.h
index e29569bb1c8bef382fefb0b377511e525a448447..55b6d633cdf79018f46dd55023f839227ac27f33 100644
--- a/src/GPUManager.h
+++ b/src/GPUManager.h
@@ -83,6 +83,7 @@ private:
 	static void init_comms();
 
 public:	
+	static size_t allGpuSize() { return allGpus.size(); }
 	static ncclComm_t* comms;
 	static std::vector<GPU> gpus;
 	
diff --git a/src/arbd.cpp b/src/arbd.cpp
index 5d5b5bc55b3da6759b624dbf51b9d710fb539cc3..e326d49230d933d982fc9f683706b19c83527b62 100644
--- a/src/arbd.cpp
+++ b/src/arbd.cpp
@@ -59,7 +59,7 @@ int main(int argc, char* argv[]) {
 	printf("  –––––––––––––––––––––––––––––––––––––––––––––\n");
 	GPUManager::init();
 
-	size_t n_gpus = max(GPUManager::gpus.size(), 1lu);
+	size_t n_gpus = GPUManager::allGpuSize();
 	std::vector<unsigned int> gpuIDs;
 	
 	bool debug = false, safe = false;