Skip to content

Commit 62de22c

Browse files
committed
Merge branch 'sycl' into mark-split-exceptions
2 parents e748770 + b46b900 commit 62de22c

28 files changed

+375
-241
lines changed

.github/workflows/scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@ jobs:
5757

5858
# Upload the results to GitHub's code scanning dashboard.
5959
- name: "Upload to code-scanning"
60-
uses: github/codeql-action/upload-sarif@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10
60+
uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0
6161
with:
6262
sarif_file: results.sarif

.github/workflows/sycl-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
199199
fi
200200
- name: Upload binaries
201-
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191
201+
uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8
202202
with:
203203
files: |
204204
sycl_linux.tar.gz

devops/cts_exclude_filter_L0_GPU

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,3 @@ kernel_bundle
33
marray
44
# fix: https://github.com/KhronosGroup/SYCL-CTS/pull/964
55
accessor_legacy
6-
# CMPLRLLVM-62822
7-
multi_ptr

devops/cts_exclude_filter_OCL_CPU

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,3 @@ math_builtin_api
77
hierarchical
88
# fix: https://github.com/KhronosGroup/SYCL-CTS/pull/964
99
accessor_legacy
10-
# CMPLRLLVM-62822
11-
multi_ptr

llvm/docs/requirements-hashed.txt

Lines changed: 171 additions & 155 deletions
Large diffs are not rendered by default.

llvm/docs/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
sphinx==8.0.2
1+
sphinx==8.1.3
22
docutils==0.21.2
33
sphinx-markdown-tables==0.0.17
44
recommonmark==0.7.1
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# commit 3d58884b4939d9bd095c917f8dd823ac8486684c
2-
# Merge: 6ade245e b0bd146a
1+
# commit fa8cc8ec16c1a2cf0926cc64026edc6a254ff0c2
2+
# Merge: 3d58884b 1984ceb1
33
# Author: aarongreig <[email protected]>
4-
# Date: Thu Oct 31 14:05:55 2024 +0000
5-
# Merge pull request #2228 from nrspruit/copy_engine_refactor
6-
# [L0] Refactor Copy Engine Usage checks for Performance
7-
set(UNIFIED_RUNTIME_TAG 3d58884b4939d9bd095c917f8dd823ac8486684c)
4+
# Date: Fri Nov 1 10:03:37 2024 +0000
5+
# Merge pull request #1833 from ayylol/old-opencl-check
6+
# [OpenCL] Add OpenCL version check for independent forward progress query
7+
set(UNIFIED_RUNTIME_TAG fa8cc8ec16c1a2cf0926cc64026edc6a254ff0c2)

sycl/include/sycl/ext/oneapi/properties/property.hpp

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,20 @@
1010
// 1. Add a new enumerator to
1111
// `sycl::ext::oneapi::experimental::detail::PropKind` representing the new
1212
// property. Increment
13-
// `sycl::ext::oneapi::experimental::detail::PropKind::PropKindSize`
14-
// 2. Define property key class with `value_t` that must be `property_value`
15-
// with the first template argument being the property class itself. The
16-
// name of the key class must be the property name suffixed by `_key`, i.e.
17-
// for a property `foo` the class should be named `foo_key`.
13+
// `sycl::ext::oneapi::experimental::detail::PropKind::PropKindSize`.
14+
// 2. Define property key class inherited from
15+
// `detail::compile_time_property_key` with `value_t` that must be
16+
// `property_value` with the first template argument being the property
17+
// class itself. The name of the key class must be the property name
18+
// suffixed by `_key`, i.e. for a property `foo` the class should be named
19+
// `foo_key`.
1820
// 3. Add an `inline constexpr` variable in the same namespace as the property
1921
// key. The variable should have the same type as `value_t` of the property
2022
// class, e.g. for a property `foo`, there should be a definition
2123
// `inline constexpr foo_key::value_t foo`.
22-
// 4. Specialize `sycl::ext::oneapi::experimental::is_property_key` and
23-
// `sycl::ext::oneapi::experimental::is_property_key_of` for the property
24-
// key class.
25-
// 5. Specialize `sycl::ext::oneapi::experimental::detail::PropertyToKind` for
26-
// the new property key class. The specialization should have a `Kind`
27-
// member with the value equal to the enumerator added in 1.
28-
// 6. Specialize
29-
// `sycl::ext::oneapi::experimental::detail::IsCompileTimeProperty` for the
30-
// new property key class. This specialization should derive from
31-
// `std::true_type`.
32-
// 7. If the property needs an LLVM IR attribute, specialize
24+
// 4. Specialize `sycl::ext::oneapi::experimental::is_property_key_of` for the
25+
// property key class.
26+
// 5. If the property needs an LLVM IR attribute, specialize
3327
// `sycl::ext::oneapi::experimental::detail::PropertyMetaInfo` for the new
3428
// `value_t` of the property key class. The specialization must have a
3529
// `static constexpr const char *name` member with a value equal to the

sycl/include/sycl/multi_ptr.hpp

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -732,12 +732,28 @@ class __SYCL_TYPE(multi_ptr) multi_ptr<void, Space, DecorateAddress> {
732732
decorated_type *m_Pointer;
733733
};
734734

735+
namespace detail {
736+
// See access.hpp's DecoratedType<..., access::address_space::constant_space>.
737+
//
738+
// This is only applicable to `access::decorated::legacy` mode because constant
739+
// AS is deprecated itself and is only accessible in legacy modes.
740+
template <auto Space>
741+
#ifdef __SYCL_DEVICE_ONLY__
742+
inline constexpr auto decoration_space =
743+
deduce_AS<typename DecoratedType<void, Space>::type>::value;
744+
#else
745+
inline constexpr auto decoration_space = Space;
746+
#endif
747+
} // namespace detail
748+
735749
// Legacy specialization of multi_ptr.
736750
// TODO: Add deprecation warning here when possible.
737751
template <typename ElementType, access::address_space Space>
738752
class __SYCL2020_DEPRECATED(
739753
"decorated::legacy multi_ptr specialization is deprecated since SYCL 2020.")
740754
multi_ptr<ElementType, Space, access::decorated::legacy> {
755+
static constexpr auto DecorationSpace = detail::decoration_space<Space>;
756+
741757
public:
742758
using value_type = ElementType;
743759
using element_type =
@@ -777,7 +793,8 @@ class __SYCL2020_DEPRECATED(
777793

778794
multi_ptr(ElementType *pointer)
779795
: m_Pointer(detail::dynamic_address_cast<
780-
Space, /* SupressNotImplementedAssert = */ true>(pointer)) {
796+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
797+
pointer)) {
781798
// TODO An implementation should reject an argument if the deduced
782799
// address space is not compatible with Space.
783800
}
@@ -786,7 +803,8 @@ class __SYCL2020_DEPRECATED(
786803
template <typename = typename detail::const_if_const_AS<Space, ElementType>>
787804
multi_ptr(const ElementType *pointer)
788805
: m_Pointer(detail::dynamic_address_cast<
789-
Space, /* SupressNotImplementedAssert = */ true>(pointer)) {}
806+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
807+
pointer)) {}
790808
#endif
791809

792810
multi_ptr(std::nullptr_t) : m_Pointer(nullptr) {}
@@ -814,7 +832,7 @@ class __SYCL2020_DEPRECATED(
814832
// TODO An implementation should reject an argument if the deduced
815833
// address space is not compatible with Space.
816834
m_Pointer = detail::dynamic_address_cast<
817-
Space, /* SupressNotImplementedAssert = */ true>(pointer);
835+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(pointer);
818836
return *this;
819837
}
820838

@@ -856,8 +874,8 @@ class __SYCL2020_DEPRECATED(
856874
multi_ptr(accessor<ElementType, dimensions, Mode, target::device,
857875
isPlaceholder, PropertyListT>
858876
Accessor)
859-
: multi_ptr(
860-
detail::static_address_cast<Space>(Accessor.get_pointer().get())) {}
877+
: multi_ptr(detail::static_address_cast<DecorationSpace>(
878+
Accessor.get_pointer().get())) {}
861879

862880
// Only if Space == local_space || generic_space
863881
template <
@@ -1088,6 +1106,8 @@ template <access::address_space Space>
10881106
class __SYCL2020_DEPRECATED(
10891107
"decorated::legacy multi_ptr specialization is deprecated since SYCL 2020.")
10901108
multi_ptr<void, Space, access::decorated::legacy> {
1109+
static constexpr auto DecorationSpace = detail::decoration_space<Space>;
1110+
10911111
public:
10921112
using value_type = void;
10931113
using element_type = void;
@@ -1113,17 +1133,17 @@ class __SYCL2020_DEPRECATED(
11131133
!std::is_same_v<RelayPointerT, void *>>>
11141134
multi_ptr(void *pointer)
11151135
: m_Pointer(detail::dynamic_address_cast<
1116-
Space, /* SupressNotImplementedAssert = */ true>(pointer)) {
1136+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
1137+
pointer)) {
11171138
// TODO An implementation should reject an argument if the deduced
11181139
// address space is not compatible with Space.
11191140
}
11201141
#if defined(RESTRICT_WRITE_ACCESS_TO_CONSTANT_PTR)
11211142
template <typename = typename detail::const_if_const_AS<Space, void>>
11221143
multi_ptr(const void *pointer)
1123-
: m_Pointer(
1124-
detail::dynamic_address_cast<
1125-
pointer_t, /* SupressNotImplementedAssert = */ true>(pointer)) {
1126-
}
1144+
: m_Pointer(detail::dynamic_address_cast<
1145+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
1146+
pointer)) {}
11271147
#endif
11281148
#endif
11291149
multi_ptr(std::nullptr_t) : m_Pointer(nullptr) {}
@@ -1154,7 +1174,7 @@ class __SYCL2020_DEPRECATED(
11541174
// TODO An implementation should reject an argument if the deduced
11551175
// address space is not compatible with Space.
11561176
m_Pointer = detail::dynamic_address_cast<
1157-
Space, /* SupressNotImplementedAssert = */ true>(pointer);
1177+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(pointer);
11581178
return *this;
11591179
}
11601180
#endif
@@ -1249,6 +1269,8 @@ template <access::address_space Space>
12491269
class __SYCL2020_DEPRECATED(
12501270
"decorated::legacy multi_ptr specialization is deprecated since SYCL 2020.")
12511271
multi_ptr<const void, Space, access::decorated::legacy> {
1272+
static constexpr auto DecorationSpace = detail::decoration_space<Space>;
1273+
12521274
public:
12531275
using value_type = const void;
12541276
using element_type = const void;
@@ -1275,15 +1297,17 @@ class __SYCL2020_DEPRECATED(
12751297
!std::is_same_v<RelayPointerT, const void *>>>
12761298
multi_ptr(const void *pointer)
12771299
: m_Pointer(detail::dynamic_address_cast<
1278-
Space, /* SupressNotImplementedAssert = */ true>(pointer)) {
1300+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
1301+
pointer)) {
12791302
// TODO An implementation should reject an argument if the deduced
12801303
// address space is not compatible with Space.
12811304
}
12821305
#if defined(RESTRICT_WRITE_ACCESS_TO_CONSTANT_PTR)
12831306
template <typename = typename detail::const_if_const_AS<Space, void>>
12841307
multi_ptr(const void *pointer)
12851308
: m_Pointer(detail::dynamic_address_cast<
1286-
Space, /* SupressNotImplementedAssert = */ true>(pointer)) {}
1309+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(
1310+
pointer)) {}
12871311
#endif
12881312
#endif
12891313
multi_ptr(std::nullptr_t) : m_Pointer(nullptr) {}
@@ -1314,7 +1338,7 @@ class __SYCL2020_DEPRECATED(
13141338
// TODO An implementation should reject an argument if the deduced
13151339
// address space is not compatible with Space.
13161340
m_Pointer = detail::dynamic_address_cast<
1317-
pointer_t, /* SupressNotImplementedAssert = */ true>(pointer);
1341+
DecorationSpace, /* SupressNotImplementedAssert = */ true>(pointer);
13181342
return *this;
13191343
}
13201344
#endif
@@ -1442,7 +1466,7 @@ address_space_cast(ElementType *pointer) {
14421466
// space is not compatible with Space.
14431467
// Use LegacyPointerTypes here to also allow constant_space
14441468
return multi_ptr<ElementType, Space, DecorateAddress>(
1445-
detail::dynamic_address_cast<Space,
1469+
detail::dynamic_address_cast<detail::decoration_space<Space>,
14461470
/* SupressNotImplementedAssert = */ true>(
14471471
pointer));
14481472
}

sycl/source/detail/device_impl.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,9 @@ bool device_impl::has(aspect Aspect) const {
675675
const std::vector<arch> supported_archs = {
676676
arch::intel_cpu_spr, arch::intel_cpu_gnr,
677677
arch::intel_gpu_pvc, arch::intel_gpu_dg2_g10,
678-
arch::intel_gpu_dg2_g11, arch::intel_gpu_dg2_g12};
678+
arch::intel_gpu_dg2_g11, arch::intel_gpu_dg2_g12,
679+
arch::intel_gpu_bmg_g21, arch::intel_gpu_lnl_m,
680+
arch::intel_gpu_arl_h};
679681
try {
680682
return std::any_of(
681683
supported_archs.begin(), supported_archs.end(),

0 commit comments

Comments
 (0)