Skip to content
Snippets Groups Projects

CPU algorithms configurable in sequence and automatic Monte Carlo validation configuration

Merged Daniel Hugo Campora Perez requested to merge dcampora_cpu_sequence into master
1 unresolved thread

This MR adds in the ability to configure CPU algorithms in the sequence by a similar method to the existing one. In addition, the Monte Carlo validation iterates over all configured algorithms and is run only for those that were pre-configured to be validated when run.

  • CPU algorithms can be configured in the sequence now.
  • A CPU_ALGORITHM must be declared, with its function and desired type name. Header files can include CpuHandler.cuh. for this purpose.
  • The header file should be included in ConfiguredSequence.cuh.
  • Algorithm dependencies must be defined for CPU algorithms too. The dependencies refer only to GPU datatypes.
  • A new sequence, CPUSciFi, has been defined.
  • The configured sequence is iterated for validation with Monte Carlo data at the end of the sequence, if configured to do so (-c 1).
  • Sequence checkers need to be specified under the sequence_checkers/include directory, and included under Stream.cu. The existing ones can also be extended.
  • Huge refactoring of the Monte Carlo validation code.
  • velopix-input-reader has been refactored into the more fitting name MCEvent.
  • Monte Carlo data are only read once for all checkers, and data is replicated into three containers: velo_mcps, ut_mcps and scifi_mcps, with templated data accessors for each.
  • All tools to use the checker have been moved to checker/tracking.
  • As a consequence, TrackChecking is now a CUDA library, as it requires to know about cuda_runtime.h.
  • The class PrCheckerInvoker has been created, and it has a constructor and a single templated check method.
  • PrepareTracks holds all methods to prepare tracks, specialized for existing datatypes.
  • Obsolete run options have been removed. -x no more configures an x86 sequence, this is done at compile time now. The option for the "simplified Kalman filter" has been removed since it was not used anymore.
  • Printing the memory consumption is only done once after all allocations have taken place.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • 1 #include "PrForward.cuh"
    2 #include "RunForwardCPU.h"
    3
    4 /**
    5 * @brief Specialization for any Velo reconstruction algorithm invoking
  • added 1 commit

    • 8387845a - Refactored PrCheckerInvoker into CheckerInvoker.

    Compare with previous version

  • Please register or sign in to reply
    Loading