forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Port the whole pixel workflow to new heterogeneous framework (#384)
- port the whole pixel workflow to new heterogeneous framework - implement a legacy cluster to SoA converter for the pixel RecHits - update the vertex producer to run on CPU as well as GPU
- Loading branch information
Showing
8 changed files
with
119 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<use name="cuda-api-wrappers"/> | ||
<use name="rootcore"/> | ||
<use name="FWCore/ServiceRegistry"/> | ||
<use name="FWCore/ParameterSetReader"/> | ||
<use name="HeterogeneousCore/CUDAServices"/> | ||
<use name="HeterogeneousCore/CUDAUtilities"/> | ||
<use name="eigen"/> | ||
<export> | ||
<lib name="1"/> | ||
</export> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#ifndef CUDADataFormatsVertexZVertexHeterogeneous_H | ||
#define CUDADataFormatsVertexZVertexHeterogeneous_H | ||
|
||
#include "CUDADataFormats/Vertex/interface/ZVertexSoA.h" | ||
#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h" | ||
#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" | ||
|
||
|
||
using ZVertexHeterogeneous = HeterogeneousSoA<ZVertexSoA>; | ||
#ifndef __CUDACC__ | ||
#include "CUDADataFormats/Common/interface/CUDAProduct.h" | ||
using ZVertexCUDAProduct = CUDAProduct<ZVertexHeterogeneous>; | ||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#ifndef CUDADataFormatsVertexZVertexSoA_H | ||
#define CUDADataFormatsVertexZVertexSoA_H | ||
|
||
#include<cstdint> | ||
#include "HeterogeneousCore/CUDAUtilities/interface/cudaCompat.h" | ||
|
||
|
||
// SOA for vertices | ||
// These vertices are clusterized and fitted only along the beam line (z) | ||
// to obtain their global coordinate the beam spot position shall be added (eventually correcting for the beam angle as well) | ||
struct ZVertexSoA { | ||
static constexpr uint32_t MAXTRACKS = 32*1024; | ||
static constexpr uint32_t MAXVTX = 1024; | ||
|
||
int16_t idv[MAXTRACKS]; // vertex index for each associated (original) track (-1 == not associate) | ||
float zv[MAXVTX]; // output z-posistion of found vertices | ||
float wv[MAXVTX]; // output weight (1/error^2) on the above | ||
float chi2[MAXVTX]; // vertices chi2 | ||
float ptv2[MAXVTX]; // vertices pt^2 | ||
int32_t ndof[MAXVTX]; // vertices number of dof (reused as workspace for the number of nearest neighbours) | ||
uint16_t sortInd[MAXVTX]; // sorted index (by pt2) ascending | ||
uint32_t nvFinal; // the number of vertices | ||
|
||
__host__ __device__ void init() { nvFinal = 0; } | ||
|
||
}; | ||
|
||
#endif // CUDADataFormatsVertexZVertexSoA.H | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#ifndef CUDADataFormats__src_classes_h | ||
#define CUDADataFormats__src_classes_h | ||
|
||
#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" | ||
#include "CUDADataFormats/Common/interface/CUDAProduct.h" | ||
#include "DataFormats/Common/interface/Wrapper.h" | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<lcgdict> | ||
<class name="CUDAProduct<ZVertexHeterogeneous>" persistent="false"/> | ||
<class name="edm::Wrapper<ZVertexCUDAProduct>" persistent="false"/> | ||
<class name="ZVertexHeterogeneous" persistent="false"/> | ||
<class name="edm::Wrapper<ZVertexHeterogeneous>" persistent="false"/> | ||
</lcgdict> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters