File: pyFAI-benchmark.rst

package info (click to toggle)
pyfai 0.20.0%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 78,460 kB
  • sloc: python: 49,743; lisp: 7,059; sh: 225; ansic: 165; makefile: 119
file content (64 lines) | stat: -rw-r--r-- 2,545 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
:Author: Jérôme Kieffer
:Date: 22/01/2021
:Keywords: Performance analysis
:Target: user

.. _pyfaibenchmark:

pyFAI-benchmark
===============

Measure the speed for azimuthal integration.

Purpose
-------

Measures the avarage execution time for azimuthal integration with various image sizes and algorithms,
can be used to select the most suitable integrator, to evaluate the perfomance of a given computer, debug 
some hardware problems.

Image are between 1 and 16 Mpixel in size and all the method tested are providing the same
results for azimuthal integration (and validated). 
The `bbox` pixel splitting schem is used which is also the default one.
By default, only the `histogram` and `CSR` algorithm (implemented in cython) are measued, but 
OpenCL devices can be probed with options "-c", "-g" and "-a".

The result is a graphic with the number of images integrated per second as function 
of the image size. 
All the corresponding timings are also recorded in a JSON file.
 
Since pyFAI version 0.20, whith the new generation of integrator put in production,
both ``integrate1d_legacy`` and ``integrate1d_ng`` are benchmarked together to validate 
the absence of performance regression.
A factor larger than 2 sould be considered as a bug.  

Usage 
-----

pyFAI-bencmark [options]

optional arguments:
  -h, --help            show the help message and exit
  -v, --version         show program's version number and exit
  -d, --debug           switch to verbose/debug mode
  -c, --cpu             perform benchmark using OpenCL on the CPU
  -g, --gpu             perform benchmark using OpenCL on the GPU
  -a, --acc             perform benchmark using OpenCL on the Accelerator (like XeonPhi/MIC)
  -s SIZE, --size SIZE  Limit the size of the dataset to X Mpixel images (for computer with limited memory)
  -n NUMBER, --number NUMBER
                        Number of repetition of the test (or time used for each test), by default 10 (sec)
  -2d, --2dimention     Benchmark also algorithm for 2D-regrouping
  --no-1dimention       Do not benchmark algorithms for 1D-regrouping
  -m, --memprof         Perfrom memory profiling (Linux only)
  -r REPEAT, --repeat REPEAT
                        Repeat each benchmark x times to take the best
Result
------

The typical result looks like this:

.. figure:: ../img/benchmark.svg
   :align: center
   :alt: benchmark performed on a 2016 single-socket workstation and a gaming graphics card.

For the detailed explaination on how to read this plot, please refer to :ref:`performances`.