| | 1 | = Configurable app plan functions = |
| | 2 | |
| | 3 | {{{ |
| | 4 | Possible tags: |
| | 5 | |
| | 6 | <name> Name of the plan class, string without spaces, exact match |
| | 7 | <type> type of the plan class, currently understood are 0 = CPU and 1 = CUDA |
| | 8 | 2 = ATI is suggested, but not supported in current code. |
| | 9 | May be specified numerically (0, 1, 2) or as token (CPU, CUDA, ATI) |
| | 10 | 3 = NVidia OpenCL, 4 = ATI OpenCL. |
| | 11 | |
| | 12 | <min_cuda_compcap> CUDA only: minimum compute capability |
| | 13 | <max_cuda_compcap> CUDA only: maximum compute capability, set to 9999 to exclude emulation device |
| | 14 | <min_cuda_version> CUDA only: minimum CUDA version |
| | 15 | <max_cuda_version> CUDA only: maximum CUDA version |
| | 16 | <min_opencl_version> OpenCL only: minimum required device version |
| | 17 | IMPORTANT NOTE: the NVidia display driver version is only reported by Windows |
| | 18 | core clients. Mac and Linux clients only report the CUDA version. The display |
| | 19 | driver version will allways be 0 (zero) for these clients, hence this should |
| | 20 | NEVER be used to restrict a plan class for platforms other than Windows! |
| | 21 | NOTE#2: Reporting driver version has been added to recent Mac Clients (6.13.x) |
| | 22 | NOTE#3: the driver_version may be specified negative. In this case its _absolute_ |
| | 23 | value is compared to the client's driver version, but only if this is reported. |
| | 24 | If the Client doesn't report a driver version, this check is skipped. |
| | 25 | <min_driver_version> GPU only: minimum display driver version |
| | 26 | <max_driver_version> GPU only: minimum display driver version |
| | 27 | <min_gpu_ram_mb> GPU only: minimum required amount of video RAM (in MB) |
| | 28 | <gpu_ram_used_mb> GPU only: video RAM a task will actually use (in MB) |
| | 29 | |
| | 30 | <project_prefs_tag> name of a tag from the project specific preferences that can be used to enable |
| | 31 | or disable this plan-class (scanned as double, 0.0 if not present) |
| | 32 | <project_prefs_min> min value this tag can have to allow this plan-class |
| | 33 | <project_prefs_max> max value this tag can have to allow this plan-class |
| | 34 | <gpu_utilization_tag> name of a tag from the project specific preferences which values is a custom |
| | 35 | gpu utilization factor supplied by the user. The 'ngpus' setting of the plan class |
| | 36 | will be multiplied by this when present. |
| | 37 | <cpu_feature> CPU features required for this plan class. Multiple tags allowed. All features |
| | 38 | lowercase (e.g. sse2, altivec). Both host.p_features and host.p_model are checked |
| | 39 | |
| | 40 | <min_macos_version> Deprecated: min Darwin version required for this plan class, 0 = no check, |
| | 41 | numeric: 1000 * major version + 100 * minor version + patchlevel |
| | 42 | <max_macos_version> Deprecated: max Darwin version allowed for this plan class, 0 = no limit |
| | 43 | |
| | 44 | <os_version> regexp specifying an OS version (should work for all OS that way) |
| | 45 | |
| | 46 | <speedup> speedup over standard "sequential" App for this platform |
| | 47 | <peak_flops_factor> correct the (theoretical) peak flops by that factor (assumed efficency) |
| | 48 | <avg_ncpus> |
| | 49 | <max_ncpus> |
| | 50 | <ngpus> GPU only: number / fraction of GPUs used, defaults 0 for CPU plan classes, 1 otherwise |
| | 51 | if ngpus < 0, set ncudas by the fraction of the total video RAM a tasks would take |
| | 52 | <gpu_flops> |
| | 53 | <cpu_flops> GPU only: if both gpu_flops and cpu_flops are set, compuute |
| | 54 | hu.avg_ncpus = avg_ncpus * sreq.host.p_fpops / cpu_flops and |
| | 55 | projected_flops = cp.peak_flops / gpu_flops * speedup + 1.0 / hu.avg_ncpus; |
| | 56 | |
| | 57 | Here is an example of three plan class specifications, two CPU, one CUDA. |
| | 58 | |
| | 59 | <plan_classes> |
| | 60 | |
| | 61 | <plan_class> |
| | 62 | <name> CUDA32 </name> |
| | 63 | <min_cuda_compcap> 100 </min_cuda_compcap> |
| | 64 | <max_cuda_compcap> 9999 </max_cuda_compcap> |
| | 65 | <min_cuda_version> 3020 </min_cuda_version> |
| | 66 | <min_driver_version> 26000 </min_driver_version> |
| | 67 | <max_driver_version> 99999 </max_driver_version> |
| | 68 | <min_gpu_ram_mb> 300 </min_gpu_ram_mb> |
| | 69 | <gpu_ram_used_mb> 300 </gpu_ram_used_mb> |
| | 70 | <speedup> 10.0 </speedup> |
| | 71 | <avgncpus> 0.2 </avgncpus> |
| | 72 | </plan_class> |
| | 73 | |
| | 74 | <plan_class> |
| | 75 | <name> BRP3SSE </name> |
| | 76 | <cpu_feature> sse </cpu_feature> |
| | 77 | <project_prefs_tag> also_run_cpu </project_prefs_tag> |
| | 78 | <project_prefs_max> 0 </project_prefs_max> |
| | 79 | </plan_class> |
| | 80 | |
| | 81 | <plan_class> |
| | 82 | <name> ALTIVEC </name> |
| | 83 | <cpu_feature> altivec </cpu_feature> |
| | 84 | <min_macos_version> 80000 </min_macos_version> |
| | 85 | <speedup> 1.4 </speedup> |
| | 86 | </plan_class> |
| | 87 | |
| | 88 | </plan_classes> |
| | 89 | }}} |