Skip to content

Commit f2a7e07

Browse files
committed
added bytes required and number of elements
1 parent 292bbe6 commit f2a7e07

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

sycl/test-e2e/VirtualMem/basic_access_from_kernel_virtual_mem.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,33 +16,35 @@ int main() {
1616
sycl::queue Q;
1717
sycl::context Context = Q.get_context();
1818
int Failed = 0;
19-
20-
size_t UsedGranularityInBytes = syclext::get_mem_granularity(
19+
constexpr size_t NumberOfElements = 1000;
20+
size_t BytesRequired = NumberOfElements*sizeof(int);
21+
22+
size_t CtxGranularity = syclext::get_mem_granularity(
2123
Context, syclext::granularity_mode::recommended);
2224

25+
size_t AlignedByteSize = ((BytesRequired + CtxGranularity - 1) / CtxGranularity) * CtxGranularity;
26+
2327
syclext::physical_mem NewPhysicalMem{Q.get_device(), Context,
24-
UsedGranularityInBytes};
28+
AlignedByteSize};
2529
uintptr_t VirtualMemoryPtr =
26-
syclext::reserve_virtual_mem(0, UsedGranularityInBytes, Context);
30+
syclext::reserve_virtual_mem(0, AlignedByteSize, Context);
2731

2832
void *MappedPtr =
29-
NewPhysicalMem.map(VirtualMemoryPtr, UsedGranularityInBytes,
33+
NewPhysicalMem.map(VirtualMemoryPtr, AlignedByteSize,
3034
syclext::address_access_mode::read_write);
3135

3236
int *DataPtr = reinterpret_cast<int *>(MappedPtr);
3337

34-
sycl::range NumItems{UsedGranularityInBytes / sizeof(int)};
35-
36-
std::vector<int> ResultHostData(NumItems.size());
38+
std::vector<int> ResultHostData(NumberOfElements);
3739

3840
constexpr int ExpectedValueAfterFill = 1;
3941

40-
Q.fill(DataPtr, ExpectedValueAfterFill, NumItems.size()).wait_and_throw();
42+
Q.fill(DataPtr, ExpectedValueAfterFill, NumberOfElements).wait_and_throw();
4143
{
4244
sycl::buffer<int> CheckBuffer(ResultHostData);
4345
Q.submit([&](sycl::handler &Handle) {
4446
sycl::accessor A(CheckBuffer, Handle, sycl::write_only);
45-
Handle.parallel_for(NumItems,
47+
Handle.parallel_for(NumberOfElements,
4648
[=](sycl::id<1> Idx) { A[Idx] = DataPtr[Idx]; });
4749
});
4850
}
@@ -56,24 +58,24 @@ int main() {
5658
}
5759
}
5860

59-
Q.parallel_for(NumItems, [=](sycl::id<1> Idx) {
61+
Q.parallel_for(NumberOfElements, [=](sycl::id<1> Idx) {
6062
DataPtr[Idx] = Idx;
6163
}).wait_and_throw();
6264

63-
syclext::set_access_mode(DataPtr, UsedGranularityInBytes,
65+
syclext::set_access_mode(DataPtr, AlignedByteSize,
6466
syclext::address_access_mode::read, Context);
6567

6668
{
6769
sycl::buffer<int> ResultBuffer(ResultHostData);
6870

6971
Q.submit([&](sycl::handler &Handle) {
7072
sycl::accessor A(ResultBuffer, Handle, sycl::write_only);
71-
Handle.parallel_for(NumItems,
73+
Handle.parallel_for(NumberOfElements,
7274
[=](sycl::id<1> Idx) { A[Idx] = DataPtr[Idx]; });
7375
});
7476
}
7577

76-
for (size_t i = 0; i < NumItems.size(); i++) {
78+
for (size_t i = 0; i < NumberOfElements; i++) {
7779
const int ExpectedValue = static_cast<int>(i);
7880
if (ResultHostData[i] != ExpectedValue) {
7981
std::cout << "Comparison failed at index " << i << ": "
@@ -82,8 +84,8 @@ int main() {
8284
}
8385
}
8486

85-
syclext::unmap(MappedPtr, UsedGranularityInBytes, Context);
86-
syclext::free_virtual_mem(VirtualMemoryPtr, UsedGranularityInBytes, Context);
87+
syclext::unmap(MappedPtr, AlignedByteSize, Context);
88+
syclext::free_virtual_mem(VirtualMemoryPtr, AlignedByteSize, Context);
8789

8890
return Failed;
8991
}

0 commit comments

Comments
 (0)