source: sasmodels/doc/ref/compilation.rst @ 58c3367

core_shell_microgelscostrafo411magnetic_modelrelease_v0.94release_v0.95ticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since 58c3367 was 1875f4e, checked in by wojciech, 8 years ago

Adding documentation for model complitaion - it still need to be updated and reviewed

  • Property mode set to 100644
File size: 2.8 KB
RevLine 
[1875f4e]1.. _models-complitation:
2
3******************
4Models Compliation
5******************
6SasView model evaluations can run on your graphics card (GPU) or they can run
7on the processor (CPU).
8
9To run on the GPU, your computer must have OpenCL drivers installed.
10
11... give details on how to identify graphics cards, how to tell if OpenCL
12is already installed and where to get drivers if it is not ...
13
14Note that Intel provides an OpenCL drivers for Intel processors.
15This can sometimes make use of special vector instructions across multiple
16processors, so it is worth installing if the GPU does not support double
17precision.
18You can install this driver alongside the GPU driver for NVIDIA or AMD.
19
20Where the model is evaluated is a little bit complicated.
21If the model has the line *single=False* then it requires double precision.
22If the GPU is single precision only, then it will try running via OpenCL
23on the CPU.  If the OpenCL driver is not available for the CPU then
24it will run as a normal program on the CPU.
25For models with a large number of parameters or with a lot of code,
26the GPU may be too small to run the program effectively.
27In this case, you should try simplifying the model, maybe breaking it
28into several different models so that you don't need if statements in your code.
29If it is still too big, you can set *opencl=False* in the model file and
30the model will only run as a normal program on the CPU.
31This will not usually be necessary.
32
33If you have multiple GPU devices you can tell SasView which device to use.
34By default, SasView looks for one GPU and one CPU device
35from available OpenCL platforms.
36
37It prefers AMD or NVIDIA drivers for GPU, and prefers Intel or
38Apple drivers for CPU.
39Both GPU and CPU are included on the assumption that CPU is always available
40and supports double precision.
41
42The device order is important: GPU is checked before CPU on the assumption that
43it will be faster. By examining ~/sasview.log you can see which device SasView
44chose to run the model.
45If you don't want to use OpenCL, you can set *SAS_OPENCL=None*
46in the environment, and it will only use normal programs.
47If you want to use one of the other devices, you can run the following
48from the python console in SasView::
49
50    import pyopencl as cl
51    cl.create_some_context()
52
53This will provide a menu of different OpenCL drivers available.
54When one is selected, it will say "set PYOPENCL_CTX=..."
55Use that value as the value of *SAS_OPENCL*.
56
57For models run as normal programs, you may need to specify a compiler.
58This is done using the SAS_COMPILER environment variable.
59Set it to *tinycc* for the tinycc compiler, *msvc* for the
60Microsoft Visual C compiler, or *mingw* for the MinGW compiler.
61TinyCC is provided with SasView so that is the default.
62If you want one of the other compilers, be sure to have it available
63on the path so SasView can find it.
Note: See TracBrowser for help on using the repository browser.