- new GPU types can be added easily
- users can specify GPUs in cc_config.xml,
referred to by app_info.xml,
and they will be scheduled by BOINC
and passed --device N options
Note: the parsing of cc_config.xml is not done yet.
- RPC protocols (account manager and scheduler)
can now specify GPU types in separate elements
rather than embedding them in tag names
e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
- client: in account manager replies, parse elements of the form
<no_rsc>NAME</no_rsc>
indicating the GPUs of type NAME should not be used.
This allows account managers to control GPU types
not hardwired into the client.
Note: <no_cuda/> and <no_ati/> will continue to be supported.
- scheduler RPC reply: add
<no_rsc_apps>NAME</no_rsc_apps>
(NAME = GPU name)
to indicate that the project has no jobs for the indicated GPU type.
<no_cuda_apps> etc. are still supported
- client/lib: remove set_debts() GUI RPC
- client/scheduler RPC
remove <cuda_backoff> etc. (superceded by no_app)
Exception: <ip_result> elements in sched request
still have <ncudas> and <natis>.
Fix this later.
Implementation notes:
- client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
Continue to recognize "CUDA" for compatibility
- host_info.coprocs no longer used within the client;
use a global var (COPROCS coprocs) instead.
COPROCS now has an array of COPROCs;
GPUs types are identified by the array index.
Index zero means CPU.
- a bunch of other resource-specific structs (like RSC_WORK_FETCH)
are now stored in arrays, with same indices as COPROCS
(i.e. index 0 is CPU)
- COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
- APP_VERSION now has a struct GPU_USAGE to describe its GPU usage
svn path=/trunk/boinc/; revision=23253
using the standard try/catch handlers.
- WIN: Wrap the coproc detection stuff in C++ exception handlers. If for some
reason the Nvidia or ATI APIs cause an exception don't use the GPUs and
don't crash BOINC.
- WIN: rename boinc_ss to boinc_os_ss and ss_app to boinc_ss.
client/
coproc_detect.cpp
win_build/
*.vcproj
svn path=/trunk/boinc/; revision=21849
Windows. The goal is to completely automate the build process
by creating a self contained environment for the scripts to
execute under. When completed it'll be able to do the following:
* Increment version information
* Build client software using installed version of VS.
* Validate symbol files for specific components.
* Add source file information to symbol files. (This will allow
VS to automatically download the source file from SVN while
single-stepping through the code on a clean machine)
* Code sign executables
* Build installer
* Code sign installer
* Upload updated symbol files and and setup packages
When building interactively:
* Automatically update the DLLs BOINC and BOINCMgr depend on
when they have been updated in the source tree.
* Fix-up BOINC project files when new branches are created
* Fix-up project files for components BOINC depends on when
new versions are released.
/
version.log (added)
win_build/
buildenv.cmd (added)
boinc_post_bld_rules.cmd
boinc_cli.vcproj
boincmgr.vcproj
../boinc_depends_win_vs2005
<Various Files>
svn path=/trunk/boinc/; revision=19672
NOTE: I'll need to do a little more research and adjust the
diagnostics stuff later. I believe that the diagnostics
framework will now always report an unhandled C++ exception
for things like an Access Violation.
- client: On Windows, recover from an Access Violation if/when
the GPU functions access violate.
lib/
boinc_in.h
coproc.cpp
win_build/
*.vcproj
svn path=/trunk/boinc/; revision=19541