1
0
mirror of https://github.com/fumiama/base16384-sycl.git synced 2026-06-10 21:24:47 +08:00

feat: add test USM implicit data movement

This commit is contained in:
源文雨
2025-11-03 16:38:07 +08:00
parent 1fb202fa89
commit ed2915e97b
5 changed files with 58 additions and 4 deletions

View File

@@ -11,23 +11,23 @@ int main() {
sycl::queue Q;
std::array<int, N> host_array;
int *device_array = sycl::malloc_device<int>(N, Q);
int* device_array = sycl::malloc_device<int>(N, Q);
for (int i = 0; i < N; i++) {
host_array[i] = N;
}
// We will learn how to simplify this example later
Q.submit([&](sycl::handler &h) {
Q.submit([&](sycl::handler& h) {
// copy hostArray to deviceArray
h.memcpy(device_array, &host_array[0], N * sizeof(int));
}).wait();
Q.submit([&](sycl::handler &h) {
Q.submit([&](sycl::handler& h) {
h.parallel_for(N, [=](sycl::id<1> i) { device_array[i]++; });
}).wait();
Q.submit([&](sycl::handler &h) {
Q.submit([&](sycl::handler& h) {
// copy deviceArray back to hostArray
h.memcpy(&host_array[0], device_array, N * sizeof(int));
}).wait();
@@ -42,5 +42,7 @@ int main() {
}
}
std::cout << "Test Passed!!!" << std::endl;
return 0;
}