Changes between Version 21 and Version 22 of AppCoprocessor
- Timestamp:
- Sep 29, 2009, 8:24:50 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppCoprocessor
v21 v22 2 2 3 3 BOINC supports applications that use coprocessors. 4 The supported coprocessor types (as of [18892])are NVIDIA and A PI GPUs.4 The supported coprocessor types (as of [18892])are NVIDIA and ATI GPUs. 5 5 6 6 The BOINC client probes for coprocessors and reports them in scheduler requests. … … 25 25 }}} 26 26 27 == Deploying a coprocessor app==27 == Plan classes == 28 28 29 When you deploy a coprocessor app you must specify: 29 Each coprocessor application has an associated [AppPlan plan class] 30 which determines the hardware and software resources that are needed 31 to run the application. 30 32 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 33 The following plan classes for NVIDIA are pre-defined: 34 34 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 39 For ATI the situation is more complex because AMD changed the 40 DLL names from amd_* to ati_* midstream; 41 applications are linked against a particular name and will fail 42 if 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 49 In all cases (NVIDIA and ATI), the application is assumed to use 1 GPU, 50 and the CPU usage is assumed to be 0.5% the FLOPS of the GPU. 51 If there is a choice, the scheduler will give preference to later classes, 52 i.e. it will pick cuda23 over cuda. 53 54 Once you have chosen a plan class for your executable, 55 create an [UpdateVersions app version], specifying its plan class. 56 57 == Defining a custom plan class == 58 59 If your application has properties that differ from 60 any of the pre-defined classes, you can define your own. 61 To do this, you must modify the 36 62 [AppPlan application planning function] that you link into your scheduler. 37 Specifically, you must:38 63 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 64 To see how to do this, let's look at the default function. 46 65 First, we check if the host has an NVIDIA GPU. 47 66 {{{