1. 26 Jun, 2021 1 commit
    • David Frank's avatar
      Remove noise from Timer in logging output · 81883132
      David Frank authored
      The Timer class now prints timing information only if the Logger is set
      to debug level, instead of info level. This reduces noise in the output.
      The Timing of execution is not necessarily an useful information all the
      An example is the python script introduced in !182, all useful
      information regarding conversion and solvers is shadowed by the Timing
  2. 25 Jun, 2021 2 commits
  3. 24 Jun, 2021 2 commits
  4. 22 Jun, 2021 1 commit
  5. 21 Jun, 2021 4 commits
    • David Frank's avatar
      #129 Reduce runtime of certain tests dramatically · 12d3340f
      David Frank authored
      Some tests have extraemly long runtime especially in debug builds. This
      commit reduces the runtime ~3x on my personal machine, hopefully the
      effect is even more pronounced on the CI.
      Closes #129
    • David Frank's avatar
    • David Frank's avatar
      Remove unnecessray heap allocation in ml · 97a10375
      David Frank authored
      At a couple of places a new unique_ptr was created, then directly
      dereferenced and a copy of the underlying VolumeDescriptor returned.
      This creates an unnecessray heap allocation. This commits directly casts
      the reference of the smart pointer to a VolumeDescriptor and from there
      the copy is created.
      Remove dynamic_unique_ptr_cast and static_unique_ptr_cast as both is
      covered by the downcast functions in TypeCasts.hpp.
    • David Frank's avatar
      Fix couple of bugs in downcast, add BadCastError · 80ac3574
      David Frank authored
      This fixes a couple of bugs in the downcast implementation:
      * In some cases the const was not correctly copied
      * unique_ptr overload ignores deleter now, as it can give errors for the
        default deleter (which we use), if needed we can provide an overload
        in the future.
      The reference overload is now similar to the pointer one from an
      implementation perspective, but instead of returning nullptr it throws a
  6. 19 Jun, 2021 3 commits
  7. 18 Jun, 2021 6 commits
  8. 17 Jun, 2021 2 commits
    • David Frank's avatar
    • David Frank's avatar
      Move asIndex to core renamed to asUnsigned, add asSigned · 3558eb04
      David Frank authored
      Some more functionality was added with the TypeCasts.hpp file:
      * is(...): check if a pointer/reference/unique_ptr can be dynamically
        casted to the derived type
      * downcast(...): downcast a pointer/reference/unique_ptr statically to
        the derived type, assumes caller knows that the type is correct.
      * downcast_safe(...): downcast a pointer/reference/unique_ptr to the
        derived type, but only if it's possible. If not a nullptr is returned
        for the pointer cases and std::bad_cast is thrown for the reference
  9. 16 Jun, 2021 1 commit
  10. 12 Jun, 2021 1 commit
  11. 11 Jun, 2021 1 commit
    • David Frank's avatar
      Improve output style of CI scripts, use clang-format --dry-run · a41e87b2
      David Frank authored and Tobias Lasser's avatar Tobias Lasser committed
      The clang-format test script now relies on clang-format's (now) in-build
      functionality to check for wrong formatting instead of actually
      performing or committing the formated changes and then reverting them.
      From a perceived behaviour standpoint nothing has changed, it should now
      only be more convenient to use the script, as it doesn't require a
      clean git state anymore.
      Further, all formatting and linting scripts run only on the changed
      files rather than on the whole codebase. Plus they have some nicer
      looking output :^)
  12. 10 Jun, 2021 2 commits
  13. 08 Jun, 2021 1 commit
    • David Frank's avatar
      #90 Add formatting and linting using cmake-format · d54fa670
      David Frank authored and Tobias Lasser's avatar Tobias Lasser committed
      The cmakelang package (see https://github.com/cheshirekow/cmake_format)
      provides tools for linting and formatting CMake files. This commit
      provides a basic infrastructure to make use of it.
      First, the necessary formatting style file is added
      ('.cmake-format.py'). For many cases, the CMake files don't fulfill
      these requirements yet, therefore, many linting checks are still
      Second, scripts and CI stages (only for linting) are added, which are
      run alongside clang-format and clang-tidy. Currently, the formatting
      job is not run, as the files are not yet formatted correctly.
      Future MRs should work on slowly reducing the disabled codes.
      Close #90
  14. 07 Jun, 2021 2 commits
    • David Frank's avatar
      Use GCC 10 for sanitizer build · ffc8d708
      David Frank authored
    • David Frank's avatar
      Reduce scope of caching in CI to a cache per job and branch · 84e2cfbf
      David Frank authored
      As found in MR !153, the scope of the caches in the CI were chosen to
      large. Therefore it could happen, that sporadically a build job, would
      pick a cache from the clang-tidy run, which initializes with the
      "Makefile" generator rather than Ninja. This would cause the pipeline to
      Now, the caching is more conservative, there is one cache for each
      job-branch combination. This should completely resolve this issue, but
      it's also not optimal from a space requirement, but I'd rather use more
      disk space on the build server, than have sporadic failures of the CI.
  15. 04 Jun, 2021 1 commit
  16. 02 Jun, 2021 2 commits
  17. 01 Jun, 2021 3 commits
  18. 30 May, 2021 1 commit
    • David Frank's avatar
      Handle standard *nix paths to find Cudnn · 538c94ea
      David Frank authored
      CUDA is often installed in either /usr/local/cuda
      or /opt/cuda. Therefore, add these paths to the search
      path for Cudnn. The paths are now quite similar
      to finding Cublas.
  19. 27 May, 2021 1 commit
  20. 26 May, 2021 1 commit
  21. 20 May, 2021 1 commit
    • David Frank's avatar
      Add CMake function, to add warnings to a target · a8bcbd51
      David Frank authored
      set_target_warnings(<target>) adds a set of warnings to a target. elsa
      now differentiates between two warning levels: 'base' and 'all'.
      Currently, only base will be tested to keep the compability.
      From time to time, we can move warnings from the all warnings to the
      base warning level and fix some of the warnings.
  22. 18 May, 2021 1 commit
    • David Frank's avatar
      Use CMAKE_CUDA_ARCHITECTURES to determine compute capabilities · 1cd68aff
      David Frank authored
      In CMake 3.18 the (CMAKE_)CUDA_ARCHITECTURES variables were introduced.
      CMake uses them to pass the compute capabilities to the CUDA compiler.
      Therefore, for CMake versions 3.18 and higher, we rely on this CMake
      behaviour and while we still support previous versions, the previous
      behaviour is still kept around.
      CMAKE_CUDA_ARCHITECTURES is set to 'Auto' by default, which is
      equivalent to the previous CUDA_ARCH variables that was used.
      Overwriting via the command line is possible for cross compilation of
      CUDA code.