mirror of https://github.com/BOINC/boinc.git
- scheduler: in cuda_check(), ati_check() and opencl_check()
(in sched_customize.cpp) the flops_scale argument is intended to express the GPU efficiency (actual/peak). Pass appropriate values. svn path=/trunk/boinc/; revision=24405
This commit is contained in:
parent
0a89805a70
commit
836e8aacf7
|
@ -7302,3 +7302,19 @@ David 14 Oct 2011
|
|||
- client: bug fix for the above
|
||||
client/
|
||||
work_fetch.cpp
|
||||
|
||||
David 14 Oct 2011
|
||||
- scheduler: in cuda_check(), ati_check() and opencl_check()
|
||||
(in sched_customize.cpp)
|
||||
the flops_scale argument is intended to express the
|
||||
GPU efficiency (actual/peak).
|
||||
Pass appropriate values.
|
||||
|
||||
sched/
|
||||
sched_customize.cpp
|
||||
sched_version.cpp
|
||||
html/
|
||||
ops/
|
||||
index.php
|
||||
inc/
|
||||
db_ops.inc
|
||||
|
|
|
@ -474,6 +474,11 @@ function result_error_mask_str($x){
|
|||
case -228: return "ERR_CHILD_FAILED";
|
||||
case -229: return "ERR_SYMLINK";
|
||||
case -230: return "ERR_DB_CONN_LOST";
|
||||
case -231: return "ERR_CRYPTO";
|
||||
case -232: return "ERR_ABORTED_ON_EXIT";
|
||||
case -233: return "ERR_UNSTARTED_LATE";
|
||||
case -234: return "ERR_MISSING_COPROC";
|
||||
case -235: return "ERR_PROC_PARSE";
|
||||
default: return "Unknown error number";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,7 +166,7 @@ echo "
|
|||
</table>
|
||||
";
|
||||
|
||||
// Application Result Summaries:
|
||||
// Result Summaries:
|
||||
|
||||
$show_deprecated = get_str("show_deprecated", true);
|
||||
$show_only = array("all"); // Add all appids you want to display, or "all"
|
||||
|
|
|
@ -176,14 +176,13 @@ static bool ati_check(COPROC_ATI& c, HOST_USAGE& hu,
|
|||
|
||||
coproc_perf(
|
||||
g_request->host.p_fpops,
|
||||
hu.natis*c.peak_flops,
|
||||
flops_scale * hu.natis*c.peak_flops,
|
||||
cpu_frac,
|
||||
hu.projected_flops,
|
||||
hu.avg_ncpus
|
||||
);
|
||||
hu.peak_flops = hu.natis*c.peak_flops + hu.avg_ncpus*g_request->host.p_fpops;
|
||||
hu.max_ncpus = hu.avg_ncpus;
|
||||
hu.projected_flops *= flops_scale;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -201,8 +200,9 @@ static inline bool app_plan_ati(
|
|||
1000000,
|
||||
true,
|
||||
ATI_MIN_RAM,
|
||||
1, .01,
|
||||
1
|
||||
1,
|
||||
.01,
|
||||
.20
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ static inline bool app_plan_ati(
|
|||
true,
|
||||
ATI_MIN_RAM,
|
||||
1, .01,
|
||||
1.01
|
||||
.21
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ static inline bool app_plan_ati(
|
|||
false,
|
||||
ATI_MIN_RAM,
|
||||
1, .01,
|
||||
1.02
|
||||
.22
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ static inline bool app_plan_ati(
|
|||
false,
|
||||
ATI_MIN_RAM,
|
||||
1, .01,
|
||||
1.03
|
||||
.23
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -305,14 +305,13 @@ static bool cuda_check(COPROC_NVIDIA& c, HOST_USAGE& hu,
|
|||
|
||||
coproc_perf(
|
||||
g_request->host.p_fpops,
|
||||
hu.ncudas*c.peak_flops,
|
||||
flops_scale * hu.ncudas*c.peak_flops,
|
||||
cpu_frac,
|
||||
hu.projected_flops,
|
||||
hu.avg_ncpus
|
||||
);
|
||||
hu.peak_flops = hu.ncudas*c.peak_flops + hu.avg_ncpus*g_request->host.p_fpops;
|
||||
hu.max_ncpus = hu.avg_ncpus;
|
||||
hu.projected_flops *= flops_scale;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -341,7 +340,9 @@ static inline bool app_plan_cuda(
|
|||
200, 0,
|
||||
CUDA3_MIN_CUDA_VERSION, CUDA3_MIN_DRIVER_VERSION,
|
||||
384*MEGA,
|
||||
1, .01, 1.02
|
||||
1,
|
||||
.01,
|
||||
.22
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -351,7 +352,9 @@ static inline bool app_plan_cuda(
|
|||
200, // change to zero if app is compiled to byte code
|
||||
CUDA23_MIN_CUDA_VERSION, CUDA23_MIN_DRIVER_VERSION,
|
||||
384*MEGA,
|
||||
1, .01, 1.01
|
||||
1,
|
||||
.01,
|
||||
.21
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -361,7 +364,9 @@ static inline bool app_plan_cuda(
|
|||
200, // change to zero if app is compiled to byte code
|
||||
0, CUDA_MIN_DRIVER_VERSION,
|
||||
254*MEGA,
|
||||
1, .01, 1
|
||||
1,
|
||||
.01,
|
||||
.20
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -275,11 +275,15 @@ void estimate_flops_anon_platform() {
|
|||
}
|
||||
|
||||
// if projected_flops is missing, make a wild guess
|
||||
// Note: 6.12+ clients supply a project FLOPS,
|
||||
// even if the user didn't
|
||||
//
|
||||
if (cav.host_usage.projected_flops == 0) {
|
||||
cav.host_usage.projected_flops = g_reply->host.p_fpops;
|
||||
}
|
||||
|
||||
// If data is available, estimate FLOPS based on average elapsed time
|
||||
//
|
||||
DB_HOST_APP_VERSION* havp = gavid_to_havp(
|
||||
generalized_app_version_id(
|
||||
cav.host_usage.resource_type(), cav.app->id
|
||||
|
@ -289,8 +293,6 @@ void estimate_flops_anon_platform() {
|
|||
&& (havp->et.n > MIN_HOST_SAMPLES)
|
||||
&& (havp->et.get_avg() > 0)
|
||||
) {
|
||||
// estimate FLOPS based on average elapsed time
|
||||
//
|
||||
double new_flops = 1./havp->et.get_avg();
|
||||
|
||||
// cap this at ET_RATIO_LIMIT*projected,
|
||||
|
@ -653,6 +655,12 @@ BEST_APP_VERSION* get_app_version(
|
|||
}
|
||||
if (strlen(av.plan_class)) {
|
||||
if (!app_plan(*g_request, av.plan_class, host_usage)) {
|
||||
if (config.debug_version_select) {
|
||||
log_messages.printf(MSG_NORMAL,
|
||||
"[version] [AV#%d] app_plan() returned false\n",
|
||||
av.id
|
||||
);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (!g_request->client_cap_plan_class) {
|
||||
|
|
Loading…
Reference in New Issue