Skip to content
Snippets Groups Projects

Merge master with dorothea

Merged Dorothea Vom Bruch requested to merge merge_master_dorothea into master
1 unresolved thread

work on cmake:

  • compile sub-projects as libraries, link to main executable
  • use target_include_directories to make include directories known to each sub-project

added checker directory containing the essential parts of the efficiency calculator by Manuel Schiller, still need to give proper input from cuda/velo output

why does code in x86/velo/clustering depend on the cuda code in cuda/velo/mask_clustering? Intuitively, that should not be the case (?)

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 1 cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
2 2
3 project(cu_hlt CXX)
3 project(cu_hlt CXX CUDA)
4 4
5 5 list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) # for find_package
6 6
7 7 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O3 -std=c++11 -march=native")
8 8
9 find_package(CUDA REQUIRED)
9 find_package(Boost REQUIRED)
  • added 1 commit

    • 119fa192 - boost library not needed -> remove from cmake

    Compare with previous version

  • About the cuda dependency of the x86 clustering: main/include/Common.h actually has cuda_runtime.h included. If I only include this when compiling with nvcc, I get errors from ClusteringDefinitions.cuh when called from x86/velo/clustering because constant memory is allocated ("__ contant __"). Is the x86/velo/clustering supposed to run on CPU only?

    Edited by Dorothea Vom Bruch
  • Yes, x86/velo/clustering is only supposed to run on CPU.

    The reason for including "cuda_runtime.h" in Common.h is the need to define cudaCheck(stmt), which is used in main for things like cudaDeviceReset() or allocating the host pinned datatypes. I have moved it to main/include/CudaCommon.h in this MR dcampora/search_by_triplet!2 (merged)

    What error do you get? I would think that the variables defined as extern __constant__ are only required in the Stream constant initialization.

  • I merged your branch into this one (merge_master_dorothea), but I still get errors, because in the ClusteringDefinitions.cuh __ constant __ is used and unknown without cuda_runtime.h. But this file is included in /home/dvombruc/cuda_hlt/x86/velo/clustering/include/Clustering.h

  • I see. The problem is more fundamental: One could separate the class definitions from that header not to have the constant directive, but you would still have to solve the device and host directives, which are in the very class definitions we need (ie. VeloRawEvent).

    I don’t see how to avoid this - I’m guessing there is some compile time variable we can check.

  • added 2 commits

    • 6459df93 - Removed cuda_runtime.h dependency from Common.h
    • 1e8d45fa - merged with 'remove runtime dep'

    Compare with previous version

  • Similar to what I wrote to you on mattermost: we should probably decide whether it is actually necessary to have code in this project which should not depend on cuda. In the end, this is the repo for HLT to run on GPUs and the only reason to have code run on x86 architecture is probably to cross check results from a GPU, not to develop x86-only code.

    So maybe my original comment can be dismissed.

  • added 1 commit

    Compare with previous version

  • mentioned in commit 15f8773b

  • Please register or sign in to reply
    Loading