Skip to content

Commit 0728f6d

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web'
2 parents d33f6f4 + 24ce45c commit 0728f6d

File tree

173 files changed

+670
-493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+670
-493
lines changed

libclc/ptx-nvidiacl/libspirv/images/image.cl

Lines changed: 98 additions & 96 deletions
Large diffs are not rendered by default.

sycl-fusion/passes/target/TargetFusionInfo.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,8 @@ class NVPTXAMDGCNTargetFusionInfoBase : public TargetFusionInfoImpl {
445445
public:
446446
using TargetFusionInfoImpl::TargetFusionInfoImpl;
447447

448-
void notifyFunctionsDelete(StringRef MDName,
449-
llvm::ArrayRef<Function *> Funcs) const {
448+
void removeDeletedKernelsFromMD(StringRef MDName,
449+
llvm::ArrayRef<Function *> Funcs) const {
450450
SmallPtrSet<Constant *, 8> DeletedFuncs{Funcs.begin(), Funcs.end()};
451451
SmallVector<MDNode *> ValidKernels;
452452
auto *OldAnnotations = LLVMMod->getNamedMetadata(MDName);
@@ -469,7 +469,7 @@ class NVPTXAMDGCNTargetFusionInfoBase : public TargetFusionInfoImpl {
469469
}
470470
}
471471

472-
void addKernelFunction(StringRef MDName, Function *KernelFunc) const {
472+
void addKernelToMD(StringRef MDName, Function *KernelFunc) const {
473473
auto *Annotations = LLVMMod->getOrInsertNamedMetadata(MDName);
474474
auto *MDOne = ConstantAsMetadata::get(
475475
ConstantInt::get(Type::getInt32Ty(LLVMMod->getContext()), 1));
@@ -707,13 +707,11 @@ class NVPTXTargetFusionInfo final : public NVPTXAMDGCNTargetFusionInfoBase {
707707
using NVPTXAMDGCNTargetFusionInfoBase::NVPTXAMDGCNTargetFusionInfoBase;
708708

709709
void notifyFunctionsDelete(llvm::ArrayRef<Function *> Funcs) const override {
710-
NVPTXAMDGCNTargetFusionInfoBase::notifyFunctionsDelete("nvvm.annotations",
711-
Funcs);
710+
removeDeletedKernelsFromMD("nvvm.annotations", Funcs);
712711
}
713712

714713
void addKernelFunction(Function *KernelFunc) const override {
715-
NVPTXAMDGCNTargetFusionInfoBase::addKernelFunction("nvvm.annotations",
716-
KernelFunc);
714+
addKernelToMD("nvvm.annotations", KernelFunc);
717715
}
718716

719717
void createBarrierCall(IRBuilderBase &Builder,
@@ -818,14 +816,12 @@ class AMDGCNTargetFusionInfo final : public NVPTXAMDGCNTargetFusionInfoBase {
818816
using NVPTXAMDGCNTargetFusionInfoBase::NVPTXAMDGCNTargetFusionInfoBase;
819817

820818
void notifyFunctionsDelete(llvm::ArrayRef<Function *> Funcs) const override {
821-
NVPTXAMDGCNTargetFusionInfoBase::notifyFunctionsDelete("amdgcn.annotations",
822-
Funcs);
819+
removeDeletedKernelsFromMD("amdgcn.annotations", Funcs);
823820
}
824821

825822
void addKernelFunction(Function *KernelFunc) const override {
826823
KernelFunc->setCallingConv(CallingConv::AMDGPU_KERNEL);
827-
NVPTXAMDGCNTargetFusionInfoBase::addKernelFunction("amdgcn.annotations",
828-
KernelFunc);
824+
addKernelToMD("amdgcn.annotations", KernelFunc);
829825
}
830826

831827
void createBarrierCall(IRBuilderBase &Builder,

sycl/doc/design/KernelFusionJIT.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,18 +226,15 @@ This remapping consists on an inter-procedural pass replacing each built-in quer
226226
First of all, work-item remapping will always be performed when the list of input nd-ranges is heterogeneous. Additional remapping conditions are present for the following work-item components. For each input kernel:
227227

228228
- `num_work_groups` and `local_size`: Only performed if the input nd-range has an explicit local size, may result in better performance, as this replaces built-in calls with constants;
229-
- `global_id`, `local_id` and `group_id`: Only needed if the number of dimensions differ w.r.t. that of the fused kernel or any component of the global size in the range [2, `num_dims`] differs.
229+
- `global_id`: Only needed if the number of dimensions differ w.r.t. that of the fused kernel or any component of the global size in the range [2, `num_dims`] differs.
230+
- `local_id` and `group_id`: Never needed as per [kernel fusion restrictions](#restrictions). These are invariant after fusion.
230231

231232
Once this rules are set, also taking into account remapping constraints, the remapping is performed as follows for each input kernel:
232233

233234
- `global_id`:
234235
- `global_id(0) = GLID / (global_size(1) * global_size(2))`
235236
- `global_id(1) = (GLID / global_size(2)) % global_size(1)`
236237
- `global_id(2) = GLID % global_size(2)`
237-
- `local_id`:
238-
- `local_id(x) = global_id(x) % local_size(x)`
239-
- `group_id`:
240-
- `group_id(x) = global_id(x) / local_size(x)`
241238
- `num_work_groups`:
242239
- `num_work_groups(x) = global_size(x) / local_size(x)`
243240
- `global_size`:
@@ -348,6 +345,13 @@ q.submit([&](sycl::handler &cgh) {
348345
sycl::detail::strategy::group_reduce_and_last_wg_detection>(...);
349346
});
350347
```
348+
### Group Algorithms and Functions
349+
350+
Kernel fusion supports group algorithms and functions. As per [remapping
351+
rules](#work-item-remapping), group ID and local ID are invariant after fusion
352+
even when different ND-ranges are involved. This way, group functions and
353+
algorithms conceptually executed for a given group and using a given local ID
354+
as, e.g., the `group_broadcast` local ID, will keep semantics after fusion.
351355

352356
### Unsupported SYCL constructs
353357

sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,15 +1030,11 @@ of the <<recognized_standard_types>>.
10301030
Sampled images cannot be written to using `write_image`.
10311031

10321032
For reading and writing of unsampled images, coordinates are specified by `int`,
1033-
`sycl::vec<int, 2>`, and `sycl::vec<int, 4>` for 1D, 2D, and 3D images,
1033+
`sycl::vec<int, 2>`, and `sycl::vec<int, 3>` for 1D, 2D, and 3D images,
10341034
respectively.
10351035

10361036
Sampled image reads take `float`, `sycl::vec<float, 2>`, and
1037-
`sycl::vec<float, 4>` coordinate types for 1D, 2D, and 3D images, respectively.
1038-
1039-
Note that in the case of 3D reads or writes, coordinates for 3D images take a
1040-
vector of size 4, not 3, as the fourth element in the coordinate vector is
1041-
ignored.
1037+
`sycl::vec<float, 3>` coordinate types for 1D, 2D, and 3D images, respectively.
10421038

10431039
Note also that all images must be used in either read-only or write-only fashion
10441040
within a single kernel invocation; read/write images are not supported.
@@ -1061,7 +1057,7 @@ standard types.
10611057

10621058
* All POD types (`char`, `short`, `int`, `float`, etc.) excluding `double`
10631059
* `sycl::half`
1064-
* Variants of `sycl::vec<T, N>` where `T` is one of the above, and `N` is `1`, `2`, or `4`
1060+
* Variants of `sycl::vec<T, N>` where `T` is one of the above, and `N` is `1`, `2`, or `3`
10651061

10661062
Any other types are classified as user-defined types.
10671063

@@ -1080,7 +1076,7 @@ struct my_short2 {
10801076
```
10811077

10821078
When providing the above types as `DataT` parameters to an image read function,
1083-
the corresponding `HintT` parameters to use would be `sycl::vec<float, 4>` and
1079+
the corresponding `HintT` parameters to use would be `sycl::vec<float, 4>` and
10841080
`sycl::vec<short, 2>`, respectively.
10851081

10861082
== Mipmapped images

sycl/include/sycl/ext/oneapi/bindless_images.hpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -783,8 +783,8 @@ DataT read_image(const unsampled_image_handle &imageHandle [[maybe_unused]],
783783
const CoordT &coords [[maybe_unused]]) {
784784
detail::assert_unsampled_coords<CoordT>();
785785
constexpr size_t coordSize = detail::coord_size<CoordT>();
786-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
787-
"Expected input coordinate to be have 1, 2, or 4 components "
786+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
787+
"Expected input coordinate to be have 1, 2, or 3 components "
788788
"for 1D, 2D and 3D images, respectively.");
789789

790790
#ifdef __SYCL_DEVICE_ONLY__
@@ -829,8 +829,8 @@ DataT read_image(const sampled_image_handle &imageHandle [[maybe_unused]],
829829
const CoordT &coords [[maybe_unused]]) {
830830
detail::assert_sampled_coords<CoordT>();
831831
constexpr size_t coordSize = detail::coord_size<CoordT>();
832-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
833-
"Expected input coordinate to be have 1, 2, or 4 components "
832+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
833+
"Expected input coordinate to be have 1, 2, or 3 components "
834834
"for 1D, 2D and 3D images, respectively.");
835835

836836
#ifdef __SYCL_DEVICE_ONLY__
@@ -871,8 +871,8 @@ DataT read_mipmap(const sampled_image_handle &imageHandle [[maybe_unused]],
871871
const float level [[maybe_unused]]) {
872872
detail::assert_sampled_coords<CoordT>();
873873
constexpr size_t coordSize = detail::coord_size<CoordT>();
874-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
875-
"Expected input coordinate to be have 1, 2, or 4 components "
874+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
875+
"Expected input coordinate to be have 1, 2, or 3 components "
876876
"for 1D, 2D and 3D images, respectively.");
877877

878878
#ifdef __SYCL_DEVICE_ONLY__
@@ -915,8 +915,8 @@ DataT read_mipmap(const sampled_image_handle &imageHandle [[maybe_unused]],
915915
const CoordT &dY [[maybe_unused]]) {
916916
detail::assert_sampled_coords<CoordT>();
917917
constexpr size_t coordSize = detail::coord_size<CoordT>();
918-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
919-
"Expected input coordinates and gradients to have 1, 2, or 4 "
918+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
919+
"Expected input coordinates and gradients to have 1, 2, or 3 "
920920
"components for 1D, 2D, and 3D images, respectively.");
921921

922922
#ifdef __SYCL_DEVICE_ONLY__
@@ -961,8 +961,8 @@ DataT read_image(const sampled_image_handle &imageHandle [[maybe_unused]],
961961
const float level [[maybe_unused]]) {
962962
detail::assert_sampled_coords<CoordT>();
963963
constexpr size_t coordSize = detail::coord_size<CoordT>();
964-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
965-
"Expected input coordinate to be have 1, 2, or 4 components "
964+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
965+
"Expected input coordinate to be have 1, 2, or 3 components "
966966
"for 1D, 2D and 3D images, respectively.");
967967

968968
#ifdef __SYCL_DEVICE_ONLY__
@@ -1008,8 +1008,8 @@ DataT read_image(const sampled_image_handle &imageHandle [[maybe_unused]],
10081008
const CoordT &dY [[maybe_unused]]) {
10091009
detail::assert_sampled_coords<CoordT>();
10101010
constexpr size_t coordSize = detail::coord_size<CoordT>();
1011-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
1012-
"Expected input coordinates and gradients to have 1, 2, or 4 "
1011+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
1012+
"Expected input coordinates and gradients to have 1, 2, or 3 "
10131013
"components for 1D, 2D, and 3D images, respectively.");
10141014

10151015
#ifdef __SYCL_DEVICE_ONLY__
@@ -1045,8 +1045,8 @@ void write_image(const unsampled_image_handle &imageHandle [[maybe_unused]],
10451045
const DataT &color [[maybe_unused]]) {
10461046
detail::assert_unsampled_coords<CoordT>();
10471047
constexpr size_t coordSize = detail::coord_size<CoordT>();
1048-
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 4,
1049-
"Expected input coordinate to be have 1, 2, or 4 components "
1048+
static_assert(coordSize == 1 || coordSize == 2 || coordSize == 3,
1049+
"Expected input coordinate to be have 1, 2, or 3 components "
10501050
"for 1D, 2D and 3D images, respectively.");
10511051

10521052
#ifdef __SYCL_DEVICE_ONLY__

sycl/plugins/cuda/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ add_sycl_plugin(cuda
5151
${XPTI_LIBS}
5252
UnifiedRuntime-Headers
5353
UnifiedRuntimeCommon
54-
UnifiedMallocFramework
54+
UnifiedMemoryFramework
5555
HEADER "${CMAKE_CURRENT_SOURCE_DIR}/include/features.hpp"
5656
)
5757

sycl/plugins/hip/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ add_sycl_plugin(hip
125125
LIBRARIES
126126
UnifiedRuntime-Headers
127127
UnifiedRuntimeCommon
128-
UnifiedMallocFramework
128+
UnifiedMemoryFramework
129129
HEADER
130130
${CMAKE_CURRENT_SOURCE_DIR}/include/features.hpp
131131
)

sycl/plugins/level_zero/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ add_sycl_plugin(level_zero
9393
LevelZeroLoader-Headers
9494
UnifiedRuntime-Headers
9595
UnifiedRuntimeCommon
96-
UnifiedMallocFramework
96+
UnifiedMemoryFramework
9797
LevelZeroLoader
9898
Threads::Threads
9999
${XPTI_LIBS}

sycl/plugins/unified_runtime/CMakeLists.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ if(SYCL_PI_UR_USE_FETCH_CONTENT)
5757
include(FetchContent)
5858

5959
set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git")
60-
# commit 8ff738f424de6f84fa16c9f7d41c8c70b766665d
61-
# Merge: 5e548c5e fbdaf72a
60+
# commit cfba9f160528018055881f1ccf9ab98ec59c963f
61+
# Merge: 0bb2cad8 db5c33b2
6262
# Author: Kenneth Benzie (Benie) <[email protected]>
63-
# Date: Tue Feb 13 13:01:03 2024 +0100
64-
# Merge pull request #1089 from Bensuo/ewan/update
65-
# [EXP][Command-Buffer] Add kernel command update
66-
set(UNIFIED_RUNTIME_TAG 8ff738f424de6f84fa16c9f7d41c8c70b766665d)
63+
# Date: Wed Feb 14 11:17:21 2024 +0100
64+
# Merge pull request #1216 from igchor/umf_standalone
65+
# [UR] Remove UMF sources and use standalone UMF repo instead
66+
set(UNIFIED_RUNTIME_TAG cfba9f160528018055881f1ccf9ab98ec59c963f)
6767

6868
if(SYCL_PI_UR_OVERRIDE_FETCH_CONTENT_REPO)
6969
set(UNIFIED_RUNTIME_REPO "${SYCL_PI_UR_OVERRIDE_FETCH_CONTENT_REPO}")
@@ -124,7 +124,7 @@ set(UNIFIED_RUNTIME_COMMON_INCLUDE_DIR "${UNIFIED_RUNTIME_SOURCE_DIR}/source/com
124124

125125
add_library(UnifiedRuntimeLoader ALIAS ur_loader)
126126
add_library(UnifiedRuntimeCommon ALIAS ur_common)
127-
add_library(UnifiedMallocFramework ALIAS unified_malloc_framework)
127+
add_library(UnifiedMemoryFramework ALIAS umf)
128128

129129
add_library(UnifiedRuntime-Headers INTERFACE)
130130

sycl/source/detail/config.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,11 +315,7 @@ template <> class SYCLConfig<SYCL_ENABLE_DEFAULT_CONTEXTS> {
315315

316316
public:
317317
static bool get() {
318-
#ifdef WIN32
319-
constexpr bool DefaultValue = false;
320-
#else
321318
constexpr bool DefaultValue = true;
322-
#endif
323319

324320
const char *ValStr = getCachedValue();
325321

sycl/source/detail/global_handler.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -228,20 +228,10 @@ ThreadPool &GlobalHandler::getHostTaskThreadPool() {
228228

229229
void GlobalHandler::releaseDefaultContexts() {
230230
// Release shared-pointers to SYCL objects.
231-
#ifndef _WIN32
231+
// Note that on Windows the destruction of the default context
232+
// races with the detaching of the DLL object that calls piTearDown.
233+
232234
MPlatformToDefaultContextCache.Inst.reset(nullptr);
233-
#else
234-
// Windows does not maintain dependencies between dynamically loaded libraries
235-
// and can unload SYCL runtime dependencies before sycl.dll's DllMain has
236-
// finished. To avoid calls to nowhere, intentionally leak platform to device
237-
// cache. This will prevent destructors from being called, thus no PI cleanup
238-
// routines will be called in the end.
239-
// Update: the pi_win_proxy_loader addresses this for SYCL's own dependencies,
240-
// but the GPU device dlls seem to manually load yet another DLL which may
241-
// have been released when this function is called. So we still release() and
242-
// leak until that is addressed. context destructs fine on CPU device.
243-
MPlatformToDefaultContextCache.Inst.release();
244-
#endif
245235
}
246236

247237
struct DefaultContextReleaseHandler {

sycl/source/detail/program_manager/program_manager.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -380,13 +380,6 @@ static void appendCompileOptionsFromImage(std::string &CompileOpts,
380380
return Dev.is_gpu() &&
381381
Dev.get_info<info::device::vendor_id>() == 0x8086;
382382
});
383-
if (IsIntelGPU && Img.getDeviceGlobals().size() != 0) {
384-
// If the image has device globals we need to add the
385-
// -ze-take-global-address option to tell IGC to record addresses of these.
386-
if (!CompileOpts.empty())
387-
CompileOpts += " ";
388-
CompileOpts += "-ze-take-global-address";
389-
}
390383
if (!CompileOptsEnv) {
391384
static const char *TargetCompileFast = "-ftarget-compile-fast";
392385
if (auto Pos = CompileOpts.find(TargetCompileFast);

sycl/test-e2e/DiscardEvents/discard_events_l0_leak.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
//
33
// RUN: %{build} -o %t.out
44
//
5-
// RUN: env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 SYCL_PI_LEVEL_ZERO_BATCH_SIZE=4 ONEAPI_DEVICE_SELECTOR='level_zero:*' UR_L0_LEAKS_DEBUG=1 %{run} %t.out wait 2>&1 | FileCheck %s
6-
// RUN: env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 SYCL_PI_LEVEL_ZERO_BATCH_SIZE=4 ONEAPI_DEVICE_SELECTOR='level_zero:*' UR_L0_LEAKS_DEBUG=1 %{run} %t.out nowait 2>&1 | FileCheck %s
5+
// RUN: env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 SYCL_PI_LEVEL_ZERO_BATCH_SIZE=4 ONEAPI_DEVICE_SELECTOR='level_zero:*' %{l0_leak_check} %{run} %t.out wait 2>&1 | FileCheck %s
6+
// RUN: env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 SYCL_PI_LEVEL_ZERO_BATCH_SIZE=4 ONEAPI_DEVICE_SELECTOR='level_zero:*' %{l0_leak_check} %{run} %t.out nowait 2>&1 | FileCheck %s
77
//
88
// CHECK-NOT: LEAK
99
//
1010
// The test is to check that there are no leaks reported with the embedded
11-
// UR_L0_LEAKS_DEBUG=1 testing capability.
11+
// UR_L0_LEAKS_DEBUG=1 ( %{l0_leak_check} ) testing capability.
1212
// In addition to general leak checking, especially for discard_events, the test
1313
// checks that piKernelRelease to be executed for each kernel call, and
1414
// EventRelease for events, that are used for dependencies between

sycl/test-e2e/Graph/Explicit/add_node_while_recording.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// RUN: %{build} -o %t.out
22
// RUN: %{run} %t.out
33
// Extra run to check for leaks in Level Zero using UR_L0_LEAKS_DEBUG
4-
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
4+
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
55
// Extra run to check for immediate-command-list in Level Zero
6-
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
6+
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
77
//
88

99
// Tests attempting to add a node to a command_graph while it is being

sycl/test-e2e/Graph/Explicit/add_nodes_after_finalize.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// RUN: %{build} -o %t.out
22
// RUN: %{run} %t.out
33
// Extra run to check for leaks in Level Zero using UR_L0_LEAKS_DEBUG
4-
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
4+
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
55
// Extra run to check for immediate-command-list in Level Zero
6-
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
6+
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
77
//
88

99
#define GRAPH_E2E_EXPLICIT

sycl/test-e2e/Graph/Explicit/assume_buffer_outlives_graph_property.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// RUN: %{build} -o %t.out
22
// RUN: %{run} %t.out
33
// Extra run to check for leaks in Level Zero using UR_L0_LEAKS_DEBUG
4-
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
4+
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
55
// Extra run to check for immediate-command-list in Level Zero
6-
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
6+
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
77
//
88

99
#define GRAPH_E2E_EXPLICIT

sycl/test-e2e/Graph/Explicit/basic_buffer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// RUN: %{build} -o %t.out
22
// RUN: %{run} %t.out
33
// Extra run to check for leaks in Level Zero using UR_L0_LEAKS_DEBUG
4-
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
4+
// RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
55
// Extra run to check for immediate-command-list in Level Zero
6-
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 UR_L0_LEAKS_DEBUG=1 %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
6+
// RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %}
77
//
88
//
99
// TODO enable cuda once buffer issue investigated and fixed

0 commit comments

Comments
 (0)