-
Notifications
You must be signed in to change notification settings - Fork 769
[SYCL] Allocate SubmissionInfo completely on stack #18314
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
[SYCL] Allocate SubmissionInfo completely on stack #18314
Conversation
Move SubmissionInfo to versioned public header and allocate it complitely on stack. Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
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.
LGTM!
Co-authored-by: Sergey Semenov <sergey.semenov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
ThreadSanitizer/check_device_global.cpp failure seems unrelated to the PR, see #18349 . |
@intel/llvm-gatekeepers the PR is ready to merge |
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 also doubt that this approach would work well for non-NFC ABI-breaking changes (e.g. adding new fields or removing old ones). Providing old versions without those new fields could be troublesome, unless all of them are actually optional.
@@ -95,6 +96,60 @@ class __SYCL_EXPORT SubmissionInfo { | |||
private: | |||
std::shared_ptr<SubmissionInfoImpl> impl = nullptr; | |||
}; | |||
#endif | |||
|
|||
namespace v1 { |
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.
This way one particular data structure claims entire sycl::detail::vN
namespace, so that we can't use the same approach for other APIs (that's the same reason why I think our sycl::_v1
turned out to be rather useless). IMO, it would be better to have detail::submission_info::_v1::SubmissionInfo
or something like that. Maybe make submission_info
inline itself.
Move SubmissionInfo to versioned public header and allocate it completely on stack.