You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GPUTracking: place shared constants in the constant address space
MSL requires every variable at program scope, class-scope statics included, to
name an address space and diagnoses it at the declaration, so these headers
broke any device translation unit that included them regardless of whether the
constants were used. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, where it adds constant.
Last of the series: with this the Metal translation unit has no program-scope
diagnostics left, down from 208.
GPUconstant() o2::gpu::GPUConstantMemCopyable gGPUConstantMemBuffer; // TODO: This should go into o2::gpu namespace, but then CUDA or HIP would not find the symbol
constexprstaticint32_t FFits{10}; ///< total number of fits: 10 regions * 2 charge types
201
-
constexprstaticint32_t FDim{5}; ///< dimensions of polynomials
202
-
constexprstaticint32_t FDegree{3}; ///< degree of polynomials
200
+
GPUglobalconstexpr()staticint32_t FFits { 10 };///< total number of fits: 10 regions * 2 charge types
201
+
GPUglobalconstexpr()staticint32_t FDim { 5 };///< dimensions of polynomials
202
+
GPUglobalconstexpr()staticint32_t FDegree { 3 };///< degree of polynomials
203
203
o2::gpu::NDPiecewisePolynomials<FDim, FDegree, false> mCalibPolsqTot[FFits]; ///< polynomial objects storage for the polynomials for qTot
204
204
o2::gpu::NDPiecewisePolynomials<FDim, FDegree, false> mCalibPolsqMax[FFits]; ///< polynomial objects storage for the polynomials for qMax
205
205
floatmScalingFactorsqTot[FFits]{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; ///< value which is used to scale the result of the polynomial for qTot (can be used for normalization)
0 commit comments