Changes between Version 41 and Version 42 of AppCoprocessor
- Timestamp:
- Jul 8, 2013, 2:45:41 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppCoprocessor
v41 v42 2 2 = Applications that use coprocessors = 3 3 BOINC supports applications that use coprocessors. 4 The supported coprocessor types (as of [24404])are NVIDIA and ATIGPUs.4 The supported coprocessor types are NVIDIA, AMD, and Intel GPUs. 5 5 6 6 The BOINC client probes for coprocessors and reports them in scheduler requests. 7 The client keeps track of coprocessor allocation, i.e. how manyinstances of each are free.8 It only runs an app if enough instances are available.7 The client keeps track of coprocessor allocation, i.e. which instances of each are free. 8 When it turns a GPU app, it assigns it to a free instance. 9 9 10 10 You can develop your application using any programming system, … … 21 21 boinc_temporary_exit(60); 22 22 }}} 23 This will exit the application, and will tellthe BOINC client to restart23 This exits the application and tells the BOINC client to restart 24 24 it again in at least 60 seconds, 25 25 at which point memory may be available. … … 50 50 }}} 51 51 52 == Cleanup on premature exit==52 == Do GPU kernels within critical sections == 53 53 54 54 The BOINC client may kill your application during execution. 55 This may leave the GPU in a bad state.56 To prevent this, call55 If a GPU kernel is in progress at this point, a system crash or hang may occur. 56 To prevent this, do GPU kernels within a critical section, e.g. 57 57 58 58 {{{ 59 59 boinc_begin_critical_section(); 60 }}} 61 before using the GPU, and between GPU kernels do 62 63 {{{ 64 if (boinc_status.quit_request || boinc_status.abort_request) { 65 // cudaThreadSynchronize(); or whatever is needed 66 boinc_end_critical_section(); 67 exit(0); 68 } 60 ... do GPU kernel 61 boinc_end_critical_section(); 69 62 }}} 70 63