Skip to content

Commit 2790723

Browse files
committed
Replace ALPAKA_STATIC_ACC_MEM_GLOBAL with HOST_DEVICE_CONSTANT
1 parent e8dff5b commit 2790723

File tree

3 files changed

+44
-42
lines changed

3 files changed

+44
-42
lines changed

Diff for: RecoTracker/LSTCore/interface/alpaka/Common.h

+28-28
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include <numbers>
55

6+
#include "FWCore/Utilities/interface/HostDeviceConstant.h"
67
#include "FWCore/MessageLogger/interface/MessageLogger.h"
78
#include "RecoTracker/LSTCore/interface/Common.h"
89

@@ -40,50 +41,49 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
4041

4142
// The constants below are usually used in functions like alpaka::math::min(),
4243
// expecting a reference (T const&) in the arguments. Hence,
43-
// ALPAKA_STATIC_ACC_MEM_GLOBAL needs to be used in addition to constexpr.
44+
// HOST_DEVICE_CONSTANT needs to be used in addition to constexpr.
4445

45-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPi = std::numbers::pi_v<float>;
46+
HOST_DEVICE_CONSTANT float kPi = std::numbers::pi_v<float>;
4647
// 15 MeV constant from the approximate Bethe-Bloch formula
47-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMulsInGeV = 0.015;
48-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniMulsPtScaleBarrel[6] = {
49-
0.0052, 0.0038, 0.0034, 0.0034, 0.0032, 0.0034};
50-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniMulsPtScaleEndcap[5] = {0.006, 0.006, 0.006, 0.006, 0.006};
51-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniRminMeanBarrel[6] = {
48+
HOST_DEVICE_CONSTANT float kMulsInGeV = 0.015;
49+
HOST_DEVICE_CONSTANT float kMiniMulsPtScaleBarrel[6] = {0.0052, 0.0038, 0.0034, 0.0034, 0.0032, 0.0034};
50+
HOST_DEVICE_CONSTANT float kMiniMulsPtScaleEndcap[5] = {0.006, 0.006, 0.006, 0.006, 0.006};
51+
HOST_DEVICE_CONSTANT float kMiniRminMeanBarrel[6] = {
5252
25.007152356, 37.2186993757, 52.3104270826, 68.6658656666, 85.9770373007, 108.301772384};
53-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniRminMeanEndcap[5] = {
53+
HOST_DEVICE_CONSTANT float kMiniRminMeanEndcap[5] = {
5454
130.992832231, 154.813883559, 185.352604327, 221.635123002, 265.022076742};
55-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2;
56-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kR1GeVf = 1. / (2.99792458e-3 * 3.8);
57-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kSinAlphaMax = 0.95;
58-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kDeltaZLum = 15.0;
59-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPixelPSZpitch = 0.15;
60-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kStripPSZpitch = 2.4;
61-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kStrip2SZpitch = 5.0;
62-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWidth2S = 0.009;
63-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWidthPS = 0.01;
64-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPt_betaMax = 7.0;
55+
HOST_DEVICE_CONSTANT float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2;
56+
HOST_DEVICE_CONSTANT float kR1GeVf = 1. / (2.99792458e-3 * 3.8);
57+
HOST_DEVICE_CONSTANT float kSinAlphaMax = 0.95;
58+
HOST_DEVICE_CONSTANT float kDeltaZLum = 15.0;
59+
HOST_DEVICE_CONSTANT float kPixelPSZpitch = 0.15;
60+
HOST_DEVICE_CONSTANT float kStripPSZpitch = 2.4;
61+
HOST_DEVICE_CONSTANT float kStrip2SZpitch = 5.0;
62+
HOST_DEVICE_CONSTANT float kWidth2S = 0.009;
63+
HOST_DEVICE_CONSTANT float kWidthPS = 0.01;
64+
HOST_DEVICE_CONSTANT float kPt_betaMax = 7.0;
6565
// To be updated with std::numeric_limits<float>::infinity() in the code and data files
66-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kVerticalModuleSlope = 123456789.0;
66+
HOST_DEVICE_CONSTANT float kVerticalModuleSlope = 123456789.0;
6767

68-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaTilted[3] = {0.26f, 0.26f, 0.26f};
69-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f};
70-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f};
71-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaEndcap[5][15] = {
68+
HOST_DEVICE_CONSTANT float kMiniDeltaTilted[3] = {0.26f, 0.26f, 0.26f};
69+
HOST_DEVICE_CONSTANT float kMiniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f};
70+
HOST_DEVICE_CONSTANT float kMiniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f};
71+
HOST_DEVICE_CONSTANT float kMiniDeltaEndcap[5][15] = {
7272
{0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
7373
{0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
7474
{0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
7575
{0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
7676
{0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}};
7777

7878
namespace t5dnn {
79-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kZ_max = 267.2349854f;
80-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kR_max = 110.1099396f;
81-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kEta_norm = 2.5f;
82-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPhi_norm = kPi;
79+
HOST_DEVICE_CONSTANT float kZ_max = 267.2349854f;
80+
HOST_DEVICE_CONSTANT float kR_max = 110.1099396f;
81+
HOST_DEVICE_CONSTANT float kEta_norm = 2.5f;
82+
HOST_DEVICE_CONSTANT float kPhi_norm = kPi;
8383
// pt, eta binned
8484
constexpr unsigned int kPtBins = 2;
8585
constexpr unsigned int kEtaBins = 10;
86-
ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp[kPtBins][kEtaBins] = {
86+
HOST_DEVICE_CONSTANT float kWp[kPtBins][kEtaBins] = {
8787
{0.4493, 0.4939, 0.5715, 0.6488, 0.5709, 0.5938, 0.7164, 0.7565, 0.8103, 0.8593},
8888
{0.4488, 0.4448, 0.5067, 0.5929, 0.4836, 0.4112, 0.4968, 0.4403, 0.5597, 0.5067}};
8989
} // namespace t5dnn

Diff for: RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h

+8-6
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33

44
#include <alpaka/alpaka.hpp>
55

6+
#include "FWCore/Utilities/interface/HostDeviceConstant.h"
7+
68
namespace ALPAKA_ACCELERATOR_NAMESPACE::lst::t5dnn {
7-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_layer1[32] = {
9+
HOST_DEVICE_CONSTANT float bias_layer1[32] = {
810
-1.3837075f, -0.0653152f, -0.7900129f, 0.0714758f, -1.1574365f, -1.4634879f, -0.9317133f, -0.1455518f,
911
-0.0459635f, -0.2055620f, 0.0586231f, -0.8943899f, -0.1009487f, 0.0166031f, -0.5451909f, -0.1384538f,
1012
1.2664700f, -1.8996916f, -0.0025585f, -0.1647783f, -1.9019107f, 0.0707104f, -0.2373025f, 0.0357050f,
1113
-0.0048417f, 2.3127339f, -0.0508943f, -0.1116435f, -0.1610904f, -1.6463890f, -1.0739423f, -0.0962902f};
1214

13-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_layer1[23][32] = {
15+
HOST_DEVICE_CONSTANT float wgtT_layer1[23][32] = {
1416
{-0.1881404f, -0.0534256f, 1.6563641f, 0.0401664f, 2.8318353f, 1.5049738f, 1.4111555f, -0.2339872f,
1517
0.0431970f, 0.1220361f, -0.0450153f, -1.6025578f, 0.0394025f, -0.3051167f, 1.9442217f, 0.1599094f,
1618
0.1376955f, 2.4181051f, -0.0226484f, -0.1801709f, -0.4861264f, -0.0268545f, 0.5463807f, 0.2420150f,
@@ -105,13 +107,13 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst::t5dnn {
105107
-0.1102583f, -0.5788267f, 0.0017006f, 2.6352038f, -1.7847317f, 1.7510574f, 2.1478791f, -0.2251654f},
106108
};
107109

108-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_layer2[32] = {
110+
HOST_DEVICE_CONSTANT float bias_layer2[32] = {
109111
-0.2689391f, 1.5461178f, -0.2424639f, 0.4424149f, -0.0411816f, -4.1070848f, 1.4709516f, -0.2439820f,
110112
-0.1750926f, 2.8802166f, -0.1573734f, -1.3724055f, 0.3671952f, 1.8267332f, 1.5655776f, -0.7323843f,
111113
1.6318209f, 2.2198663f, -1.5951139f, -0.0870247f, 0.2806863f, -0.2407108f, 0.1310665f, -0.5246177f,
112114
0.1914421f, -0.3386542f, -0.6310596f, 3.2995102f, 0.7519229f, -0.1565450f, -0.1496341f, 1.0073272f};
113115

114-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_layer2[32][32] = {
116+
HOST_DEVICE_CONSTANT float wgtT_layer2[32][32] = {
115117
{-0.1731049f, 1.7775618f, -0.2532010f, -0.2902778f, -0.1392802f, 4.2428946f, -0.1866968f, -0.1800365f,
116118
-0.0634398f, 0.0763313f, 0.0472901f, -0.8030146f, 0.3161853f, -1.0713238f, -4.6514492f, -0.3908085f,
117119
1.1607268f, 0.8834935f, -0.1194544f, -0.0785166f, 0.4967587f, -0.0558136f, -0.9601135f, -0.1001592f,
@@ -242,9 +244,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst::t5dnn {
242244
0.0378523f, 0.1039687f, -0.0701027f, 0.0509319f, 0.1355647f, 0.0978021f, 0.0391430f, 0.0241266f},
243245
};
244246

245-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_output_layer[1] = {-0.7420582f};
247+
HOST_DEVICE_CONSTANT float bias_output_layer[1] = {-0.7420582f};
246248

247-
ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_output_layer[32][1] = {
249+
HOST_DEVICE_CONSTANT float wgtT_output_layer[32][1] = {
248250
{0.0381968f}, {1.0667214f}, {0.0505496f}, {-1.5677565f}, {0.0066824f}, {-0.9951485f}, {0.9438043f},
249251
{0.0068631f}, {-0.0216870f}, {0.6560486f}, {-0.0235629f}, {0.9653404f}, {0.6641668f}, {-0.5351945f},
250252
{-0.5303048f}, {1.9339687f}, {0.4359012f}, {-0.7492802f}, {-0.5728400f}, {0.0473893f}, {-0.5091293f},

Diff for: RecoTracker/LSTCore/standalone/analysis/DNN/train_T5_DNN.ipynb

+8-8
Original file line numberDiff line numberDiff line change
@@ -732,10 +732,10 @@
732732
"name": "stdout",
733733
"output_type": "stream",
734734
"text": [
735-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_layer1[32] = {\n",
735+
"HOST_DEVICE_CONSTANT const float bias_layer1[32] = {\n",
736736
"-1.3837075f, -0.0653152f, -0.7900129f, 0.0714758f, -1.1574365f, -1.4634879f, -0.9317133f, -0.1455518f, -0.0459635f, -0.2055620f, 0.0586231f, -0.8943899f, -0.1009487f, 0.0166031f, -0.5451909f, -0.1384538f, 1.2664700f, -1.8996916f, -0.0025585f, -0.1647783f, -1.9019107f, 0.0707104f, -0.2373025f, 0.0357050f, -0.0048417f, 2.3127339f, -0.0508943f, -0.1116435f, -0.1610904f, -1.6463890f, -1.0739423f, -0.0962902f };\n",
737737
"\n",
738-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_layer1[23][32] = {\n",
738+
"HOST_DEVICE_CONSTANT const float wgtT_layer1[23][32] = {\n",
739739
"{ -0.1881404f, -0.0534256f, 1.6563641f, 0.0401664f, 2.8318353f, 1.5049738f, 1.4111555f, -0.2339872f, 0.0431970f, 0.1220361f, -0.0450153f, -1.6025578f, 0.0394025f, -0.3051167f, 1.9442217f, 0.1599094f, 0.1376955f, 2.4181051f, -0.0226484f, -0.1801709f, -0.4861264f, -0.0268545f, 0.5463807f, 0.2420150f, -0.1238829f, 0.2916382f, 0.1507791f, 0.7952659f, 0.2736979f, 3.2790639f, 1.2062043f, -0.0884467f },\n",
740740
"{ -0.0469924f, 0.2013927f, 0.0307775f, -0.1241788f, -0.0100412f, 0.0422375f, 0.0211071f, -0.0359304f, 0.0451861f, 0.0291862f, -0.2094866f, -0.0013007f, 0.1191471f, 0.0750159f, 0.0184378f, 0.0419437f, -0.0207304f, -0.0444109f, 0.0013400f, -0.0699210f, -0.0668742f, -0.0880825f, -0.0107244f, 0.0363424f, 0.1391699f, -0.0112885f, -0.0060098f, -0.0073863f, -0.0566143f, -0.0224207f, 0.0103718f, -0.0015193f },\n",
741741
"{ 0.4520382f, 0.1227609f, -1.3887709f, -0.0542129f, -3.2003114f, -0.8354173f, -1.3173198f, 0.3292131f, -0.1657729f, -0.1982902f, 0.1599589f, -0.0417666f, -0.1461042f, -1.3237997f, -5.3609071f, -0.0981676f, 0.2922535f, -1.8692241f, -0.0345302f, 0.1810613f, 0.4473544f, -0.0159401f, -0.7293931f, -1.4816793f, -0.1431545f, -0.0955672f, -0.2370718f, -0.7204540f, 0.8451244f, -3.4310548f, -1.3518151f, 0.1551731f },\n",
@@ -761,10 +761,10 @@
761761
"{ 0.0340557f, -0.1659652f, -0.0042457f, 0.0010229f, -2.1550148f, -0.4728722f, -1.3667214f, 0.2625635f, -0.0302200f, -0.0322885f, 0.0227866f, 0.6977839f, 0.0050141f, -1.6183628f, 0.0869662f, -0.0775411f, 0.4754244f, 0.4596581f, 2.1509945f, -0.0313832f, 0.0336208f, -0.1547154f, -0.6017126f, 0.0369996f, -0.1102583f, -0.5788267f, 0.0017006f, 2.6352038f, -1.7847317f, 1.7510574f, 2.1478791f, -0.2251654f },\n",
762762
"};\n",
763763
"\n",
764-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_layer2[32] = {\n",
764+
"HOST_DEVICE_CONSTANT const float bias_layer2[32] = {\n",
765765
"-0.2689391f, 1.5461178f, -0.2424639f, 0.4424149f, -0.0411816f, -4.1070848f, 1.4709516f, -0.2439820f, -0.1750926f, 2.8802166f, -0.1573734f, -1.3724055f, 0.3671952f, 1.8267332f, 1.5655776f, -0.7323843f, 1.6318209f, 2.2198663f, -1.5951139f, -0.0870247f, 0.2806863f, -0.2407108f, 0.1310665f, -0.5246177f, 0.1914421f, -0.3386542f, -0.6310596f, 3.2995102f, 0.7519229f, -0.1565450f, -0.1496341f, 1.0073272f };\n",
766766
"\n",
767-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_layer2[32][32] = {\n",
767+
"HOST_DEVICE_CONSTANT const float wgtT_layer2[32][32] = {\n",
768768
"{ -0.1731049f, 1.7775618f, -0.2532010f, -0.2902778f, -0.1392802f, 4.2428946f, -0.1866968f, -0.1800365f, -0.0634398f, 0.0763313f, 0.0472901f, -0.8030146f, 0.3161853f, -1.0713238f, -4.6514492f, -0.3908085f, 1.1607268f, 0.8834935f, -0.1194544f, -0.0785166f, 0.4967587f, -0.0558136f, -0.9601135f, -0.1001592f, 3.4427991f, -0.2144053f, -0.3632556f, 0.0117088f, 0.1742481f, -0.2540179f, -0.1705156f, -0.2627344f },\n",
769769
"{ -0.1478276f, -0.1659575f, 0.1602777f, -0.0758106f, 0.1067696f, -0.0247068f, -0.1123443f, -0.1724832f, -0.0013103f, -0.0685904f, 0.1537329f, 0.1042632f, -0.0360880f, -0.0679077f, 0.0672719f, 0.1597116f, -0.0150259f, 0.0367102f, -0.0545881f, -0.0693004f, -0.1008447f, -0.0672846f, -0.1395939f, -0.0324785f, -0.1051702f, -0.0530534f, -0.1019061f, -0.0921245f, 0.1195077f, 0.0453448f, 0.0257045f, -0.0622537f },\n",
770770
"{ -0.0363173f, -0.1990481f, -0.0452148f, 0.4074381f, -0.0731660f, -0.0823270f, 0.3154473f, -0.1909118f, -0.0165690f, 0.1325824f, -0.0760181f, 0.7768906f, -0.2702211f, -0.6023573f, 1.5904741f, 0.2384946f, 0.7610655f, -2.8705251f, 0.5754877f, -0.1587478f, -0.5708794f, -0.3421216f, 0.5023443f, 1.2806857f, 0.2158970f, -0.1364033f, -0.3398291f, 0.9066412f, -1.2935438f, 0.0273695f, -0.1850613f, -0.9301611f },\n",
@@ -799,10 +799,10 @@
799799
"{ -0.0246332f, 0.1165779f, 0.0255498f, -0.0601489f, 0.1545041f, -0.0977981f, 0.1242626f, -0.1533627f, -0.1294386f, -0.0231293f, -0.1460808f, 0.1763088f, 0.0953614f, -0.0716483f, -0.1003436f, 0.0804519f, 0.1373295f, -0.0686773f, 0.1198382f, 0.1519430f, 0.1640775f, -0.1675753f, 0.0790529f, -0.1521838f, 0.0378523f, 0.1039687f, -0.0701027f, 0.0509319f, 0.1355647f, 0.0978021f, 0.0391430f, 0.0241266f },\n",
800800
"};\n",
801801
"\n",
802-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_output_layer[1] = {\n",
802+
"HOST_DEVICE_CONSTANT const float bias_output_layer[1] = {\n",
803803
"-0.7420582f };\n",
804804
"\n",
805-
"ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_output_layer[32][1] = {\n",
805+
"HOST_DEVICE_CONSTANT const float wgtT_output_layer[32][1] = {\n",
806806
"{ 0.0381968f },\n",
807807
"{ 1.0667214f },\n",
808808
"{ 0.0505496f },\n",
@@ -843,12 +843,12 @@
843843
"source": [
844844
"def print_formatted_weights_biases(weights, biases, layer_name):\n",
845845
" # Print biases\n",
846-
" print(f\"ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_{layer_name}[{len(biases)}] = {{\")\n",
846+
" print(f\"HOST_DEVICE_CONSTANT const float bias_{layer_name}[{len(biases)}] = {{\")\n",
847847
" print(\", \".join(f\"{b:.7f}f\" for b in biases) + \" };\")\n",
848848
" print()\n",
849849
"\n",
850850
" # Print weights\n",
851-
" print(f\"ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_{layer_name}[{len(weights[0])}][{len(weights)}] = {{\")\n",
851+
" print(f\"HOST_DEVICE_CONSTANT const float wgtT_{layer_name}[{len(weights[0])}][{len(weights)}] = {{\")\n",
852852
" for row in weights.T:\n",
853853
" formatted_row = \", \".join(f\"{w:.7f}f\" for w in row)\n",
854854
" print(f\"{{ {formatted_row} }},\")\n",

0 commit comments

Comments
 (0)