Changes between Version 44 and Version 45 of AppCoprocessor

Jul 30, 2014, 2:28:27 PM (7 years ago)



  • AppCoprocessor

    v44 v45  
    22= Applications that use coprocessors =
    3 BOINC supports applications that use coprocessors.
    4 The supported coprocessor types are NVIDIA, AMD, and Intel GPUs.
    6 The BOINC client probes for coprocessors and reports them in scheduler requests.
     4BOINC supports applications that use coprocessors such as GPUs.
     5The BOINC client maintains a list of the coprocessors on the host.
     6It detects NVIDIA, AMD, and Intel GPUs, as well as OpenCL coprocessors.
     7Volunteers can specify other coprocessor types in the
     8[ cc_config.xml configuration file] .
     10The client reports coprocessors in scheduler requests;
     11the scheduler tries to send jobs that use available coprocessors.
    712The client keeps track of coprocessor allocation, i.e. which instances of each are free.
    8 When it turns a GPU app, it assigns it to a free instance.
     13When it runs a GPU app, it assigns it to a free instance.
    1015You can develop your application using any programming system,
    2934Some hosts have multiple GPUs.
    30 When your application is run by BOINC, it receives information
    31 about which GPU instance to use.
    32 This is passed as a command-line argument
     35The BOINC client tells your application which instance to use.
     36Call '''boinc_get_init_data()''' to get an APP_INIT_DATA structure;
     37the device number (0, 1, ...) is in the '''gpu_device_num''' field.
    34 {{{
    35 --device N
    36 }}}
    37 where N is the device number of the GPU that is to be used.
    38 If your application uses multiple GPUs, it will be passed multiple --device arguments, e.g.
     39Old (pre-7.0.12) clients pass the device number via a command-line argument, '''--device N'''.
     40In this case API_INIT_DATA::gpu_device_num will be -1,
     41and your application must check its command-line args.
    40 {{{
    41 --device 0 --device 3
    42 }}}
    43 '''Note:''' The use of this command-line argument is deprecated.  New applications should
    44 instead use the value of gpu_device_num passed in the APP_INIT_DATA structure returned
    45 by '''boinc_get_init_data()'''.
    47 Some OpenCL apps can use either NVIDIA, ATI or Intel GPUs,
    48 so they must also be told which type of GPU to use.
    49 This is also passed in the APP_INIT_DATA structure.
    50 {{{
    51 char gpu_type[64];     // "NVIDIA" or "ATI" or "intel_gpu"
    52 int gpu_device_num;
    53 }}}
    54 OpenCL apps should not use the command line argument, but should instead call
     43OpenCL apps should use
    5544the '''boinc_get_opencl_ids()''' API as described
    5645[ here].