Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Adjusts test ranges in preparation for a change in the compiler implementation #161

Merged
merged 6 commits into from
Mar 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions SYCL/Basic/parallel_for_disable_range_roundup.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -DSYCL_DISABLE_PARALLEL_FOR_RANGE_ROUNDING %s -o %t.out
// RUN: %GPU_RUN_PLACEHOLDER SYCL_PARALLEL_FOR_RANGE_ROUNDING_TRACE=1 %t.out %GPU_CHECK_PLACEHOLDER --check-prefix CHECK-DISABLED

// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -sycl-std=2017 %s -o %t.out
// RUN: %GPU_RUN_PLACEHOLDER SYCL_PARALLEL_FOR_RANGE_ROUNDING_TRACE=1 %t.out %GPU_CHECK_PLACEHOLDER --check-prefix CHECK-DISABLED

// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -sycl-std=2020 %s -o %t.out
// RUN: %GPU_RUN_PLACEHOLDER SYCL_PARALLEL_FOR_RANGE_ROUNDING_TRACE=1 %t.out %GPU_CHECK_PLACEHOLDER --check-prefix CHECK-ENABLED

#include <CL/sycl.hpp>

using namespace sycl;

range<1> Range1 = {0};

void check(const char *msg, size_t v, size_t ref) {
std::cout << msg << v << std::endl;
assert(v == ref);
}

int try_rounding_off(size_t size) {
range<1> Size{size};
int Counter = 0;
{
buffer<range<1>, 1> BufRange(&Range1, 1);
buffer<int, 1> BufCounter(&Counter, 1);
queue myQueue;

std::cout << "Run parallel_for" << std::endl;
myQueue.submit([&](handler &cgh) {
auto AccRange = BufRange.get_access<access::mode::read_write>(cgh);
auto AccCounter = BufCounter.get_access<access::mode::atomic>(cgh);
cgh.parallel_for<class PF_init_item1>(Size, [=](item<1> ITEM) {
AccCounter[0].fetch_add(1);
AccRange[0] = ITEM.get_range(0);
});
});
myQueue.wait();
}
check("Size seen by user = ", Range1.get(0), size);
check("Counter = ", Counter, size);
return 0;
}

int main() {
int x;

x = 1500;
try_rounding_off(x);

return 0;
}

// CHECK-DISABLED: Run parallel_for
// CHECK-DISABLED-NOT: parallel_for range adjusted from 1500
// CHECK-DISABLED: Size seen by user = 1500
// CHECK-DISABLED-NEXT: Counter = 1500

// CHECK-ENABLED: Run parallel_for
// CHECK-ENABLED-NEXT: parallel_for range adjusted from 1500
// CHECK-ENABLED-NEXT: Size seen by user = 1500
// CHECK-ENABLED-NEXT: Counter = 1500
56 changes: 28 additions & 28 deletions SYCL/Basic/parallel_for_range_roundup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ int try_item1(size_t size) {
}

void try_item2(size_t size) {
range<2> Size{size, size};
range<2> Size{size, 10};
int Counter = 0;
{
buffer<range<2>, 1> BufRange(&Range2, 1);
Expand All @@ -56,11 +56,11 @@ void try_item2(size_t size) {
myQueue.wait();
}
check("Size seen by user = ", Range2.get(0), size);
check("Counter = ", Counter, size * size);
check("Counter = ", Counter, size * 10);
}

void try_item3(size_t size) {
range<3> Size{size, size, size};
range<3> Size{size, 10, 10};
int Counter = 0;
{
buffer<range<3>, 1> BufRange(&Range3, 1);
Expand All @@ -78,7 +78,7 @@ void try_item3(size_t size) {
myQueue.wait();
}
check("Size seen by user = ", Range3.get(0), size);
check("Counter = ", Counter, size * size * size);
check("Counter = ", Counter, size * 10 * 10);
}

void try_id1(size_t size) {
Expand All @@ -103,7 +103,7 @@ void try_id1(size_t size) {
}

void try_id2(size_t size) {
range<2> Size{size, size};
range<2> Size{size, 10};
int Counter = 0;
{
buffer<range<2>, 1> BufRange(&Range2, 1);
Expand All @@ -120,11 +120,11 @@ void try_id2(size_t size) {
});
myQueue.wait();
}
check("Counter = ", Counter, size * size);
check("Counter = ", Counter, size * 10);
}

void try_id3(size_t size) {
range<3> Size{size, size, size};
range<3> Size{size, 10, 10};
int Counter = 0;
{
buffer<range<3>, 1> BufRange(&Range3, 1);
Expand All @@ -141,13 +141,13 @@ void try_id3(size_t size) {
});
myQueue.wait();
}
check("Counter = ", Counter, size * size * size);
check("Counter = ", Counter, size * 10 * 10);
}

int main() {
int x;

x = 10;
x = 1500;
try_item1(x);
try_item2(x);
try_item3(x);
Expand All @@ -166,27 +166,27 @@ int main() {
return 0;
}

// CHECK: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Size seen by user = 10
// CHECK-NEXT: Counter = 10
// CHECK-NEXT: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Size seen by user = 10
// CHECK-NEXT: Counter = 100
// CHECK-NEXT: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Size seen by user = 10
// CHECK-NEXT: Counter = 1000
// CHECK-NEXT: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Counter = 10
// CHECK-NEXT: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Counter = 100
// CHECK-NEXT: parallel_for range adjusted from 10 to 32
// CHECK-NEXT: Counter = 1000
// CHECK: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Size seen by user = 1500
// CHECK-NEXT: Counter = 1500
// CHECK-NEXT: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Size seen by user = 1500
// CHECK-NEXT: Counter = 15000
// CHECK-NEXT: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Size seen by user = 1500
// CHECK-NEXT: Counter = 150000
// CHECK-NEXT: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Counter = 1500
// CHECK-NEXT: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Counter = 15000
// CHECK-NEXT: parallel_for range adjusted from 1500 to 1504
// CHECK-NEXT: Counter = 150000
// CHECK-NEXT: Size seen by user = 256
// CHECK-NEXT: Counter = 256
// CHECK-NEXT: Size seen by user = 256
// CHECK-NEXT: Counter = 65536
// CHECK-NEXT: Counter = 2560
// CHECK-NEXT: Size seen by user = 256
// CHECK-NEXT: Counter = 16777216
// CHECK-NEXT: Counter = 25600
// CHECK-NEXT: Counter = 256
// CHECK-NEXT: Counter = 65536
// CHECK-NEXT: Counter = 16777216
// CHECK-NEXT: Counter = 2560
// CHECK-NEXT: Counter = 25600