Commit Graph

5 Commits

Author SHA1 Message Date
David Anderson 4c9d1d6659 client: code cleanup and possible debugging in work fetch
- Remove code that tries to keep track of available GPU RAM
  and defer jobs that don't fit.
  This never worked, it relied on project estimates of RAM usage,
  and it's been replaced by having the app do temporary exit
  if alloc fails.
- Move logic for checking for deferred jobs from CPU
  to work fetch.
- Rename rsc_defer_sched to has_deferred_job,
  and move it from PROJECT to RSC_PROJECT_WORK_FETCH
- tweak work_fetch_debug output
2014-10-10 14:35:00 -07:00
David Anderson ac9e2b088d client emulator: make it work again 2014-05-21 10:41:55 -07:00
Charlie Fenton 9895066353 client: fix to commit 6b1a073 (don't try to run OpenCL jobs on non-OpenCL GPUs)
For unknown reasons, testing opencl_device_ids[[i] works only for debug builds, so add a new array bool have_opencls[] to COPROC struct in which we record which devices are openCL-capable before we clear the ati_opencls and nvidia_opencls vectors.
2014-05-14 03:40:58 -07:00
David Anderson 6b1a0731f1 client: don't try to run OpenCL jobs on non-OpenCL GPUs
Suppose
- the host has 2 GPUs of same vendor; A is OpenCL capable, B isn't
- the volunteer sets "use_all_gpus" config flag
Then the client will try to run OpenCL jobs on B.
Depending on how the app is written,
it may run on B and fail, or run on A and overload A.

Solution: when assigning GPUs to OpenCL jobs,
check that the GPU instance is OpenCL capable.

Note: this problem would go away if we treated each GPU as a separate resource.
2014-05-02 12:04:05 -07:00
David Anderson 72d1369342 client: code shuffle; move GPU scheduling code to new file 2014-05-01 23:53:55 -07:00