Changes between Version 21 and Version 22 of AppCoprocessor


Ignore:
Timestamp:
Sep 29, 2009, 8:24:50 PM (15 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AppCoprocessor

    v21 v22  
    22
    33BOINC supports applications that use coprocessors.
    4 The supported coprocessor types (as of [18892])are NVIDIA and API GPUs.
     4The supported coprocessor types (as of [18892])are NVIDIA and ATI GPUs.
    55
    66The BOINC client probes for coprocessors and reports them in scheduler requests.
     
    2525}}}
    2626
    27 == Deploying a coprocessor app ==
     27== Plan classes ==
    2828
    29 When you deploy a coprocessor app you must specify:
     29Each coprocessor application has an associated [AppPlan plan class]
     30which determines the hardware and software resources that are needed
     31to run the application.
    3032
    31  * its hardware and software requirements
    32  * an estimate of what fraction of a CPU it will use
    33  * an estimate of its performance on individual hosts
     33The following plan classes for NVIDIA are pre-defined:
    3434
    35 This information is specified in an
     35 '''cuda''':: NVIDIA GPU, compute capability 1.0+,
     36  driver version 177.00+, 254+ MB RAM.
     37 '''cuda23''':: NVIDIA GPU, driver version 190.38+, 284+ MB RAM.
     38
     39For ATI the situation is more complex because AMD changed the
     40DLL names from amd_* to ati_* midstream;
     41applications are linked against a particular name and will fail
     42if it's not present.
     43
     44 '''ati''':: CAL version 1.0.0+, amd_* DLLs
     45 '''ati13amd''':: CAL version 1.3+, amd_* DLLs
     46 '''ati13ati''':: CAL version 1.3+, ati_* DLLs
     47 '''ati14''':: CAL version 1.4+, ati_* DLLs
     48 
     49In all cases (NVIDIA and ATI), the application is assumed to use 1 GPU,
     50and the CPU usage is assumed to be 0.5% the FLOPS of the GPU.
     51If there is a choice, the scheduler will give preference to later classes,
     52i.e. it will pick cuda23 over cuda.
     53
     54Once you have chosen a plan class for your executable,
     55create an [UpdateVersions app version], specifying its plan class.
     56
     57== Defining a custom plan class ==
     58
     59If your application has properties that differ from
     60any of the pre-defined classes, you can define your own.
     61To do this, you must modify the
    3662[AppPlan application planning function] that you link into your scheduler.
    37 Specifically, you must:
    3863
    39  * Choose a "plan class" name for your program, say "cuda" (see below).
    40  * Create an [UpdateVersions app version], specifying its plan class as "cuda".
    41  * Edit the function '''app_plan()''' in '''sched/sched_customize.cpp''' so that it contains a clause for your plan class.
    42 
    43 The default '''app_plan()''' contains clause for plan class '''cuda''' and '''cuda23''' (CUDA 2.3).
    44 We will explain its logic; you may need to modify it for your CUDA app.
    45 
     64To see how to do this, let's look at the default function.
    4665First, we check if the host has an NVIDIA GPU.
    4766{{{