From ffd21f8db31952d0ec1f01701e1d1061027fa63a Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 15 Jul 2012 13:40:11 +1000 Subject: [PATCH] Find the gpu platform with the most devices and use that if no platform option is passed. --- ocl.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ocl.c b/ocl.c index 5dfef36d..f4c763ca 100644 --- a/ocl.c +++ b/ocl.c @@ -33,7 +33,7 @@ #include "findnonce.h" #include "ocl.h" -int opt_platform_id; +int opt_platform_id = -1; char *file_contents(const char *filename, int *length) { @@ -80,7 +80,7 @@ int clDevicesNum(void) { cl_uint numPlatforms; cl_platform_id *platforms; cl_platform_id platform = NULL; - unsigned int most_devices = 0, i; + unsigned int most_devices = 0, i, mdplatform; status = clGetPlatformIDs(0, NULL, &numPlatforms); /* If this fails, assume no GPUs. */ @@ -123,8 +123,10 @@ int clDevicesNum(void) { return -1; } applog(LOG_INFO, "Platform %d devices: %d", i, numDevices); - if (numDevices > most_devices) + if (numDevices > most_devices) { most_devices = numDevices; + mdplatform = i; + } if (numDevices) { unsigned int j; char pbuff[256]; @@ -139,6 +141,9 @@ int clDevicesNum(void) { } } + if (opt_platform_id < 0) + opt_platform_id = mdplatform;; + return most_devices; }