Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vectorised RooLandau #1

Closed
wants to merge 26 commits into from

Commits on Jul 9, 2019

  1. [RF] Change evaluatePartition interface for test statistics.

    evaluatePartition() addresses event numbers with integers. It was
    changed to use std::size_t. This protects from negative indices, and is
    future proof when large numbers of events are available.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    ba1a4fe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0edc1cb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9aa6af2 View commit details
    Browse the repository at this point in the history
  4. Fix some typos in docs.

    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    7c3e29d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0fecdee View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4897f28 View commit details
    Browse the repository at this point in the history
  7. [RF] Add a RooSpan to enable batched function evaluations.

    o Add a RooSpan that uses a std::span in order to pass around data.
    o Change rudimentary batch data interface from std::vectors to spans.
    o Clean up iterators in RooVectorDataStore.
    o Revert RooNLLVar to single-value computations to have something ready for testing.
    o Increment class version of RooVectorDataStore.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    3cd7efd View commit details
    Browse the repository at this point in the history
  8. Add vdt math function to vectorised Gaussian prototype.

    Speedup of about 4x achieved, but only ever reads first data column.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    4d6803a View commit details
    Browse the repository at this point in the history
  9. Further cleanups.

    - Move functions for finding index of items from RooArgList to RooAbsCollection.
    - Fix override/not-yet-implemented warnings in various classes.
    - Improve comments.
    - Improve readability by using new iterators and correcting indentation.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    4852d12 View commit details
    Browse the repository at this point in the history
  10. Change batch evaluation interface.

    - Add a RooArgSet to the batch interface that holds variables found in the dataset.
    - Using the new BatchHelpers, PDFs can now search for their proxies in the dataset.
    - Implement batched/vectorised computations for Gauss and Poisson.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    6f5946a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f0e2732 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    07c0a77 View commit details
    Browse the repository at this point in the history
  13. Clean up RooAddition, RooConstraintSum of member iterators.

    Small cleanups and comments in RooSpan, RooAbsTestStatistic, RooAbsReal.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    9667252 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    2cedee6 View commit details
    Browse the repository at this point in the history
  15. Add BatchMode switch for fitTo to switch on BatchMode.

    RooNLLVar now has two modes to switch between scalar and batch+vectorised computation.
    The RooNLLVar implementation is not ready, yet. In particular, it's not vectorised.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    28ba4dd View commit details
    Browse the repository at this point in the history
  16. Hacky batch&vector version for RooAddPdf.

    RooAddPdf allocates its own memory to compute addition of PDFs. The next step
    is to take memory in the data store such that computations can be reused.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    8b44331 View commit details
    Browse the repository at this point in the history
  17. Add Pdf-local batch storage.

    - Add class BatchData to hold results of batch computations to RooRealVar
    - Make batch data accessible through RooRealProxy::getValBatch(begin, end)
    - Change batch computation interface in RooAbsPdf, AddPdf, Gauss, Poisson to
    getValBatch(begin, end, normSet)
    - Make data in RooVectorDataStore accessible to RooRealVar/RooRealProxy
    - [Cleanup] Remove traceEvalHook, as nobody uses it
    - Update typedefs in std::span backport
    - Add conversion constructor from RooSpan<T> to RooSpan<const T>
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    39abfc0 View commit details
    Browse the repository at this point in the history
  18. [Mathmore] Vectorise Kahan summation algorithm.

    Replace the existing Kahan summation by a version with multiple accumulators.
    This can be auto-vectorised by most compilers when filled from a container with
    contiguous memory.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    2183424 View commit details
    Browse the repository at this point in the history
  19. Fix computation errors in batch-local storage strategy.

    - BatchData: Add possibility to choose whether batches are initialised
    - RooAbsReal: Add interface to clear batches between computations
    - Adapt already vectorised PDFs to above change
    - Implement returning of weight variable in RooVectorDataStore
    - Properly enable RooSpan conversion constructor from T to const T
    - Add cache value checking for debug builds
    - Start refactoring NLL logic into single value and batch branches.
    Allows to easily switch between the two.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    4c4c36f View commit details
    Browse the repository at this point in the history
  20. [RF] Add generic evaluateBatch to RooAbsReal.

    - [ROOT-9818] Add a fallback implementation for evaluateBatch to
    RooAbsReal such that non-batch classes can be used in the same
    computation as batched classes.
    - Make getValBatch in RooAbsDataStore pure virtual, and place dummy
    implementations in derived classes.
    - Add code to check batch against scalar computations when compiled in
    debug mode.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    a6583a7 View commit details
    Browse the repository at this point in the history
  21. [RF] Change batch evaluation interface to begin+size indexing.

    - Change indexing of batches to a begin+size interface.
    - Remove requirement that batches have to be allocated (and their size
    given) before the computation. This allows for easier integration with
    different data storage backends, which might possibly yield shorter
    batches than asked for. This also allows to reduce memory pressure by
    not allocating batch storage for every entry in the dataset. Memory can
    be recycled for each batch.
    - Fix ROOT::span constructor to both take const and non-const vectors.
    - Fix override warning in RooDataSet.
    hageboeck committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    a1b489f View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2019

  1. [RF] Vectorise error checking in RooAbsPdf.

    - Vectorised the error checking routine in RooAbsPdf, and make sure that errors are communicated
    also in batch mode.
    - Instead of clearing batches in between NLL runs, only mark them dirty.
    - Stabilise error-checking debug routines against inf/nan.
    hageboeck committed Jul 11, 2019
    Configuration menu
    Copy the full SHA
    581a13d View commit details
    Browse the repository at this point in the history
  2. [RF] Prevent empty names for RooAbsArgs.

    - AbsArgs need a name to be indentified in datasets and PDF trees.
    - This commit adds a check such that empty names cannot be used.
    hageboeck committed Jul 11, 2019
    Configuration menu
    Copy the full SHA
    3a3c906 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2019

  1. [RF] Vectorised Landau PDF

    Emmanouil Michalainas committed Jul 26, 2019
    Configuration menu
    Copy the full SHA
    2be0476 View commit details
    Browse the repository at this point in the history
  2. [RF]

    Emmanouil Michalainas committed Jul 26, 2019
    Configuration menu
    Copy the full SHA
    f2abe2d View commit details
    Browse the repository at this point in the history
  3. [RF] Merged header file into pdf source file

    Emmanouil Michalainas committed Jul 26, 2019
    Configuration menu
    Copy the full SHA
    a2b8483 View commit details
    Browse the repository at this point in the history