Skip to content

Commit 1fd26ce

Browse files
committed
fix and added some improvements for future tests
1 parent ff09224 commit 1fd26ce

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

sycl/test-e2e/VirtualMem/basic_access_from_kernel_virtual_mem.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,22 @@
66
// RUN: %{build} -o %t.out
77
// RUN: %{run} %t.out
88

9-
#include <sycl/detail/core.hpp>
10-
#include <sycl/ext/oneapi/virtual_mem/physical_mem.hpp>
11-
#include <sycl/ext/oneapi/virtual_mem/virtual_mem.hpp>
12-
13-
namespace syclext = sycl::ext::oneapi::experimental;
9+
#include "helpers.hpp"
1410

1511
int main() {
1612
sycl::queue Q;
1713
sycl::context Context = Q.get_context();
14+
sycl::device Device = Q.get_device();
1815
int Failed = 0;
1916
constexpr size_t NumberOfElements = 1000;
2017
size_t BytesRequired = NumberOfElements * sizeof(int);
2118

22-
size_t CtxGranularity = syclext::get_mem_granularity(
23-
Context, syclext::granularity_mode::recommended);
19+
size_t UsedGranularity = GetLCMGranularity(Device,Context);
2420

2521
size_t AlignedByteSize =
26-
((BytesRequired + CtxGranularity - 1) / CtxGranularity) * CtxGranularity;
22+
((BytesRequired + UsedGranularity - 1) / UsedGranularity) * UsedGranularity;
2723

28-
syclext::physical_mem NewPhysicalMem{Q.get_device(), Context,
24+
syclext::physical_mem NewPhysicalMem{Device, Context,
2925
AlignedByteSize};
3026
uintptr_t VirtualMemoryPtr =
3127
syclext::reserve_virtual_mem(0, AlignedByteSize, Context);
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#pragma once
2+
3+
#include <sycl/detail/core.hpp>
4+
#include <sycl/ext/oneapi/virtual_mem/physical_mem.hpp>
5+
#include <sycl/ext/oneapi/virtual_mem/virtual_mem.hpp>
6+
7+
namespace syclext = sycl::ext::oneapi::experimental;
8+
9+
// Find the least common multiple of the context and device granularities. This
10+
// value can be used for aligning both physical memory allocations and for
11+
// reserving virtual memory ranges.
12+
size_t GetLCMGranularity(const sycl::device &Dev, const sycl::context &Ctx, syclext::granularity_mode Gm = syclext::granularity_mode::recommended) {
13+
size_t CtxGranularity = syclext::get_mem_granularity(Ctx, Gm);
14+
size_t DevGranularity = syclext::get_mem_granularity(Dev, Ctx, Gm);
15+
16+
size_t GCD = CtxGranularity;
17+
size_t Rem = DevGranularity % GCD;
18+
while (Rem != 0) {
19+
std::swap(GCD, Rem);
20+
Rem %= GCD;
21+
}
22+
return (DevGranularity / GCD) * CtxGranularity;
23+
}

sycl/test-e2e/VirtualMem/vector_with_virtual_mem.cpp

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,13 @@
1-
// REQUIRES: aspect-ext_oneapi_virtual_mem, usm_shared_allocations
1+
// REQUIRES: aspect-ext_oneapi_virtual_mem, aspect-usm_shared_allocations
22

33
// RUN: %{build} -o %t.out
44
// RUN: %{run} %t.out
55

6-
#include <sycl/detail/core.hpp>
76
#include <sycl/usm.hpp>
87

98
#include <sycl/ext/oneapi/experimental/device_architecture.hpp>
10-
#include <sycl/ext/oneapi/virtual_mem/physical_mem.hpp>
11-
#include <sycl/ext/oneapi/virtual_mem/virtual_mem.hpp>
12-
13-
namespace syclext = sycl::ext::oneapi::experimental;
14-
15-
// Find the least common multiple of the context and device granularities. This
16-
// value can be used for aligning both physical memory allocations and for
17-
// reserving virtual memory ranges.
18-
size_t GetLCMGranularity(const sycl::device &Dev, const sycl::context &Ctx) {
19-
size_t CtxGranularity = syclext::get_mem_granularity(MContext);
20-
size_t DevGranularity = syclext::get_mem_granularity(MDevice, MContext);
21-
22-
size_t GCD = CtxGranularity;
23-
size_t Rem = DevGranularity % GCD;
24-
while (Rem != 0) {
25-
std::swap(GCD, Rem);
26-
Rem %= GCD;
27-
}
28-
return (DevGranularity / GCD) * LCMGranularity;
29-
}
9+
10+
#include "helpers.hpp"
3011

3112
template <typename T> class VirtualVector {
3213
public:
@@ -233,4 +214,4 @@ int main() {
233214
}
234215

235216
return 0;
236-
}
217+
}

0 commit comments

Comments
 (0)