From baab1dcd8beca047c5c754679ee2888bf0977322 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Fri, 20 Jan 2012 14:36:15 +0000 Subject: [PATCH] OpenCL: workaround for GPUs reported by CUDA but not by Mac OpenCL svn path=/trunk/boinc/; revision=25110 --- checkin_notes | 2 +- client/coproc_detect.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/checkin_notes b/checkin_notes index e409b67ec4..87cccf2ea9 100644 --- a/checkin_notes +++ b/checkin_notes @@ -768,7 +768,7 @@ Charlie 20 Jan 2012 Problem: Mac OpenCL does not recognize all NVIDIA GPUs returned by CUDA. Since there is no CAL for Mac, this is not an issue for ATI / AMD GPUs. On other platforms, the CUDA and CAL drivers - also provide OpenCL suport, so we don't expect the problem there. + also provide OpenCL support, so we don't expect the problem there. Solution: I believe that CUDA and OpenCL return identical GPU model names for the same GPU, and that both return the GPUs in the diff --git a/client/coproc_detect.cpp b/client/coproc_detect.cpp index e62f42a743..242602ed81 100644 --- a/client/coproc_detect.cpp +++ b/client/coproc_detect.cpp @@ -18,7 +18,7 @@ // client-specific GPU code. Mostly GPU detection -#define FAKENVIDIACUDA0 1 +#define FAKENVIDIACUDA0 0 #define FAKE2NVIDIAOPENCLS 0 #define DEBUGFOROLIVER 1 @@ -1042,11 +1042,11 @@ if (j == 0) { cc.have_cuda = true; cc.cuda_version = cuda_version; cc.device_num = j; + cc.set_peak_flops(); + cc.get_available_ram(); #if FAKENVIDIACUDA0 cc.device_num = j+1; #endif - cc.set_peak_flops(); - cc.get_available_ram(); nvidia_gpus.push_back(cc); } if (!nvidia_gpus.size()) {