6
6
* Mozilla Public License Version 2.0
7
7
*/
8
8
9
- // Alpaka include(s).
10
- #include < alpaka/alpaka.hpp>
11
- #include < alpaka/example/ExampleDefaultAcc.hpp>
9
+ // Project include(s).
10
+ #include " traccc/alpaka/utils/vecmem_objects.hpp"
11
+
12
+ // VecMem include(s).
12
13
#include < vecmem/containers/data/vector_buffer.hpp>
13
14
#include < vecmem/containers/device_vector.hpp>
14
15
#include < vecmem/containers/vector.hpp>
15
- #include < vecmem/memory/host_memory_resource.hpp>
16
- #include < vecmem/utils/copy.hpp>
17
16
18
- // VecMem include(s).
19
- #ifdef ALPAKA_ACC_GPU_CUDA_ENABLED
20
- #include < vecmem/memory/cuda/device_memory_resource.hpp>
21
- #include < vecmem/memory/cuda/host_memory_resource.hpp>
22
- #include < vecmem/utils/cuda/copy.hpp>
23
- #elif defined(ALPAKA_ACC_GPU_HIP_ENABLED)
24
- #include < vecmem/memory/hip/device_memory_resource.hpp>
25
- #include < vecmem/memory/hip/host_memory_resource.hpp>
26
- #include < vecmem/utils/hip/copy.hpp>
27
- #elif defined(ALPAKA_ACC_SYCL_ENABLED)
28
- #include < vecmem/memory/sycl/device_memory_resource.hpp>
29
- #include < vecmem/memory/sycl/host_memory_resource.hpp>
30
- #include < vecmem/utils/sycl/copy.hpp>
31
- #include < vecmem/utils/sycl/queue_wrapper.hpp>
32
- #endif
33
-
34
- #include < vecmem/memory/memory_resource.hpp>
35
- #include < vecmem/utils/copy.hpp>
17
+ // Alpaka include(s).
18
+ #include < alpaka/alpaka.hpp>
19
+ #include < alpaka/example/ExampleDefaultAcc.hpp>
36
20
37
21
// GoogleTest include(s).
38
22
#include < gtest/gtest.h>
39
23
24
+ // Standard include(s).
40
25
#include < cstdint>
41
26
#include < iostream>
42
27
@@ -138,7 +123,7 @@ GTEST_TEST(AlpakaBasic, VecMemOp) {
138
123
auto const devAcc = getDevByIdx (platformAcc, 0u );
139
124
140
125
using Queue = Queue<Acc, Blocking>;
141
- auto queue = Queue{devAcc};
126
+ auto alpaka_queue = Queue{devAcc};
142
127
143
128
uint32_t n = 10000 ;
144
129
@@ -148,25 +133,12 @@ GTEST_TEST(AlpakaBasic, VecMemOp) {
148
133
using WorkDiv = WorkDivMembers<Dim, Idx>;
149
134
auto workDiv = WorkDiv{blocksPerGrid, threadsPerBlock, elementsPerThread};
150
135
151
- #ifdef ALPAKA_ACC_SYCL_ENABLED
152
- ::sycl::queue q;
153
- vecmem::sycl::queue_wrapper qw{&q};
154
- vecmem::sycl::copy vm_copy (qw);
155
- vecmem::sycl::host_memory_resource host_mr (qw);
156
- vecmem::sycl::device_memory_resource device_mr (qw);
157
- #elif defined(ALPAKA_ACC_GPU_CUDA_ENABLED)
158
- vecmem::cuda::copy vm_copy;
159
- vecmem::cuda::host_memory_resource host_mr;
160
- vecmem::cuda::device_memory_resource device_mr;
161
- #elif defined(ALPAKA_ACC_GPU_HIP_ENABLED)
162
- vecmem::hip::copy vm_copy;
163
- vecmem::hip::host_memory_resource host_mr;
164
- vecmem::hip::device_memory_resource device_mr;
165
- #else
166
- vecmem::copy vm_copy;
167
- vecmem::host_memory_resource host_mr;
168
- vecmem::host_memory_resource device_mr;
169
- #endif
136
+ traccc::alpaka::queue traccc_queue (&alpaka_queue);
137
+ traccc::alpaka::vecmem_objects vo (traccc_queue);
138
+
139
+ vecmem::memory_resource& host_mr = vo.host_mr ();
140
+ vecmem::memory_resource& device_mr = vo.device_mr ();
141
+ vecmem::copy& vm_copy = vo.copy ();
170
142
171
143
vecmem::vector<float > host_vector{n, &host_mr};
172
144
@@ -178,12 +150,9 @@ GTEST_TEST(AlpakaBasic, VecMemOp) {
178
150
std::cout << " Using alpaka accelerator: " << alpaka::getAccName<Acc>()
179
151
<< std::endl;
180
152
181
- // Create a device for host for memory allocation, using the first CPU
182
- // available
183
- auto const platformDevCpu = alpaka::Platform<DevCpu>{};
184
- auto devHost = getDevByIdx (platformDevCpu, 0u );
185
-
186
- alpaka::exec<Acc>(queue, workDiv, VecMemOpKernel{}, data_dev_vec_buf);
153
+ alpaka::exec<Acc>(alpaka_queue, workDiv, VecMemOpKernel{},
154
+ data_dev_vec_buf);
155
+ alpaka::wait (alpaka_queue);
187
156
188
157
vm_copy (device_buffer, host_buffer, vecmem::copy::type::device_to_host)
189
158
->wait ();
0 commit comments