Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
namespace o2::its
{
// Time estimates are given in BC
// error needs to cover maximum 1 orbit
// error needs to cover maximum 1 orbit (uint16_t), but increased due to 2 byte padding
using TimeStampType = uint32_t;
using TimeStampErrorType = uint16_t;
using TimeStampErrorType = uint32_t;
// this is an symmetric time error [t0-tE, t0+tE]
using TimeStamp = o2::dataformats::TimeStampWithError<float, float>;
// this is an asymmetric time interval [t0, t0+tE] used for internal calculations
Expand Down Expand Up @@ -95,7 +95,7 @@ class TimeEstBC : public o2::dataformats::TimeStampWithError<TimeStampType, Time
this->setTimeStampError(static_cast<TimeStampErrorType>(hi - lo));
}

ClassDefNV(TimeEstBC, 1);
ClassDefNV(TimeEstBC, 2);
};

} // namespace o2::its
Expand Down
2 changes: 1 addition & 1 deletion DataFormats/common/src/CommonDataFormatLinkDef.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#pragma link C++ class o2::dataformats::TimeStampWithError < float, float> + ;
#pragma link C++ class o2::dataformats::TimeStampWithError < double, double> + ;
#pragma link C++ class o2::dataformats::TimeStampWithError < int, int> + ;
#pragma link C++ class o2::dataformats::TimeStampWithError < uint32_t, uint16_t> + ;
#pragma link C++ class o2::dataformats::TimeStampWithError < uint32_t, uint32_t> + ;

#pragma link C++ class o2::dataformats::EvIndex < int, int> + ;
#pragma link C++ class o2::dataformats::RangeReference < int, int> + ;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ struct TrackingKernels {
const float maxChi2ClusterAttachment,
const float bz,
const unsigned int nCells,
o2::its::ExternalAllocator* alloc,
gpu::Stream& stream);

static void processNeighboursHandler(const int startLevel,
Expand Down
1 change: 1 addition & 0 deletions Detectors/ITSMFT/ITS/tracking/GPU/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ if(CUDA_ENABLED)
set_property(TARGET ${targetName} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
target_compile_options(${targetName} PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:-diag-error=20014>
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>
# $<$<COMPILE_LANGUAGE:CUDA>:-G;-O0;-Xptxas=-O0>
# $<$<COMPILE_LANGUAGE:CXX>:-O0;-g>
)
Expand Down
4 changes: 2 additions & 2 deletions Detectors/ITSMFT/ITS/tracking/GPU/cuda/TimeFrameGPU.cu
Original file line number Diff line number Diff line change
Expand Up @@ -263,12 +263,12 @@ void TimeFrameGPU<NLayers>::createUsedClustersDevice(const int layer)
template <int NLayers>
void TimeFrameGPU<NLayers>::loadUsedClustersDevice()
{
GPUTimer timer("loading used clusters flags");
for (auto iLayer{0}; iLayer < NLayers; ++iLayer) {
GPUTimer timer(mGpuStreams[iLayer], "loading used clusters flags", iLayer);
const auto& used = this->mUsedClusters[iLayer];
GPULog("gpu-transfer: loading {} used clusters flags on layer {}, for {:.2f} MB.", used.size(), iLayer, used.size() * sizeof(unsigned char) / constants::MB);
if (!used.empty()) {
GPUChkErrS(cudaMemcpyAsync(mUsedClustersDevice[iLayer], used.data(), used.size() * sizeof(unsigned char), cudaMemcpyHostToDevice, mGpuStreams[iLayer].get()));
GPUChkErrS(cudaMemcpyAsync(mUsedClustersDevice[iLayer], used.data(), used.size() * sizeof(unsigned char), cudaMemcpyHostToDevice, Stream::DefaultStream));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ void TrackerTraitsGPU<NLayers>::findCellsNeighbours(const int iteration)
this->mTrkParams[iteration].MaxChi2ClusterAttachment,
this->mBz,
mTimeFrameGPU->getNCells()[sourceCellTopologyId],
mTimeFrameGPU->getFrameworkAllocator(),
stream);
}
return finalizeCellNeighboursHandler(mTimeFrameGPU->getDeviceNeighbours(targetCellTopologyId),
Expand Down
315 changes: 232 additions & 83 deletions Detectors/ITSMFT/ITS/tracking/GPU/cuda/TrackingKernels.cu

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,14 @@ enum SlabSite : uint8_t {
Tracklets = 0,
Cells,
Neighbours,
RoadCandidates,
Roads,
TrackSeeds,
TracksExtended,
Tracks,
NSlabSite,
};
constexpr const char* const SlabSiteNames[SlabSite::NSlabSite]{"Tracklets", "Cells", "Neighbours", "Roads", "TrackSeeds", "TracksExtended", "Tracks"};
constexpr const char* const SlabSiteNames[SlabSite::NSlabSite]{"Tracklets", "Cells", "Neighbours", "RoadCandidates", "Roads", "TrackSeeds", "TracksExtended", "Tracks"};

class CapacityEstimator
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ struct Tracklet final {
int secondClusterIndex{constants::UnusedIndex};
float tanLambda{constants::UnsetValue};
float phi{constants::UnsetValue};
TimeEstBC mTime;
TimeEstBC mTime{};

ClassDefNV(Tracklet, 1);
};
Expand Down