| 72 | | '''NOTE: plan classes for AMD GPUs must contain the substring 'ati'; |
| 73 | | plan classes for NVIDIA GPUs much contain either 'nvidia' or 'cuda' as a substring.''' |
| 74 | | |
| 75 | | The following plan classes for NVIDIA are pre-defined: |
| 76 | | |
| 77 | | '''cuda''':: NVIDIA GPU, compute capability 1.0+, driver version 177.00+, 254+ MB RAM. |
| 78 | | '''cuda23''':: Requires driver version 190.38+, 384+ MB RAM. |
| 79 | | '''cuda_fermi''':: Requires compute capability 2.0+ and CUDA version 3.0+ |
| 80 | | '''opencl_nvidia_101''':: Requires OpenCL 1.1+ support |
| 81 | | |
| 82 | | For ATI the situation is more complex because AMD changed the DLL names from amd* to ati* midstream; |
| 83 | | applications are linked against a particular name and will fail if it's not present. |
| 84 | | |
| 85 | | '''ati''':: CAL version 1.0.0+, amd* DLLs |
| 86 | | '''ati13amd''':: CAL version 1.3+, amd* DLLs |
| 87 | | '''ati13ati''':: CAL version 1.3+, ati* DLLs |
| 88 | | '''ati14''':: CAL version 1.4+, ati* DLLs |
| 89 | | '''opencl_ati_101''':: OpenCL 1.1+ |
| 90 | | |
| 91 | | You can verify which DLLs your application is linked against by using |
| 92 | | [http://www.dependencywalker.com/ Dependency Walker] against your application. |
| 93 | | If your executable contains DLL names prefixed with 'amd' then your plan class |
| 94 | | will be ati or ati13amd depending on which version of the CAL SDK you are using. |
| 95 | | If the DLL names are prefixed with 'ati' then use the ati13ati or ati14 plan classes. |
| 96 | | |
| 97 | | In all cases (NVIDIA and ATI), the application is assumed to use 1 GPU, |
| 98 | | and the CPU usage is assumed to be 0.5% the FLOPS of the GPU. |
| 99 | | If there is a choice, the scheduler will give preference to later classes, |
| 100 | | i.e. it will pick cuda23 over cuda. |
| 101 | | |
| 102 | | Once you have chosen a plan class for your executable, |
| 103 | | create an [wiki:UpdateVersions app version], specifying its plan class. |