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):
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: