diff --git a/checkin_notes b/checkin_notes index 781cdb82ca..f992e75fba 100644 --- a/checkin_notes +++ b/checkin_notes @@ -8045,3 +8045,16 @@ David 24 Sept 2009 log_flags.h lib/ coproc.cpp,h + +David 24 Sept 2009 + - client: for ATI enumeration, use only aticalrt.dll + (amdcalrt.dll is old version w/ funky DLL names) + - client: make GPU enumeration warnings more consistent + (e.g., "NVIDIA" instead of "CUDA"). + - scheduler: get rid of ati13 plan class. + Require 1.4+ driver for plan class ati. + + sched/ + sched_customize.cpp + lib/ + coproc.cpp diff --git a/lib/coproc.cpp b/lib/coproc.cpp index 6b585b4397..70756f76f4 100644 --- a/lib/coproc.cpp +++ b/lib/coproc.cpp @@ -278,7 +278,7 @@ void COPROC_CUDA::get( cudalib = dlopen("libcuda.so", RTLD_NOW); #endif if (!cudalib) { - warnings.push_back("Can't load library libcuda"); + warnings.push_back("No NVIDIA library found"); return; } __cuDeviceGetCount = (int(*)(int*)) dlsym(cudalib, "cuDeviceGetCount"); @@ -292,35 +292,32 @@ void COPROC_CUDA::get( __cuDeviceComputeCapability = (int(*)(int*, int*, int)) dlsym( cudalib, "cuDeviceComputeCapability" ); #endif -#ifdef __APPLE__ if (!__cuDriverGetVersion) { - warnings.push_back("CUDA driver is out of date. Please install CUDA driver 2.3 or later."); + warnings.push_back("cuDriverGetVersion() missing from NVIDIA library"); return; } -#endif - if (!__cuInit) { - warnings.push_back("cuInit() missing from CUDA library"); + warnings.push_back("cuInit() missing from NVIDIA library"); return; } if (!__cuDeviceGetCount) { - warnings.push_back("cuDeviceGetCount() missing from CUDA library"); + warnings.push_back("cuDeviceGetCount() missing from NVIDIA library"); return; } if (!__cuDeviceGet) { - warnings.push_back("cuDeviceGet() missing from CUDA library"); + warnings.push_back("cuDeviceGet() missing from NVIDIA library"); return; } if (!__cuDeviceGetAttribute) { - warnings.push_back("cuDeviceGetAttribute() missing from CUDA library"); + warnings.push_back("cuDeviceGetAttribute() missing from NVIDIA library"); return; } if (!__cuDeviceTotalMem) { - warnings.push_back("cuDeviceTotalMem() missing from CUDA library"); + warnings.push_back("cuDeviceTotalMem() missing from NVIDIA library"); return; } if (!__cuDeviceComputeCapability) { - warnings.push_back("cuDeviceComputeCapability() missing from CUDA library"); + warnings.push_back("cuDeviceComputeCapability() missing from NVIDIA library"); return; } @@ -684,20 +681,12 @@ void COPROC_ATI::get(COPROCS& coprocs, #ifdef _WIN32 #if defined _M_X64 - // TRY CAL 1.4 first driver > 9.2 HINSTANCE callib = LoadLibrary("aticalrt64.dll"); - if (!callib) { - callib = LoadLibrary("amdcalrt64.dll"); - } - #else HINSTANCE callib = LoadLibrary("aticalrt.dll"); - if (!callib) { - callib = LoadLibrary("amdcalrt.dll"); - } #endif if (!callib) { - warnings.push_back("No ATI Libraries found."); + warnings.push_back("No ATI library found."); return; } __calInit = (ATI_GDI)GetProcAddress(callib, "calInit" ); @@ -711,7 +700,7 @@ void COPROC_ATI::get(COPROCS& coprocs, callib = dlopen("libaticalrt.so", RTLD_NOW); if (!callib) { - warnings.push_back("Can't load library libaticalrt.so"); + warnings.push_back("No ATI library found"); return; } __calInit = (int(*)()) dlsym(callib, "calInit"); diff --git a/sched/sched_customize.cpp b/sched/sched_customize.cpp index 6218d599c2..b714a418ea 100644 --- a/sched/sched_customize.cpp +++ b/sched/sched_customize.cpp @@ -108,8 +108,9 @@ bool app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) { ); } return true; - } else if (strstr(plan_class, "ati")) { + } else if (!strcmp(plan_class, "ati")) { // the following is for an app that uses an ATI GPU + // with 1.4+ drivers // COPROC_ATI* cp = (COPROC_ATI*)sreq.coprocs.lookup("ATI"); if (!cp) { @@ -124,33 +125,15 @@ bool app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) { int major, minor, release; sscanf(cp->version, "%d.%d.%d", &major, &minor, &release); int vers = major*1000000 + minor*1000 + release; - if (!strcmp(plan_class, "ati")) { - // here if we require CAL version 1.2 or earlier - // - if (vers >= 1003000) { - if (config.debug_version_select) { - log_messages.printf(MSG_NORMAL, - "[version] host has CAL version %s, need 1.2-\n", - cp->version - ); - } - add_no_work_message("ATI Catalyst 9.1 or less needed to use GPU"); - return false; - } - } - if (!strcmp(plan_class, "ati13")) { - // here if we require CAL version 1.3 or later - // - if (vers < 1003000) { - if (config.debug_version_select) { - log_messages.printf(MSG_NORMAL, - "[version] host has CAL version %s, need 1.3+\n", - cp->version - ); - } - add_no_work_message("ATI Catalyst 9.2 or better needed to use GPU"); - return false; + if (vers < 1004000) { + if (config.debug_version_select) { + log_messages.printf(MSG_NORMAL, + "[version] host has CAL version %s, need 1.4+\n", + cp->version + ); } + add_no_work_message("ATI Catalyst 9.2 or better needed to use GPU"); + return false; } hu.flops = cp->flops_estimate();