Skip to content

[SYCL] ext kernel compiler #11517

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

Merged
merged 41 commits into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
543848c
who doesn't love enums?
cperkinsintel Sep 26, 2023
0164468
create_kernel_bundle_from_source()
cperkinsintel Sep 26, 2023
fc8b897
is_source_kernel_bundle_supported plus interim
cperkinsintel Sep 27, 2023
0759ce9
OCL SpirV gen. Need templating, wrapping for language dispatch, and …
cperkinsintel Sep 27, 2023
ca4913b
interim. UR sources have been moved.
cperkinsintel Sep 27, 2023
26760b2
attempt to leverage createSpirProgram(). Not working
cperkinsintel Sep 28, 2023
dc9e934
interim checkpoint, needs cleaning
cperkinsintel Sep 29, 2023
c536da2
except for the fact that the kernels are crashing, this is great!
cperkinsintel Sep 29, 2023
deb2663
end to end kernel compilation and execution is working. Need to brin…
cperkinsintel Sep 30, 2023
6237594
feature test and property list
cperkinsintel Oct 9, 2023
0356b9d
properties problemties
cperkinsintel Oct 10, 2023
f27fcab
property support
cperkinsintel Oct 10, 2023
27005a6
tests, constraints mid-work checkpoint
cperkinsintel Oct 11, 2023
514d0c1
constraints and test for such
cperkinsintel Oct 11, 2023
e1cd7d9
linux ABI and supported check
cperkinsintel Oct 12, 2023
c6b34ef
resolved merge conflicts
cperkinsintel Oct 12, 2023
4e6d986
clang-format
cperkinsintel Oct 12, 2023
ba85eca
clang-format?
cperkinsintel Oct 12, 2023
e15820b
clang-format humiliation
cperkinsintel Oct 12, 2023
8f44438
removed unneeded export b.c. win
cperkinsintel Oct 12, 2023
6a4b127
deprecation of online_compiler
cperkinsintel Oct 12, 2023
c4bd305
windows symbols
cperkinsintel Oct 12, 2023
45ef189
overlooked feature test
cperkinsintel Oct 13, 2023
6dd6664
discussion lead to small change in '_supported' functionality.
cperkinsintel Oct 13, 2023
03ced5e
small spec changes
cperkinsintel Nov 2, 2023
9a7e004
some reviewer feedback
cperkinsintel Nov 2, 2023
5ae432c
resolve merge conflicts
cperkinsintel Nov 3, 2023
ddc021f
interim
cperkinsintel Nov 3, 2023
4ca2414
checkpoint - having to switch
cperkinsintel Nov 3, 2023
7fb648e
interim
cperkinsintel Nov 6, 2023
a6964d5
all_props_keys_of added
cperkinsintel Nov 6, 2023
6faecb3
new test for OCL capabilities
cperkinsintel Nov 6, 2023
a585ab4
sign
cperkinsintel Nov 6, 2023
4901c84
constraint updated
cperkinsintel Nov 7, 2023
d0c4605
reviewer feedback
cperkinsintel Nov 8, 2023
1ebedbf
test requirement fix
cperkinsintel Nov 8, 2023
8de6bdf
cl types
cperkinsintel Nov 10, 2023
4ba2f3f
resolve merge conflicts
cperkinsintel Nov 10, 2023
010479a
reviewer feedback - ensure test is also run by L0
cperkinsintel Nov 13, 2023
988305f
Merge branch 'sycl' into cperkins-ext_kernel_compiler
cperkinsintel Nov 13, 2023
ee77b72
moved specs to experimental and updated their status
cperkinsintel Nov 13, 2023
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
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,12 @@ This extension also depends on the following other SYCL extensions:

== Status

This is a proposed extension specification, intended to gather community
feedback.
Interfaces defined in this specification may not be implemented yet or may be
in a preliminary state.
The specification itself may also change in incompatible ways before it is
finalized.
*Shipping software products should not rely on APIs defined in this
specification.*
This is an experimental extension specification, intended to provide early
access to features and gather community feedback. Interfaces defined in
this specification are implemented in DPC++, but they are not finalized
and may change incompatibly in future versions of DPC++ without prior notice.
*Shipping software products should not rely on APIs defined in
this specification.*


== Overview
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,12 @@ This extension also depends on the following other SYCL extensions:

== Status

This is a proposed extension specification, intended to gather community
feedback.
Interfaces defined in this specification may not be implemented yet or may be
in a preliminary state.
The specification itself may also change in incompatible ways before it is
finalized.
*Shipping software products should not rely on APIs defined in this
specification.*
This is an experimental extension specification, intended to provide early
access to features and gather community feedback. Interfaces defined in
this specification are implemented in DPC++, but they are not finalized
and may change incompatibly in future versions of DPC++ without prior notice.
*Shipping software products should not rely on APIs defined in
this specification.*


== Overview
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ enum class source_language { opencl_c = 0, cm = 1 };

/// Represents an online compiler for the language given as template
/// parameter.
template <source_language Lang> class online_compiler {
template <source_language Lang>
class __SYCL2020_DEPRECATED(
"experimental online_compiler is being deprecated. See "
"'sycl_ext_oneapi_kernel_compiler.asciidoc' instead for new kernel "
"compiler extension to kernel_bundle implementation.") online_compiler {
public:
/// Constructs online compiler which can target any device and produces
/// given compiled code format. Produces 64-bit device code.
Expand Down
24 changes: 24 additions & 0 deletions sycl/include/sycl/ext/oneapi/properties/properties.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,30 @@ struct ValueOrDefault<
}
};

template <typename SyclT, typename PropertiesT> struct all_props_are_keys_of;

template <typename SyclT, typename PropertiesT>
struct all_props_are_keys_of : std::true_type {};

template <typename SyclT>
struct all_props_are_keys_of<
SyclT, ext::oneapi::experimental::detail::empty_properties_t>
: std::true_type {};

template <typename SyclT, typename PropT>
struct all_props_are_keys_of<
SyclT, ext::oneapi::experimental::properties<std::tuple<PropT>>>
: std::bool_constant<
ext::oneapi::experimental::is_property_key_of<PropT, SyclT>::value> {
};

template <typename SyclT, typename PropT, typename... PropTs>
struct all_props_are_keys_of<
SyclT, ext::oneapi::experimental::properties<std::tuple<PropT, PropTs...>>>
: std::bool_constant<
ext::oneapi::experimental::is_property_key_of<PropT, SyclT>::value &&
all_props_are_keys_of<SyclT, PropTs...>()> {};

} // namespace detail
} // namespace ext::oneapi::experimental

Expand Down
4 changes: 3 additions & 1 deletion sycl/include/sycl/ext/oneapi/properties/property.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,10 @@ enum PropKind : uint32_t {
CacheControlReadHint = 48,
CacheControlReadAssertion = 49,
CacheControlWrite = 50,
BuildOptions = 51,
BuildLog = 52,
// PropKindSize must always be the last value.
PropKindSize = 51,
PropKindSize = 53,
};

// This trait must be specialized for all properties and must have a unique
Expand Down
Loading