Commit Graph

36 Commits

Author SHA1 Message Date
David Anderson 6784283211 - user web: fix bugs in server status page
- fix some indentation


svn path=/trunk/boinc/; revision=22890
2011-01-06 23:09:13 +00:00
David Anderson 3a9549979e - client: tweak to ATI CPU recognition
from [P3D] Crashtest

svn path=/trunk/boinc/; revision=22845
2010-12-18 17:09:57 +00:00
David Anderson 878ec29353 - client: improve text of "message from server" notices
- manager: change "add account manager" to "use account manager".
		"Add" is confusing, because you can't add multiple account managers
		like you add projects.
	- client: recognize a few new ATI GPU models
		from Robert Kreß

svn path=/trunk/boinc/; revision=22843
2010-12-17 18:56:10 +00:00
David Anderson 4f3d628e29 - client: if detect that system clock has been set backwards
(either at startup or during execution)
    reset a number of "wait until X" variables;
    otherwise we might wait years to contact a project, restart a file xfer, etc.
    Notes:
    - there is no problem setting clocks forward; things just happen prematurely
    - some variables (e.g. task deadlines) are not reset,
        because it's not clear what to set them to
- sched: remove ati_opencl plan class until we understand what it is


svn path=/trunk/boinc/; revision=22842
2010-12-17 01:30:01 +00:00
David Anderson fb923e7659 - API/client: move CUdevice_attribute_enum out of lib/coproc.h
to fix app build errors

svn path=/trunk/boinc/; revision=22502
2010-10-13 23:33:02 +00:00
Rom Walton 716db1a13f - WIN: Treat Windows SEH exceptions as C++ exceptions so they can be trapped
using the standard try/catch handlers.
    - WIN: Wrap the coproc detection stuff in C++ exception handlers. If for some
        reason the Nvidia or ATI APIs cause an exception don't use the GPUs and
        don't crash BOINC.
    - WIN: rename boinc_ss to boinc_os_ss and ss_app to boinc_ss.
        
    client/
        coproc_detect.cpp
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=21849
2010-06-30 19:17:52 +00:00
David Anderson e34dcc5bdb - client: when selecting the "best" ATI GPU, factors are:
1) double precision support
    2) memory size
    3) speed
    (similar to NVIDIA)

svn path=/trunk/boinc/; revision=21795
2010-06-23 18:16:19 +00:00
David Anderson 6511e1f8e8 - client: let fake CUDA specify driver version
- client: restore call to diagnostics_finish() on exit.
	(should print mem info, but doesn't)
- manager: notices display tweak 

svn path=/trunk/boinc/; revision=21759
2010-06-16 21:57:28 +00:00
David Anderson 49f3c1aa61 client: bug fixes
svn path=/trunk/boinc/; revision=21571
2010-05-18 21:11:35 +00:00
David Anderson 40eebe00af - client/scheduler: in COPROCS, instead of having a vector of
pointers to dynamically allocated COPROC-derived objects,
    just have the objects themselves.
    Dynamic allocation should be avoided at all costs.

svn path=/trunk/boinc/; revision=21564
2010-05-18 19:22:34 +00:00
David Anderson 354328a70e - client: fix bug that randomly caused idle GPUs
svn path=/trunk/boinc/; revision=21524
2010-05-14 18:41:26 +00:00
David Anderson 256c694c96 - client: make GPU available RAM measurement #ifdef-selectable,
and default it to off
- client: if we print available GPU RAM (which we now don't)
    have a separate timer per GPU type
- scheduler: add new plan classes cuda_opencl (sic) and ati_opencl

svn path=/trunk/boinc/; revision=21498
2010-05-13 03:07:33 +00:00
Rom Walton 9cb3e6ffc7 - client & lib: bring header inclusion up-to-date for the CC to begin
hunting down a memory leak.
        
    client/
        <Various Files>
    lib/
        <Various Files>

svn path=/trunk/boinc/; revision=21457
2010-05-11 19:10:29 +00:00
David Anderson 7db608660f - client: standardize debug messages.
Messages enabled by <foo_debug> are prefixed by "[foo]"


svn path=/trunk/boinc/; revision=21335
2010-04-29 20:32:51 +00:00
Rom Walton 57d49107b0 Quick Updates
svn path=/trunk/boinc/; revision=21305
2010-04-27 18:04:33 +00:00
David Anderson 9f9d98fff1 - client: write daily net history on shutdown
- client: remove extraneous calls to calShutdown()
    in ATIs available-RAM code.


svn path=/trunk/boinc/; revision=21304
2010-04-27 17:54:29 +00:00
David Anderson a32dca3fbc - user web: separate general stuff from prefs.inc
svn path=/trunk/boinc/; revision=21268
2010-04-23 18:32:30 +00:00
David Anderson 9619791ad3 - user web: more cleanup of prefs.inc
- client: code cleanup


svn path=/trunk/boinc/; revision=21267
2010-04-23 17:46:57 +00:00
Rom Walton ec04f5dcbd - CC: Reduce how often the client reports the amount of available
VRAM to once every 60 seconds.

    client/
        coproc_detect.cpp
        cpu_sched.cpp
    lib/
        coproc.h

svn path=/trunk/boinc/; revision=21264
2010-04-23 16:47:07 +00:00
David Anderson bede9972b1 - client: fix bug with NVIDIA GPUs.
Some of them allow only 1 CUDA context at a time.
    You need to create a CUDA context to get available VRAM.
    So the client would run a CUDA job, then immediately kill it.
    Solution:
    - If a GPU app is running,
        let it keep running regardless of available VRAM
        (if it's still running, it has enough VRAM).
    - But don't start new apps if there's not enough available VRAM,
        or it the amount is unknown
        (if the client can't create a CUDA context,
        the app won't be able to either)
- client: if <coproc_debug> is set, print available GPU RAM periodically

svn path=/trunk/boinc/; revision=21253
2010-04-22 17:45:33 +00:00
David Anderson 678d880c64 - client: clean up logic related to GPU available memory.
If a driver call to get available mem fail, mark the GPU as unusable.


svn path=/trunk/boinc/; revision=21210
2010-04-19 18:35:10 +00:00
David Anderson d4bb95d5a6 - client: when a GPU job finishes, clear the "schedule backoff"
of other jobs of that type.
		They're waiting for GPU RAM, which may now be available.
	- client: bug fix in GPU RAM availability
	- client: fix testing setup for GPU RAM availability

svn path=/trunk/boinc/; revision=21206
2010-04-18 05:29:29 +00:00
David Anderson 01402bb45a - client: improve GPU scheduling
old: assign GPUs, then check available RAM
        Problem: may cause starvation on multi-GPU systems.
    new: use available RAM info in the assignment process.
        Prevents starvation, also reduces the number of driver calls.

svn path=/trunk/boinc/; revision=21205
2010-04-18 03:00:33 +00:00
David Anderson be0d0c7d71 - client: fix bug in mechanism that inhibits work fetch
for a GPU if it lacks available memory

svn path=/trunk/boinc/; revision=21197
2010-04-16 21:56:58 +00:00
Charlie Fenton 6802a2fc0b client: fix build break
svn path=/trunk/boinc/; revision=21190
2010-04-15 23:07:29 +00:00
David Anderson 02717af2f3 - bug fixes
svn path=/trunk/boinc/; revision=21187
2010-04-15 21:58:44 +00:00
David Anderson dc0b76494c - client: if suspend a file xfer, set upload_offset to -1;
that way it will query server for file length when it resumes,
		rather than uploading from the beginning
	- client: back out SEH handling for GPU detection

svn path=/trunk/boinc/; revision=20750
2010-02-27 01:04:14 +00:00
Rom Walton 04b6570f96 - client: Add SEH handlers around the Nvidia and ATI detection
routines.  Take care of situations where something within
        the vendors functions cause a crash.
        
    client/
        coproc_detect.cpp

svn path=/trunk/boinc/; revision=20744
2010-02-26 18:03:39 +00:00
Rom Walton 3f89b88fff - client: newer ATI drivers crash if struct_size isn't filled out
before the structure is used.
        
    client/
        coproc_detect.cpp

svn path=/trunk/boinc/; revision=20388
2010-02-02 21:16:02 +00:00
David Anderson 20d6b06f5f - client: initial checkin for "don't compute if CPU usage above X"
svn path=/trunk/boinc/; revision=20192
2010-01-19 00:03:38 +00:00
David Anderson 10ed3004c6 - client: ATI available RAM wasn't being detected correctly
svn path=/trunk/boinc/; revision=20061
2010-01-03 17:46:11 +00:00
Charlie Fenton 033804ccda client: add missing dlsym of cuMemGetInfo() on non_Windows platforms
svn path=/trunk/boinc/; revision=19953
2009-12-17 09:58:56 +00:00
David Anderson ff39c80efb - client: ATI: call calShutdown() when done.
Otherwise Lenovo can't switch to low-power GPU

svn path=/trunk/boinc/; revision=19896
2009-12-14 17:15:55 +00:00
David Anderson 8520644cf0 svn path=/trunk/boinc/; revision=19865 2009-12-11 22:56:46 +00:00
David Anderson a151ad6cb3 - client/scheduler: deal with situation where GPU has enough
RAM to run job, but when we actually run the job
    not enough GPU RAM is free, so the application fails.
    This can cause a large number of jobs to fail.
    Solution:
    - app_plan() can specify the GPU RAM requirements of an app version.
        This is passed to the client in a new field
        <gpu_ram> of the <app_version> element.
    - prior to starting or restarting a GPU app, the client
        checks the amount of free RAM on the particular GPU.
        If it's not enough for the app version,
        the client doesn't start it,
        and arranges for the scheduler to ignore it for 5 minutes
        (by which point there might be more free GPU RAM)
    Notes:
    1) this change will have effect only when
        both client and scheduler are updated.
    2) the check is done in enforce_schedule(),
        rather than schedule_cpus(),
        because only at that point
        have we assigned a specific GPU to the job.
    3) there's another case to deal with:
        a GPU app's malloc of GPU RAM fails in the middle of the job.
        Currently the job fails.
        I plan to add an API call boinc_temporary_exit(x) so
        that the job can exit and potentially restart in x seconds.
        (In principle this mechanism is sufficient for all cases,
        but it could lead to a lot of starting/exiting,
        so the current change is worthwhile).

svn path=/trunk/boinc/; revision=19864
2009-12-11 22:45:59 +00:00
David Anderson 95579e7ebe svn path=/trunk/boinc/; revision=19795 2009-12-07 00:49:36 +00:00