mirror of https://github.com/BOINC/boinc.git
- 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. svn path=/trunk/boinc/; revision=19158
This commit is contained in:
parent
39815033a3
commit
cfcfeffd21
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue