Commit Graph

4 Commits

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