Skip to content

Conversation

uditagarwal97
Copy link
Contributor

No description provided.

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for kernel launch properties in SYCL's handler-less kernel submission path. Previously, properties were only supported through the handler-based path, requiring submission via a command group. This change enables properties to be used directly with queue kernel submission methods.

  • Implements property parsing and validation in the no-handler kernel submission path
  • Adds kernel launch property structure to pass properties across ABI boundaries
  • Updates direct kernel submission APIs to accept and process properties

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
sycl/test/virtual-functions/properties-negative.cpp Updates expected error location from handler.hpp to kernel_launch_helper.hpp
sycl/test/include_deps/sycl_detail_core.hpp.cpp Reorders include dependencies for cluster and sync properties
sycl/test/extensions/properties/non_esimd_kernel_fp_control.cpp Updates expected error location from handler.hpp to kernel_launch_helper.hpp
sycl/source/queue.cpp Adds property parameter to kernel submission template instantiations
sycl/source/handler.cpp Refactors property processing and adds ifdef guards for ABI compatibility
sycl/source/detail/queue_impl.hpp Adds property parameter to direct kernel submission methods
sycl/source/detail/queue_impl.cpp Implements property validation and setting in direct submission path
sycl/source/detail/kernel_data.hpp Adds property validation and setting methods to KernelData class
sycl/include/sycl/queue.hpp Updates submit_kernel_direct to support properties from kernel get() method or explicit parameters
sycl/include/sycl/khr/free_function_commands.hpp Simplifies launch_grouped to use new property-aware submission path
sycl/include/sycl/handler.hpp Delegates property processing to KernelLaunchPropertyWrapper and adds ABI guards
sycl/include/sycl/ext/oneapi/experimental/enqueue_functions.hpp Adds property support to nd_launch with launch_config
sycl/include/sycl/detail/kernel_launch_helper.hpp Implements comprehensive property parsing, validation, and storage infrastructure

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Comment on lines 410 to 414
/// Process kernel properties.
/// Note: it is important that this function *does not* depend on kernel
/// name or kernel type, because then it will be instantiated for every
/// kernel, even though body of those instantiated functions could be almost
/// the same, thus unnecessary increasing compilation time.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, shouldn't it be

template <...>
inline constexpr KernelLaunchPropertiesT WhateverName = <...>;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's copy-paste code. We anyway don't depend on KernelName in this function, this comment is just a warning about not changing this function to take KernelName as template param.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think your changes are extensive enough in the exact same area that I'd like to see this changed as part of your patch [series].


detail::submit_kernel_direct<KernelName>(std::move(Q),
ConfigAccess.getRange(), KernelObj,
Config.getProperties());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is note in https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_oneapi_enqueue_functions.asciidoc#launch-configuration which says, that only kernel launch properties can be used here. I wonder if this affect the properties parsing logic in some way?

@uditagarwal97 uditagarwal97 changed the title [SYCL] Add support for kernel launch properties in no-handler path [SYCL] Add support for kernel properties in no-handler path Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants