Commit Graph

6 Commits

Author SHA1 Message Date
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