![]() |
Project
|
Namespaces | |
namespace | cfconsts |
namespace | gpu_common_constants |
namespace | gpu_reconstruction_kernels |
namespace | gpu_rtc |
namespace | gpurecoworkflow_internals |
namespace | gpustd |
namespace | gputpcgmmergertypes |
namespace | internal |
namespace | tpccf |
Functions | |
template<> | |
GPUdi () o2 | |
GPUhdi () float GPUCommonMath | |
template<typename T > | |
GPUd () void _swap(T &a | |
template<typename T > | |
GPUhdi () void GPUCommonMath | |
template<class T , class S , class R > | |
GPUdi () T GPUCommonMath | |
template<> | |
GPUhdi () float GPUCommonMath | |
template<> | |
GPUhdi () double GPUCommonMath | |
template<> | |
GPUhdi () int32_t GPUCommonMath | |
template<> | |
GPUdi () auto &GPUConstantMem | |
template<> | |
GPUdi () auto &GPUConstantMem | |
GPUdnii () void GPUdEdx | |
template<uint32_t Dim, uint32_t Degree, bool InteractionOnly> | |
GPUd () const expr uint32_t MultivariatePolynomialHelper< Dim | |
template<uint32_t DegreePol> | |
GPUd () const expr float MultivariatePolynomialHelper< Dim | |
float | evalPol4_5D (const float *x, const float *par) |
float | evalPol5_5D_interactionOnly (const float *x, const float *par) |
float | genRand () |
BOOST_AUTO_TEST_CASE (Polynomials5D) | |
BOOST_AUTO_TEST_CASE (Polynomials5D_InteractionOnly) | |
BOOST_AUTO_TEST_CASE (Piecewise_polynomials) | |
BOOST_AUTO_TEST_CASE (Spline_test1) | |
Basic test if we can create the interface. | |
template<typename T > | |
T * | resizeArray (T *&ptr, int32_t oldSize, int32_t newSize, T *newPtr=nullptr) |
template<typename T > | |
T ** | resizeArray (T **&ptr, int32_t oldSize, int32_t newSize, T **newPtr=nullptr) |
Variables | |
T & | b |
a = b | |
GPUSettingsStandalone | configStandalone |
constexpr float | MaxSinPhi = 0.999f |
const o2::track::TrackParCov & | trkX |
constexpr ChargePos | INVALID_CHARGE_POS {255, 255, INVALID_TIME_BIN} |
Degree | |
using o2::gpu::Array2D = typedef AbstractArray2D<T, TPCMapMemoryLayout<T> > |
typedef uint32_t o2::gpu::cahit |
Definition at line 31 of file GPUTPCDef.h.
typedef uint32_t o2::gpu::calink |
Definition at line 30 of file GPUTPCDef.h.
typedef GPUCommonMath o2::gpu::CAMath |
Definition at line 172 of file GPUCommonMath.h.
Definition at line 193 of file GPUDataTypes.h.
Definition at line 194 of file GPUDataTypes.h.
using o2::gpu::GPUdEdxInfo = typedef o2::tpc::dEdxInfo |
Definition at line 22 of file GPUdEdxInfo.h.
Definition at line 78 of file GPUReconstructionOCL.h.
Definition at line 53 of file GPUTRDDef.h.
Definition at line 54 of file GPUTRDDef.h.
Definition at line 50 of file GPUTRDDef.h.
Definition at line 58 of file GPUTRDDef.h.
Definition at line 59 of file GPUTRDDef.h.
Definition at line 51 of file GPUTRDDef.h.
using o2::gpu::TPCMapMemoryLayout = typedef LinearLayout |
typedef o2::base::PropagatorImpl<float> o2::gpu::TRDBasePropagator |
Definition at line 39 of file GPUTRDDef.h.
Definition at line 41 of file GPUTRDDef.h.
typedef o2::track::TrackParametrizationWithError<float> o2::gpu::TRDBaseTrack |
Definition at line 35 of file GPUTRDDef.h.
Definition at line 37 of file GPUTRDDef.h.
o2::gpu::BOOST_AUTO_TEST_CASE | ( | Piecewise_polynomials | ) |
Definition at line 139 of file testMultivarPolynomials.cxx.
o2::gpu::BOOST_AUTO_TEST_CASE | ( | Polynomials5D | ) |
Definition at line 46 of file testMultivarPolynomials.cxx.
o2::gpu::BOOST_AUTO_TEST_CASE | ( | Polynomials5D_InteractionOnly | ) |
Definition at line 92 of file testMultivarPolynomials.cxx.
o2::gpu::BOOST_AUTO_TEST_CASE | ( | Spline_test1 | ) |
Basic test if we can create the interface.
Definition at line 27 of file testSplines.cxx.
float o2::gpu::evalPol4_5D | ( | const float * | x, |
const float * | par | ||
) |
Definition at line 28 of file testMultivarPolynomials.cxx.
float o2::gpu::evalPol5_5D_interactionOnly | ( | const float * | x, |
const float * | par | ||
) |
Definition at line 33 of file testMultivarPolynomials.cxx.
float o2::gpu::genRand | ( | ) |
Definition at line 38 of file testMultivarPolynomials.cxx.
o2::gpu::GPUd | ( | ) | const |
o2::gpu::GPUd | ( | ) | const |
o2::gpu::GPUd | ( | ) | & |
o2::gpu::GPUdi | ( | ) | & |
Definition at line 64 of file GPUConstantMem.h.
o2::gpu::GPUdi | ( | ) | & |
Definition at line 69 of file GPUConstantMem.h.
o2::gpu::GPUdi | ( | ) | const |
====================================================
Gives pointer to spline
Gives pointer to spline data
Gives pointer to spline
Gives pointer to spline data
Definition at line 38 of file TrackTRD.h.
Definition at line 349 of file GPUCommonMath.h.
o2::gpu::GPUhdi | ( | ) |
Definition at line 419 of file GPUCommonMath.h.
o2::gpu::GPUhdi | ( | ) |
Definition at line 243 of file GPUCommonMath.h.
o2::gpu::GPUhdi | ( | ) |
Definition at line 412 of file GPUCommonMath.h.
o2::gpu::GPUhdi | ( | ) |
Definition at line 426 of file GPUCommonMath.h.
o2::gpu::GPUhdi | ( | ) |
Definition at line 331 of file GPUCommonMath.h.
T * o2::gpu::resizeArray | ( | T *& | ptr, |
int32_t | oldSize, | ||
int32_t | newSize, | ||
T * | newPtr = nullptr |
||
) |
The FlatObject class represents base class for flat objects. Objects may contain variable-size data, stored in a buffer. The data may contain pointers to the buffer inside. The buffer can be internal, placed in mFlatBufferContainer, or external.
Important: All methods of the FlatObject are marked "protected" in order to not let users to call them directly. They all should be reimplemented in daughter classes, because only daughter class knows how to reset all pointers in the data buffer. This is an unusual decision. Normally, to avoid confusion one should just mark methods of a base class virtual or abstract. But this right solution invokes use of a virtual table and complicates porting objects to other machines. Therefore: no virtual functions but protected methods.
== Object construction.
This base class performs some basic operations, like setting initialisation flags, allocating / releasing memory etc. As no virtual methods are involved, the rest should be done manually in daughter classes.
It is assumed, that a daughter object may be complicated and can not be constructed by just a call of its c++ constructor. May be it needs to wait for something else to be initialized first. Like a database or so.
Therefore the object may find itself in some intermediate half-constructed state, where its data stays in private temporary arrays and can not be yet copied to the flat buffer.
To deal with it, some extra control on the initialization flow is provided.
The object can be constructed either a) by calling void startConstruction(); ... do something .. void finishConstruction( int32_t flatBufferSize );
b) or by cloning from another constructed(!) object: obj.CloneFromObject(..)
A new obect is by default in "Not Constructed" state, operations with its buffer will cause an error.
== Making an internal buffer external option a) std::unique_ptr<char[]> p = obj.releaseInternalBuffer(); ..taking care on p..
option b) std::unique_ptr<char[]> p( new char[obj.GetBufferSize()] ); obj.moveBufferTo( p.get() ); ..taking care on p..
option c) std::unique_ptr<char[]> p( new char[obj.GetBufferSize()] ); obj.cloneFromObject(obj, p.get() ); ..taking care on p..
=== Making an external buffer internal
option a) obj.cloneFromObject( obj, nullptr );
option b) obj.moveBufferTo( nullptr );
== Moving an object to other machine.
This only works when the buffer is external. The object and its buffer are supposed to be bit-wise ported to a new place. And they need to find each other there. There are 2 options:
option a) The new buffer location is only known after the transport. In this case call: obj.setActualBufferAddress( new buffer address ) from the new place.
option b) The new buffer location is known before the transport (case of porting to GPU). In this case call: obj.setFutureBufferAddress( char* futureFlatBufferPtr ); before the transport. The object will be ready-to-use right after the porting.
Definition at line 121 of file FlatObject.h.
T ** o2::gpu::resizeArray | ( | T **& | ptr, |
int32_t | oldSize, | ||
int32_t | newSize, | ||
T ** | newPtr = nullptr |
||
) |
Definition at line 149 of file FlatObject.h.
o2::gpu::a = b |
Definition at line 326 of file GPUCommonMath.h.
o2::gpu::b |
Definition at line 323 of file GPUCommonMath.h.
|
extern |
Definition at line 47 of file genEvents.cxx.
o2::gpu::Degree |
Definition at line 239 of file MultivariatePolynomialHelper.h.
|
inlineconstexpr |
Definition at line 58 of file ChargePos.h.
|
constexpr |
Definition at line 42 of file GPUTPCCompressionTrackModel.h.
const o2::track::TrackParCov& o2::gpu::trkX |
Definition at line 29 of file GPUTrackParamConvert.h.