@@ -11,49 +11,57 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::testZVertexSoAT {
11
11
class TestFillKernel {
12
12
public:
13
13
template <typename TAcc, typename = std::enable_if_t <alpaka::isAccelerator<TAcc>>>
14
- ALPAKA_FN_ACC void operator ()(TAcc const & acc, reco::ZVertexSoAView zvertex_view) const {
14
+ ALPAKA_FN_ACC void operator ()(TAcc const & acc,
15
+ reco::ZVertexSoAView zvertex_view,
16
+ reco::ZVertexTracksSoAView ztracks_view) const {
15
17
if (cms::alpakatools::once_per_grid (acc)) {
16
18
zvertex_view.nvFinal () = 420 ;
17
19
}
18
20
19
21
for (int32_t j : cms::alpakatools::uniform_elements (acc, zvertex_view.metadata ().size ())) {
20
- zvertex_view[j].idv () = (int16_t )j;
21
22
zvertex_view[j].zv () = (float )j;
22
23
zvertex_view[j].wv () = (float )j;
23
24
zvertex_view[j].chi2 () = (float )j;
24
25
zvertex_view[j].ptv2 () = (float )j;
25
- zvertex_view[j].ndof () = (int32_t )j;
26
26
zvertex_view[j].sortInd () = (uint16_t )j;
27
27
}
28
+ for (int32_t j : cms::alpakatools::uniform_elements (acc, ztracks_view.metadata ().size ())) {
29
+ ztracks_view[j].idv () = (int16_t )j;
30
+ ztracks_view[j].ndof () = (int32_t )j;
31
+ }
28
32
}
29
33
};
30
34
31
35
class TestVerifyKernel {
32
36
public:
33
37
template <typename TAcc, typename = std::enable_if_t <alpaka::isAccelerator<TAcc>>>
34
- ALPAKA_FN_ACC void operator ()(TAcc const & acc, reco::ZVertexSoAView zvertex_view) const {
38
+ ALPAKA_FN_ACC void operator ()(TAcc const & acc,
39
+ reco::ZVertexSoAView zvertex_view,
40
+ reco::ZVertexTracksSoAView ztracks_view) const {
35
41
if (cms::alpakatools::once_per_grid (acc)) {
36
42
ALPAKA_ASSERT_ACC (zvertex_view.nvFinal () == 420 );
37
43
}
38
44
39
45
for (int32_t j : cms::alpakatools::uniform_elements (acc, zvertex_view.nvFinal ())) {
40
- ALPAKA_ASSERT_ACC (zvertex_view[j].idv () == j);
41
- ALPAKA_ASSERT_ACC (zvertex_view[j].zv () - (float )j < 0.0001 );
42
- ALPAKA_ASSERT_ACC (zvertex_view[j].wv () - (float )j < 0.0001 );
43
- ALPAKA_ASSERT_ACC (zvertex_view[j].chi2 () - (float )j < 0.0001 );
44
- ALPAKA_ASSERT_ACC (zvertex_view[j].ptv2 () - (float )j < 0.0001 );
45
- ALPAKA_ASSERT_ACC (zvertex_view[j].ndof () == j);
46
- ALPAKA_ASSERT_ACC (zvertex_view[j].sortInd () == uint32_t (j));
46
+ ALPAKA_ASSERT (zvertex_view[j].zv () - (float )j < 0.0001 );
47
+ ALPAKA_ASSERT (zvertex_view[j].wv () - (float )j < 0.0001 );
48
+ ALPAKA_ASSERT (zvertex_view[j].chi2 () - (float )j < 0.0001 );
49
+ ALPAKA_ASSERT (zvertex_view[j].ptv2 () - (float )j < 0.0001 );
50
+ ALPAKA_ASSERT (zvertex_view[j].sortInd () == uint32_t (j));
51
+ }
52
+ for (int32_t j : cms::alpakatools::uniform_elements (acc, ztracks_view.metadata ().size ())) {
53
+ ALPAKA_ASSERT (ztracks_view[j].idv () == j);
54
+ ALPAKA_ASSERT (ztracks_view[j].ndof () == j);
47
55
}
48
56
}
49
57
};
50
58
51
- void runKernels (reco::ZVertexSoAView zvertex_view, Queue& queue) {
59
+ void runKernels (reco::ZVertexSoAView zvertex_view, reco::ZVertexTracksSoAView ztracks_view, Queue& queue) {
52
60
uint32_t items = 64 ;
53
61
uint32_t groups = cms::alpakatools::divide_up_by (zvertex_view.metadata ().size (), items);
54
62
auto workDiv = cms::alpakatools::make_workdiv<Acc1D>(groups, items);
55
- alpaka::exec<Acc1D>(queue, workDiv, TestFillKernel{}, zvertex_view);
56
- alpaka::exec<Acc1D>(queue, workDiv, TestVerifyKernel{}, zvertex_view);
63
+ alpaka::exec<Acc1D>(queue, workDiv, TestFillKernel{}, zvertex_view, ztracks_view );
64
+ alpaka::exec<Acc1D>(queue, workDiv, TestVerifyKernel{}, zvertex_view, ztracks_view );
57
65
}
58
66
59
67
} // namespace ALPAKA_ACCELERATOR_NAMESPACE::testZVertexSoAT
0 commit comments