ALLEN (CUDA_HLT)

TWIKI: ALLEN NODOS SANTIAGO

Requisites:

The project requires a graphics card with CUDA support, CUDA 10.0 and a compiler supporting C++14.

**CPU**

Estado actual:

Compilado correctamente incluíndo os headers de MuonMatch (Definitions.h e HitMatching.h) adaptados ao proxecto.

Adaptado o VeloUTMatch.h e VeloUTMaych.cpp ao entorno de Allen e conseguimos que funcione o algoritmo.

Falta:

- Testear o algoritmo

-Traducir a CUDA

FIND A NODO WITH GPU:

Login to the nodos and run this in your terminal (choose an option with CUDA 10.0):

you can check CUDA version with: -nvcc version

ssh -X $USER@172.16.57.109 (this works) <============

ssh -X pi057180.inv.usc.es

ssh -X $USER@172.16.57.204

ssh -X $USER@172.16.57.203

ssh -X $USER@172.16.57.180

ssh -X $USER@172.16.57.219

ssh -X $USER@172.16.57.220

ssh -X $USER@172.16.57.221

ssh -X $USER@172.16.57.222

ssh -X $USER@172.16.57.223

change device: export CUDA_VISIBLE_DEVICES=1

nvidia-smi

And the official repository is: https://gitlab.cern.ch/lhcb/Allen

if you want to clone it to your home:

git clone ssh://git@gitlab.cern.ch:7999/lhcb/Allen.git <============

The relevant scripts are:

*** CPU algorithm (git checkout velo_ut_matching_cpu) ***

x86/muon/match_upstream_muon/ (all inside) <============ THIS IS THE ALGORITHM

Muon definitions (where you can find the search windows):

https://gitlab.cern.ch/lhcb/Allen/blob/velo_ut_matching_cpu/cuda/muon/common/include/MuonDefinitions.cuh

The Efficiencies of all algorithms, also our: <============ Effs

checker/tracking/src/TrackChecker.cpp

checker/tracking/src/TrackCheckerHistos.cpp

checker/tracking/include/TrackChecker.h

checker/tracking/include/TrackCheckerHistos.h

Gitlab link:

https://gitlab.cern.ch/lhcb/Allen/tree/velo_ut_matching_cpu/x86/muon/match_upstream_muon

*** GPU algorithm (git checkout velo_ut_matching) ***

https://gitlab.cern.ch/lhcb/Allen/tree/velo_ut_matching/cuda/muon/match_upstream_muon

(ATTENTION)

For CUDA is better do not use LHCB enviroment. We should use the software collections. So:

1) Create two files in your home with the names .nolhcb and .nocvmfs, they can be empty, so you can create them with:

touch ~/.nolhcb ~/.nocvmfs

2) Logout and start a new session

we suggest the following setup: <============

source /cvmfs/sft.cern.ch/lcg/views/setupViews.sh LCG_95 x86_64-centos7-gcc8-optexport PATH=/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.14.2/Linux-x86_64/bin:$PATHexport PATH=/usr/local/cuda/bin:$PATH

(if GPU220)

export PATH=/usr/cuda/bin:${PATH}

export CPATH=$HOME/include:$CPATH

export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$HOME/lib:$LD_LIBRARY_PATH

source /cvmfs/sft.cern.ch/lcg/views/LCG_95/x86_64-slc6-gcc7-opt/setup.sh

export PATH=/scratch28/adrian.casais/cmake-3.14.5-Linux-x86_64/bin:$PATH

At this point we can build the project. Go to your copy (Allen) and: <============

git checkout velo_ut_matching

mkdir build

cd build

cmake -DSEQUENCE=MatchUpstreamMuon ..

or

cmake -DSEQUENCE=MatchUpstreamMuon -DUSE_ROOT=ON ..

(to compile with root and have histograms)

make -j10

Once finished you can run an example:

./Allen

(./Allen --device {select device to use}=0)

For users (test):

mkdir ../plotsfornote

mkdir ../plotsfornote_root

mkdir ../output

./Allen -f /scratch03/adrian.casais/hltcuda/17kevents_KS0_mumu -n 1000

(/scratch03/adrian.casais/hltcuda/10kevents_KS0_mumu_fix)

cd ../checker/plotting/muon/

python muon_id_efficiency_plots.py

COMPARING

./Allen -f /scratch03/adrian.casais/hltcuda/minbias_magdown/ -t 9 -n 1000 -r 200 -c 0

see:

https://gitlab.cern.ch/lhcb/Allen readme