- bug fixes

svn path=/trunk/boinc/; revision=21187
This commit is contained in:
David Anderson 2010-04-15 21:58:44 +00:00
parent 252b24bf8b
commit 02717af2f3
5 changed files with 23 additions and 9 deletions

View File

@ -395,7 +395,7 @@ void COPROC_CUDA::get(
// fake a NVIDIA GPU (for debugging) // fake a NVIDIA GPU (for debugging)
// //
void fake_cuda(COPROCS& coprocs, int count) { void fake_cuda(COPROCS& coprocs, double ram, int count) {
COPROC_CUDA* cc = new COPROC_CUDA; COPROC_CUDA* cc = new COPROC_CUDA;
strcpy(cc->type, "CUDA"); strcpy(cc->type, "CUDA");
cc->count = count; cc->count = count;
@ -405,7 +405,7 @@ void fake_cuda(COPROCS& coprocs, int count) {
cc->display_driver_version = 18000; cc->display_driver_version = 18000;
cc->cuda_version = 2020; cc->cuda_version = 2020;
strcpy(cc->prop.name, "Fake NVIDIA GPU"); strcpy(cc->prop.name, "Fake NVIDIA GPU");
cc->prop.totalGlobalMem = 256*1024*1024; cc->prop.totalGlobalMem = ram;
cc->prop.sharedMemPerBlock = 100; cc->prop.sharedMemPerBlock = 100;
cc->prop.regsPerBlock = 8; cc->prop.regsPerBlock = 8;
cc->prop.warpSize = 10; cc->prop.warpSize = 10;
@ -431,7 +431,12 @@ int COPROC_CUDA::available_ram(int devnum, double& ar) {
unsigned int memfree, memtotal; unsigned int memfree, memtotal;
unsigned int ctx; unsigned int ctx;
if (!__cuDeviceGet) return 0; // avoid crash if faked GPU // avoid crash if faked GPU
//
if (!__cuDeviceGet) {
ar = prop.totalGlobalMem;
return 0;
}
int retval = (*__cuDeviceGet)(&device, devnum); int retval = (*__cuDeviceGet)(&device, devnum);
if (retval) return retval; if (retval) return retval;
retval = (*__cuCtxCreate)(&ctx, 0, device); retval = (*__cuCtxCreate)(&ctx, 0, device);
@ -750,7 +755,7 @@ void COPROC_ATI::get(COPROCS& coprocs,
retval = (*__calShutdown)(); retval = (*__calShutdown)();
} }
void fake_ati(COPROCS& coprocs, int count) { void fake_ati(COPROCS& coprocs, double ram, int count) {
COPROC_ATI* cc = new COPROC_ATI; COPROC_ATI* cc = new COPROC_ATI;
strcpy(cc->type, "ATI"); strcpy(cc->type, "ATI");
strcpy(cc->version, "1.4.3"); strcpy(cc->version, "1.4.3");
@ -758,7 +763,7 @@ void fake_ati(COPROCS& coprocs, int count) {
cc->count = count; cc->count = count;
memset(&cc->attribs, 0, sizeof(cc->attribs)); memset(&cc->attribs, 0, sizeof(cc->attribs));
memset(&cc->info, 0, sizeof(cc->info)); memset(&cc->info, 0, sizeof(cc->info));
cc->attribs.localRAM = 1024; cc->attribs.localRAM = (int)(ram/MEGA);
cc->attribs.numberOfSIMD = 32; cc->attribs.numberOfSIMD = 32;
cc->attribs.wavefrontSize = 32; cc->attribs.wavefrontSize = 32;
cc->attribs.engineClock = 50; cc->attribs.engineClock = 50;
@ -775,7 +780,11 @@ int COPROC_ATI::available_ram(int devnum, double& ar) {
st.struct_size = sizeof(CALdevicestatus); st.struct_size = sizeof(CALdevicestatus);
if (!__calInit) return 0; // avoid crash if faked GPU // avoid crash if faked GPU
if (!__calInit) {
r = attribs.localRAM;
return 0;
}
retval = (*__calInit)(); retval = (*__calInit)();
if (retval) return retval; if (retval) return retval;
retval = (*__calDeviceOpen)(&dev, devnum); retval = (*__calDeviceOpen)(&dev, devnum);

View File

@ -1132,6 +1132,7 @@ int DB_HOST_APP_VERSION::update_validator(DB_HOST_APP_VERSION& orig) {
"turnaround_avg=%.15e, " "turnaround_avg=%.15e, "
"turnaround_q=%.15e, " "turnaround_q=%.15e, "
"turnaround_var=%.15e, " "turnaround_var=%.15e, "
"error_rate=%.15e, "
"host_scale_time=%.15e, " "host_scale_time=%.15e, "
"scale_probation=%d", "scale_probation=%d",
pfc.n, pfc.n,
@ -1144,6 +1145,7 @@ int DB_HOST_APP_VERSION::update_validator(DB_HOST_APP_VERSION& orig) {
turnaround.avg, turnaround.avg,
turnaround.q, turnaround.q,
turnaround.var, turnaround.var,
error_rate,
host_scale_time, host_scale_time,
scale_probation scale_probation
); );

View File

@ -260,8 +260,8 @@ struct COPROC_CUDA : public COPROC {
bool check_running_graphics_app(); bool check_running_graphics_app();
}; };
void fake_cuda(COPROCS&, int); void fake_cuda(COPROCS&, double, int);
void fake_ati(COPROCS&, int); void fake_ati(COPROCS&, double, int);
enum CUdevice_attribute_enum { enum CUdevice_attribute_enum {
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1, CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1,

View File

@ -545,6 +545,7 @@ int hav_lookup(DB_HOST_APP_VERSION& hav, int hostid, int avid) {
hav.clear(); hav.clear();
hav.host_id = hostid; hav.host_id = hostid;
hav.app_version_id = avid; hav.app_version_id = avid;
hav.error_rate = ERROR_RATE_INIT;
retval = hav.insert(); retval = hav.insert();
if (retval) return retval; if (retval) return retval;
} }
@ -967,7 +968,7 @@ int write_modified_app_versions(vector<DB_APP_VERSION>& app_versions) {
unsigned int i, j; unsigned int i, j;
int retval = 0; int retval = 0;
if (config.debug_credit) { if (config.debug_credit && app_versions.size()) {
log_messages.printf(MSG_NORMAL, log_messages.printf(MSG_NORMAL,
"[credit] start write_modified_app_versions()\n" "[credit] start write_modified_app_versions()\n"
); );

View File

@ -1585,6 +1585,7 @@ int update_host_app_versions(vector<RESULT>& results, int hostid) {
} }
if (!found) { if (!found) {
DB_HOST_APP_VERSION hav; DB_HOST_APP_VERSION hav;
hav.clear();
hav.host_id = hostid; hav.host_id = hostid;
hav.app_version_id = gavid; hav.app_version_id = gavid;
hav.host_scale_time = r.report_deadline; hav.host_scale_time = r.report_deadline;
@ -1601,6 +1602,7 @@ int update_host_app_versions(vector<RESULT>& results, int hostid) {
DB_HOST_APP_VERSION& hav = new_havs[i]; DB_HOST_APP_VERSION& hav = new_havs[i];
hav.scale_probation = true; hav.scale_probation = true;
hav.error_rate = ERROR_RATE_INIT;
retval = hav.insert(); retval = hav.insert();
if (retval) { if (retval) {
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,