-
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
Add support for SimSYCL as a SYCL implementation #871
base: main
Are you sure you want to change the base?
Conversation
if (NOT ${SYCL_IMPLEMENTATION} IN_LIST KNOWN_SYCL_IMPLEMENTATIONS) | ||
message(FATAL_ERROR | ||
"The SYCL CTS requires specifying a SYCL implementation with " | ||
"-DSYCL_IMPLEMENTATION=[Intel_SYCL,DPCPP;hipSYCL]") | ||
"-DSYCL_IMPLEMENTATION=[Intel_SYCL,DPCPP;hipSYCL;SimSYCL]") |
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 wonder if we should just put KNOWN_SYCL_IMPLEMENTATIONS
directly into the message instead of modifying it every time we change list of known implementations?
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.
Perhaps CTS_GRADE_SYCL_IMPLEMENTATION
or something better, because we know quite many other implementations. :-)
#if SYCL_CTS_COMPILING_WITH_SIMSYCL | ||
SKIP("SimSYCL does not implement asynchronous execution."); | ||
#endif |
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 that from the conformance point of view the better to use DISABLED_FOR_TEST_CASE
macro so the test appears as failed.
if(SYCL_IMPLEMENTATION STREQUAL SimSYCL) | ||
message(WARNING "SimSYCL does not provide true concurrency between host and device, disabling USM atomic tests") | ||
list(FILTER test_cases_list EXCLUDE REGEX usm_atomic_access_.*\\.cpp$) | ||
endif() |
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.
Piggybacking off of @AlexeySachkov's comment, these should preferably also be disabled using DISABLE_FOR_TEST_CASE(SimSYCL, ...
!
Please also document SimSYCL in |
add_library(${object_lib_name} OBJECT ${test_cases_list}) | ||
add_executable(${exe_name} $<TARGET_OBJECTS:${object_lib_name}>) | ||
|
||
# hipSYCL needs the macro to be called on both the object library (to |
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.
# hipSYCL needs the macro to be called on both the object library (to | |
# SimSYCL needs the macro to be called on both the object library (to |
Copy pasta - although I think this isn't even true?
Ideally we should also include SimSYCL in our CI setup. I think it should be relatively straightforward to add, analogously to hipSYCL/AdaptiveCpp. |
@@ -0,0 +1,45 @@ | |||
add_library(SYCL::SYCL INTERFACE IMPORTED GLOBAL) |
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.
Why this file is named AdaptSimSYCL
and not SimSYCL
?
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.
We've had Find*
and Adapt*
files for a while now, it has nothing to do with AdaptiveCpp - the corresponding file for AdaptiveCpp in #874 is called AdaptAdaptiveCpp
;-).
How do we move on this? |
This adds SimSYCL as a supported SYCL implementation, complete with CMake integration and an exclude-list for the "fast" conformance build.
This should be merged after #870 #872 and #873, because the CTS it will not actually compile for many of the non-excluded cases unless those bugs are addressed.