-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test for [[sycl::reqd_work_group_size]]
exception when mismatched nd_range
was given
#285
Test for [[sycl::reqd_work_group_size]]
exception when mismatched nd_range
was given
#285
Conversation
…nd_range` was given
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some concerns about disabling the test for implementations that don't support these features.
ci/computecpp.filter
Outdated
@@ -28,3 +28,4 @@ usm | |||
vector_api | |||
vector_constructors | |||
vector_swizzles | |||
optional_kernel_features |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you maybe have output from a run of ComputeCpp or is this just to play it safe and not risk breaking CI?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here output from a run of ComputeCpp before I apply filter. On line 2791 warning messages about unknown attributes, which is why I decided to put test in the filter.
But right now I also noticed other errors like no known conversion from 'cl::sycl::nd_item<1>' to 'sycl::item<1>'
on line 2814. Am I wrong with the lambda argument? Do I have to use nd_item<1>
instead of item<1>
on line 41 in kernel_features_mismatched_nd_range_exception.cpp
?
ci/hipsycl.filter
Outdated
@@ -37,3 +37,4 @@ vector_load_store | |||
vector_operators | |||
vector_swizzle_assignment | |||
vector_swizzles | |||
optional_kernel_features |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's better to maintain an alphabetical ordering, the same for other filters. Also, should we maybe name it kernel_optional_features
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorted lines in this commit: a02a67f.
We can rename it but in other PR when all tests will be implemented, because some of the tests in other PR, some of the tests in development and it will be unhandy to rename these tests now.
IMHO, I think we can keep the current name.
} | ||
|
||
const bool is_exception_expected = true; | ||
sycl::errc errc_expected = sycl::errc::nd_range; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the spec:
In order to guarantee source code portability of SYCL applications that use optional kernel features, all SYCL implementations must be able to compile device code that uses these optional features regardless of whether the implementation supports the features on any of its devices.
You've marked two implementations in the CI as not passing (adding the test to the filter), but I believe they should be able to pass the test even if they don't implement the features, otherwise they wouldn't be able to pass conformance in the current CTS design.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I understand CI doesn't run tests, it's just built it. Here you can find output from the building of tests on CI. ComputeCpp and hipsycl failed building due to some errors.
From hipsycl logs, line 1970: error: ‘errc’ is not a member of ‘sycl’
. Looks like enum with error codes is not implemented yet and attributes too (line 1966).
Similar situation for computecpp.
But maybe I was wrong when I put these two implementations in the filter because both of them give the error message: no known conversion from 'cl::sycl::nd_item<1>' to 'sycl::item<1>'
error, so it can be bug of tests itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was my mistake. I changed to nd_item
but now getting another error. Right now investigating it.
Return optional features to filter for hipsycl
I tried to fix the code for the computecpp CI but looks like this implementation has a few specific issues:
|
tests/optional_kernel_features/kernel_features_mismatched_nd_range_exception.cpp
Outdated
Show resolved
Hide resolved
tests/optional_kernel_features/kernel_features_mismatched_nd_range_exception.cpp
Outdated
Show resolved
Hide resolved
tests/optional_kernel_features/kernel_features_mismatched_nd_range_exception.cpp
Outdated
Show resolved
Hide resolved
tests/optional_kernel_features/kernel_features_mismatched_nd_range_exception.cpp
Show resolved
Hide resolved
Changed `testing_wg_size` to 1 that supports by all devices Changed `INFO` to `SECTION`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
…into optional_kernel_features/missmatched_nd_range_exception
Removed optional_kernel_features from ci filter
Removed section due to issue in CI build
This reverts commit 12d9404.
Build error on |
Actually the root cause is the error before that: |
The aforementioned bug should be fixed by #296. |
…into optional_kernel_features/missmatched_nd_range_exception
@andreyromanof, please, fix the build with computecpp. |
…into optional_kernel_features/missmatched_nd_range_exception
@ProGTX, please, check if your concerns are addressed. |
Update compile-time properties tests after spec update
This PR provides test for optional kernel features.
Test decorates kernel with attribute
[[sycl::reqd_work_group_size(N)]]
whereN
is supported size and passnd_range
instance with unsupported size toparallel_for
invocation and expect exceptionsycl::errc::nd_range
.Depend on: