mirror of https://github.com/BOINC/boinc.git
- scheduler: add plan class for CUDA 2.3
svn path=/trunk/boinc/; revision=18804
This commit is contained in:
parent
b932711a80
commit
f163897d8a
|
@ -6729,3 +6729,10 @@ Rom 2 Aug 2009
|
|||
main.cpp, .h
|
||||
net_stats.cpp
|
||||
sysmon_win.cpp, .h
|
||||
|
||||
David 3 Aug 2009
|
||||
- scheduler: add plan class for CUDA 2.3
|
||||
|
||||
sched/
|
||||
sched_customize.cpp,h
|
||||
sched_version.cpp
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
<?
|
||||
|
||||
$project_news = array(
|
||||
array("August 3, 2009",
|
||||
"Intel (in cooperation with GridRepublic and BOINC) announces
|
||||
<a href=http://apps.facebook.com/processors/new.php>Progress Thru Processors</a>,
|
||||
a Facebook application that makes BOINC participation simpler and more sociable."
|
||||
),
|
||||
array("July 30, 2009",
|
||||
"<a href=http://event.twgrid.org/isgc2009/asiaathome/wiki/index.php/Main_Page#Workshop_Schedule_and_Presentations>Videos of the talks at the recent Asia@home workshop in Taiwan</a> are now online."
|
||||
),
|
||||
|
|
|
@ -95,7 +95,7 @@ int app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) {
|
|||
);
|
||||
}
|
||||
return 0;
|
||||
} else if (!strcmp(plan_class, "cuda")) {
|
||||
} else if (strstr(plan_class, "cuda")) {
|
||||
// the following is for an app that uses a CUDA GPU
|
||||
//
|
||||
COPROC_CUDA* cp = (COPROC_CUDA*)sreq.coprocs.lookup("CUDA");
|
||||
|
@ -107,24 +107,45 @@ int app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) {
|
|||
}
|
||||
return PLAN_REJECT_CUDA_NO_DEVICE;
|
||||
}
|
||||
|
||||
// check compute capability
|
||||
//
|
||||
int v = (cp->prop.major)*100 + cp->prop.minor;
|
||||
if (v < 100) {
|
||||
if (config.debug_version_select) {
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"[version] CUDA version %d < 1.0\n", v
|
||||
"[version] Compute capability %d < 1.0\n", v
|
||||
);
|
||||
}
|
||||
return PLAN_REJECT_CUDA_VERSION;
|
||||
return PLAN_REJECT_NVIDIA_COMPUTE_CAPABILITY;
|
||||
}
|
||||
|
||||
if (cp->display_driver_version && cp->display_driver_version < PLAN_CUDA_MIN_DRIVER_VERSION) {
|
||||
if (config.debug_version_select) {
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"[version] NVIDIA driver version %d < PLAN_CUDA_MIN_DRIVER_VERSION\n",
|
||||
cp->display_driver_version
|
||||
);
|
||||
// for CUDA 2.3, we need to check the CUDA RT version.
|
||||
// Old BOINC clients report display driver version;
|
||||
// newer ones report CUDA RT version
|
||||
//
|
||||
if (!strcmp(plan_class, "cuda23")) {
|
||||
if (cp->cuda_version) {
|
||||
if (cp->cuda_version < 2030) {
|
||||
return PLAN_REJECT_CUDA_VERSION;
|
||||
}
|
||||
} else if (cp->display_driver_version) {
|
||||
if (cp->display_driver_version < PLAN_CUDA_MIN_DRIVER_VERSION) {
|
||||
return PLAN_REJECT_CUDA_VERSION;
|
||||
}
|
||||
} else {
|
||||
return PLAN_REJECT_CUDA_VERSION;
|
||||
}
|
||||
} else {
|
||||
if (cp->display_driver_version && cp->display_driver_version < PLAN_CUDA_MIN_DRIVER_VERSION) {
|
||||
if (config.debug_version_select) {
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"[version] NVIDIA driver version %d < PLAN_CUDA_MIN_DRIVER_VERSION\n",
|
||||
cp->display_driver_version
|
||||
);
|
||||
}
|
||||
return PLAN_REJECT_NVIDIA_DRIVER_VERSION;
|
||||
}
|
||||
return PLAN_REJECT_NVIDIA_DRIVER_VERSION;
|
||||
}
|
||||
|
||||
if (cp->prop.dtotalGlobalMem < PLAN_CUDA_MIN_RAM) {
|
||||
|
|
|
@ -28,8 +28,10 @@
|
|||
#define PLAN_REJECT_UNKNOWN 7
|
||||
#define PLAN_REJECT_INSUFFICIENT_CPUS 8
|
||||
#define PLAN_REJECT_CPU_FEATURE 9
|
||||
#define PLAN_REJECT_NVIDIA_COMPUTE_CAPABILITY 10
|
||||
|
||||
#define PLAN_CUDA_MIN_DRIVER_VERSION 17700
|
||||
#define PLAN_CUDA23_MIN_DRIVER_VERSION 19038
|
||||
#define PLAN_CUDA_MIN_RAM (254*1024*1024)
|
||||
|
||||
extern bool wu_is_infeasible_custom(WORKUNIT&, APP&, BEST_APP_VERSION&);
|
||||
|
|
|
@ -322,10 +322,16 @@ BEST_APP_VERSION* get_app_version(WORKUNIT& wu, bool check_req) {
|
|||
switch (app_plan_reject) {
|
||||
case PLAN_REJECT_CUDA_NO_DEVICE:
|
||||
p = "Your computer has no NVIDIA GPU"; break;
|
||||
case PLAN_REJECT_CUDA_VERSION:
|
||||
case PLAN_REJECT_NVIDIA_COMPUTE_CAPABILITY:
|
||||
p = "Your GPU lacks the needed features"; break;
|
||||
case PLAN_REJECT_CUDA_VERSION:
|
||||
sprintf(buf, "NVIDIA driver version %d or later needed",
|
||||
PLAN_CUDA23_MIN_DRIVER_VERSION
|
||||
);
|
||||
p = buf;
|
||||
break;
|
||||
case PLAN_REJECT_NVIDIA_DRIVER_VERSION:
|
||||
sprintf(buf, "driver version %d or later needed",
|
||||
sprintf(buf, "NVIDIA driver version %d or later needed",
|
||||
PLAN_CUDA_MIN_DRIVER_VERSION
|
||||
);
|
||||
p = buf;
|
||||
|
|
Loading…
Reference in New Issue