Commit Graph

12 Commits

Author SHA1 Message Date
Charlie Fenton 631e236b08 client: tweaks to code for detecting GPUs via a child process.
Added safety features requested by Rom Walton:
* Change COPROC_ATI::get_available_ram and  COPROC_NVIDIA::get_available_ram to static routines to prevent calling them without first loading CAL or CUDA libraries.
* Add tests for NULL library calls in these routines.
* Add comments warning about need to call from a separate child process on dual-GPU laptops, proper library initialization, etc.
2013-06-27 02:36:20 -07:00
Charlie Fenton 4d74c5abbd client: tweaks to code for detecting GPUs via a child process and change sprintf calls to safer snprintf. 2013-06-26 05:00:25 -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
Rom Walton 26f9e380d9 - client: Initialize the total mem size_t.
svn path=/trunk/boinc/; revision=26116
2012-09-14 18:00:06 +00: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
Rom Walton 2882d5bc29 - client: initialize memfree and memtotal before use for Nvidia
cards.  It appears that the Nvidia API was only setting 32-bits
        of the 64-bit value.  The remaining 32-bits were whatever
        was on the stack.
        
    client/
        gpu_nvidia.cpp

svn path=/trunk/boinc/; revision=26084
2012-09-10 17:56:09 +00:00
David Anderson 446bc4ca28 - client: take GPU exclusions into account when making
initial work request to a project
- client: put some casts to double in NVIDIA detect code.
    Shouldn't make any difference.
- volunteer storage: truncate file to right size after retrieval


svn path=/trunk/boinc/; revision=26051
2012-08-20 23:41:27 +00:00
David Anderson 68f9880615 - client: remove "device" entry from CUDA_DEVICE_PROP,
and change types of mem-size fields from int to double.
    These fields are size_t in NVIDIA's version of this;
    however, cuDeviceGetAttribute() returns them as int,
    so I don't see where this makes any difference.
- client: fix bug in handling of <no_rsc_apps> element.
- scheduler: message tweaks.
    Note: [foo] means that the message is enabled by <debug_foo>.



svn path=/trunk/boinc/; revision=25849
2012-07-05 20:24:17 +00:00
David Anderson 133430fa3b - client: for NVIDIA, make an array of the PCI info
for all usable GPUs


svn path=/trunk/boinc/; revision=25775
2012-06-18 21:09:16 +00:00
David Anderson 5cf6321b67 - win compile fixes
svn path=/trunk/boinc/; revision=25774
2012-06-18 20:49:26 +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