David Anderson
ae9c58e03d
client: fix compile warnings
2014-07-23 12:41:41 -07:00
Charlie Fenton
512e8e2cfe
client: continue adding support for OpenCL devices (GPUs and accelerators) other than AMD/ATI, NVIDIA or Intel GPUs.
...
For now, handle AMD/ATI, NVIDIA or Intel GPUs as before. But for other, "new" vendors, we treat each device as a separate resource, creating an entry for each instance in the COPROCS::coprocs[] array and copying the device name COPROC::opencl_prop.name into the COPROC::type field (instead of the vendor name.)
For devices from "new" vendors, set <gpu_type> field in init_data.xml file to the vendor string supplied by OpenCL. This should allow boinc_get_opencl_ids() to work correctly with these "new" devices without modification.
2014-07-23 05:18:51 -07:00
Charlie Fenton
98f4c461d0
client: group new (non-NVIDIA, non-AMD, non-INTEL) OpenCL device types by vendor name string rather than by CL_DEVICE_VENDOR_ID. This assumes that OpenCL reports identical vendor name strings for all devices from the same vendor on a given host. I incorrectly thought CL_DEVICE_VENDOR_ID was a numeric ID of the vendor which would be the same for each device from that vendor, but it is actually a unique numeric ID assigned by a given vendor to each device on a particular host.
2014-07-18 04:25:45 -07:00
Charlie Fenton
64d76198ea
client: keep array subscripts in bounds.
2014-07-16 06:05:01 -07:00
Charlie Fenton
b37cf4cd9a
client: begin adding support for OpenCL devices other than AMD/ATI, NVIDIA or Intel
2014-07-16 04:33:26 -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
Charlie Fenton
becaf33656
client: Remove redundant code in OpenCL CPU detection which was added in commit 8888ba6
2013-11-04 02:19:19 -08:00
Rom Walton
8888ba6aa8
client: Detect OpenCL CPUs with the latest Intel drivers.
...
client: Display an OpenCL CPU event log item for every OpenCL CPU detected.
2013-10-10 14:23:30 -04:00
Charlie Fenton
53eceeb71e
client: better error handling for OpenCL CPUs
2013-08-22 07:25:36 -07:00
Charlie Fenton
8a2d5d8c50
client: better error handling for OpenCL CPUs
2013-08-22 07:02:59 -07:00
Charlie Fenton
c5724ca325
client: For compatibility with boinc_get_opencl_ids(), don't include CPU when enumerating opencl_dev_index
2013-08-22 06:16:36 -07:00
Charlie Fenton
eb15b04d4a
client: implement support for OpenCL detection of CPUs
...
Notes:
- The same CPU can have a different cpu_opencl_prop for each of multiple OpenCL platforms. We send them all to the project server because:
- Different OpenCL platforms report different values for the same CPU.
- Some OpenCL CPU apps may work better with certain OpenCL platforms.
- OpenCL has only 64 bits for global_mem_size, so it can report a max of only 4GB; get the CPU RAM size from gstate.hostinfo.m_nbytes.
2013-08-22 05:06:54 -07:00
Rom Walton
07017027d5
client: Clearing the devnums_pci_slot_sort vector after the first Nvidia OpenCL device is detected causes a SIGSEGV for any subsequent Nvidia OpenCL device detections.
2013-07-11 00:52:43 -04:00
Charlie Fenton
e8d09695a5
client: minor housekeeping cleanup when correlating CUDA GPU reporting order with apple's OpenCL.
2013-06-30 03:02:45 -07:00
Charlie Fenton
a6e276b93e
client: apparently CUDA does not always report GPUs in order of ascending PCI slot number, but Apple's OpenCL does. We must take this into account win correlating NVIDIA OpenCL GPUs with CUDA GPUs.
...
Since NVIDIA provides drivers for both OpenCL and CUDA on Windows and Linux, I am assuming (until shown otherwise) that they will report GPUs in the same order.
2013-06-28 02:37:57 -07:00
Charlie Fenton
737ab61bce
client: tweaks to code for detecting GPUs via a child process and change sprintf calls to safer snprintf.
2013-06-26 02:24:36 -07:00
Charlie Fenton
5d8ee12063
client: fix bug in commit c8e1b51: matching of ATI/AMD CAL and OpenCL GPU enumeration for (most) cases where CAL supports some older GPUs but OpenCL does not.
2013-06-25 20:49:50 -07:00
Charlie Fenton
e2b2370e9d
client: optionally detect GPUs via a child process, for dual_GPU laptops.
...
Some dual-GPU laptops (e.g., Macbook Pro) don't power down the more powerful GPU until all applications which used them exit. To save battery life, the client launches a second instance of the client as a child process to detect and get info about the GPUs.
The child process writes the info to a temp file which our main client then reads.
This option is enabled at compile time by defining USE_CHILD_PROCESS_TO_DETECT_GPUS as non-zero in gpu_detect.cpp
2013-06-25 04:31:34 -07:00
David Anderson
846b8c7757
all components: change strcpy() to strlcpy() when possible.
...
This commit should cover the client and manager code.
2013-06-03 20:24:48 -07:00
David Anderson
3610a334aa
- client: minor code cleanup
2013-04-17 11:33:53 -07:00
David Anderson
35390ef974
- client: add support for CPU OpenCL apps.
...
Add OPENCL_DEVICE_PROP cpu_opencl_prop to HOST_INFO;
this store info about the host's ability to run CPU OpenCL apps.
Detect this, and report it in scheduler requests.
2013-04-16 22:42:29 -07:00
Charlie Fenton
c8e1b51e40
client: fix matching of ATI/AMD CAL and OpenCL GPU enumeration for (most) cases where CAL supports some older GPUs but OpenCL does not.
2013-04-15 03:01:31 -07:00
Charlie Fenton
4f5fd8899c
OpenCL: Eliminate spurious error message when an OpenCL platform exists but the computer has no corresponding devices
2013-03-04 17:19:39 +01:00
Charlie Fenton
407d16a7d9
client: clean up redundant and confusing GPU description
2013-03-04 17:01:36 +01:00
Charlie Fenton
462be89f01
Restore changes lost due to GIT confusion
2013-03-04 17:01:36 +01:00
Oliver Bock
508b9b572b
Merge branch 'master' of ssh://boinc.berkeley.edu/boinc
...
Conflicts:
checkin_notes
client/acct_mgr.cpp
client/cs_statefile.cpp
client/gpu_opencl.cpp
lib/coproc.cpp
Additional changes:
client/Makefile.am
Dropped changes:
client/cs_scheduler.cpp (516eff6
)
sched/sched_send.cpp (2dd8288
)
2013-03-04 16:35:08 +01:00
Rom Walton
516eff60b0
- client: Hook up the XML portion of the Intel GPU detection code so
...
the server scheduler knows about it.
- client: Print out the peak flops for the Intel GPU, the regular
OpenCL descriptions do not show peak flops.
2013-03-04 15:30:03 +01:00
David Anderson
1174b00aba
- client/manager: tweaks to Intel GPU code
2013-03-04 15:27:25 +01:00
Charlie Fenton
f3c11f5831
client: strcasestr does exist on Windows in lib/str_replace.cpp, but I just needed to #include "str_replace.h". This is preferable because it handles INTEL as well as Intel and intel
2013-03-04 15:23:39 +01:00
Rom Walton
2f67ee08ce
- client: strcasestr doesn't exist on Windows.
2013-03-04 15:23:39 +01:00
Charlie Fenton
ce87ec9848
OpenCL: First pass at adding support for Intel Ivy Bridge GPUs
2013-03-04 15:23:39 +01:00
Charlie Fenton
aff3b7675c
client: Don't support CUDA on dual-GPU MacBooks with automatic GPU switching to save battery power
...
svn path=/trunk/boinc/; revision=26088
2012-09-12 10:05:41 +00:00
Charlie Fenton
a02ceae225
client: work around a nasty bug which crashes OSX (!) on some dual-gpu MacBooks with CUDA
...
svn path=/trunk/boinc/; revision=26082
2012-09-08 13:04:37 +00:00
Charlie Fenton
eb40422c34
client: If OpenCL detection gets an error for a platform or device, finish detection of the remaining platforms and / or devices
...
svn path=/trunk/boinc/; revision=26047
2012-08-20 10:04:19 +00:00
David Anderson
b050deecf7
- client: compile fixes
...
svn path=/trunk/boinc/; revision=25773
2012-06-18 20:41:37 +00:00
David Anderson
5e61c29cc3
- client: split GPU detection code into separate files
...
svn path=/trunk/boinc/; revision=25771
2012-06-18 20:12:30 +00:00