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. |