Changes between Version 38 and Version 39 of AppCoprocessor


Ignore:
Timestamp:
Jun 6, 2012, 11:03:08 AM (12 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppCoprocessor

    v38 v39  
    5050
    5151== Cleanup on premature exit ==
     52
    5253The BOINC client may kill your application during execution.
    53 This may leave the GPU in a bad state. To prevent this, call
     54This may leave the GPU in a bad state.
     55To prevent this, call
    5456
    5557{{{
     
    6870== Plan classes ==
    6971
     72All GPU applications must use a [AppPlan plan class] to specify their properties.
     73You may be able use one of the predefined plan classes;
     74otherwise you must define your own plan class,
     75using either [AppPlanSpec XML] or [PlanClassFunc C++].
    7076
    71 == Defining a custom plan class ==
    72 
    73 If your application has properties that differ from any of the pre-defined classes,
    74 you can modify them, or better yet define your own.
    75 
    76 To define a new NVIDIA/CUDA plan class, add a new clause
    77 to '''app_plan_cuda()''' in sched/sched_customize.cpp.
    78 For example, the plan class '''cuda23''' is defined by:
    79 
    80 {{{
    81     ...
    82     if (!strcmp(plan_class, "cuda23")) {
    83         if (!cuda_check(c, hu,
    84             100,        // minimum compute capability (1.0)
    85             200,        // max compute capability (2.0)
    86             2030,       // min CUDA version (2.3)
    87             19500,      // min display driver version (195.00)
    88             384*MEGA,   // min video RAM
    89             1.,         // # of GPUs used (may be fractional, or an integer > 1)
    90             .01,        // fraction of FLOPS done by the CPU
    91             .21            // estimated GPU efficiency (actual/peak FLOPS)
    92         )) {
    93             return false;
    94         }
    95     }
    96 }}}
    97 
    98 To define a new ATI/CAL plan class, add a new clause
    99 to '''app_plan_ati()'''.
    100 For example:
    101 {{{
    102     if (!strcmp(plan_class, "ati14")) {
    103         if (!ati_check(c, hu,
    104             1004000,    // min display driver version (10.4)
    105             false,      // require libraries named "ati", not "amd"
    106             384*MEGA,   // min video RAM
    107             1.,         // # of GPUs used (may be fractional, or an integer > 1)
    108             .01,        // fraction of FLOPS done by the CPU
    109             .21         // estimated GPU efficiency (actual/peak FLOPS)
    110         )) {
    111             return false;
    112         }
    113     }
    114 }}}
    115 
    116 To define a new OpenCL plan class, add a new clause to
    117 '''app_plan_opencl()'''.
    118 For example:
    119 
    120 {{{
    121     if (!strcmp(plan_class, "opencl_nvidia_101")) {
    122         return opencl_check(
    123             c, hu,
    124             101,        // OpenCL version (1.1)
    125             256*MEGA,   // min video RAM
    126             1,          // # of GPUs used
    127             .1,         // fraction of FLOPS done by the CPU
    128             .21         // estimated GPU efficiency (actual/peak FLOPS)
    129         );
    130     }
    131 }}}