Skip to content

Commit 4a855ca

Browse files
committed
Merge remote-tracking branch 'intel/main' into steffen/record_event
2 parents 73de142 + 003d4da commit 4a855ca

29 files changed

+1848
-1164
lines changed

.github/labeler.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ images:
7171
- scripts/core/EXP-BINDLESS-IMAGES.rst
7272
- scripts/core/exp-bindless-images.yml
7373
- source/adapters/**/image.*
74+
75+
sanitizer:
76+
- changed-files:
77+
- any-glob-to-any-file:
78+
- source/loader/layers/sanitizer/*

.github/workflows/cmake.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,10 @@ jobs:
174174
]
175175
build_type: [Debug, Release]
176176
compiler: [{c: gcc, cxx: g++}, {c: clang, cxx: clang++}]
177+
# TODO: The latest L0 loader segfaults when built with clang.
178+
exclude:
179+
- adapter: {name: L0, platform: ""}
180+
compiler: {c: clang, cxx: clang++}
177181

178182
runs-on: ${{matrix.adapter.name}}
179183

include/ur_api.h

Lines changed: 197 additions & 209 deletions
Large diffs are not rendered by default.

include/ur_print.hpp

Lines changed: 0 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -2565,24 +2565,6 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) {
25652565
case UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP:
25662566
os << "UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP";
25672567
break;
2568-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP:
2569-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP";
2570-
break;
2571-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP:
2572-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP";
2573-
break;
2574-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP:
2575-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP";
2576-
break;
2577-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP:
2578-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP";
2579-
break;
2580-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP:
2581-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP";
2582-
break;
2583-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP:
2584-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP";
2585-
break;
25862568
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP:
25872569
os << "UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP";
25882570
break;
@@ -4214,78 +4196,6 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42144196

42154197
os << ")";
42164198
} break;
4217-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP: {
4218-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4219-
if (sizeof(ur_bool_t) > size) {
4220-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4221-
return UR_RESULT_ERROR_INVALID_SIZE;
4222-
}
4223-
os << (const void *)(tptr) << " (";
4224-
4225-
os << *tptr;
4226-
4227-
os << ")";
4228-
} break;
4229-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP: {
4230-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4231-
if (sizeof(ur_bool_t) > size) {
4232-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4233-
return UR_RESULT_ERROR_INVALID_SIZE;
4234-
}
4235-
os << (const void *)(tptr) << " (";
4236-
4237-
os << *tptr;
4238-
4239-
os << ")";
4240-
} break;
4241-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP: {
4242-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4243-
if (sizeof(ur_bool_t) > size) {
4244-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4245-
return UR_RESULT_ERROR_INVALID_SIZE;
4246-
}
4247-
os << (const void *)(tptr) << " (";
4248-
4249-
os << *tptr;
4250-
4251-
os << ")";
4252-
} break;
4253-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP: {
4254-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4255-
if (sizeof(ur_bool_t) > size) {
4256-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4257-
return UR_RESULT_ERROR_INVALID_SIZE;
4258-
}
4259-
os << (const void *)(tptr) << " (";
4260-
4261-
os << *tptr;
4262-
4263-
os << ")";
4264-
} break;
4265-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP: {
4266-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4267-
if (sizeof(ur_bool_t) > size) {
4268-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4269-
return UR_RESULT_ERROR_INVALID_SIZE;
4270-
}
4271-
os << (const void *)(tptr) << " (";
4272-
4273-
os << *tptr;
4274-
4275-
os << ")";
4276-
} break;
4277-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP: {
4278-
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4279-
if (sizeof(ur_bool_t) > size) {
4280-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4281-
return UR_RESULT_ERROR_INVALID_SIZE;
4282-
}
4283-
os << (const void *)(tptr) << " (";
4284-
4285-
os << *tptr;
4286-
4287-
os << ")";
4288-
} break;
42894199
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP: {
42904200
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42914201
if (sizeof(ur_bool_t) > size) {

scripts/core/EXP-BINDLESS-IMAGES.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,6 @@ Enums
9191
* ${X}_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP
9292
* ${X}_DEVICE_INFO_CUBEMAP_SUPPORT_EXP
9393
* ${X}_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP
94-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP
95-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP
96-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP
97-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP
98-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP
99-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP
10094

10195
* ${x}_command_t
10296
* ${X}_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP
@@ -204,8 +198,6 @@ Changelog
204198
+------------------------------------------------------------------------+
205199
| 10.0 | Added cubemap image type, sampling properties, and device |
206200
| | queries. |
207-
+------------------------------------------------------------------------+
208-
| 11.0 | Added device queries for sampled image fetch capabilities. |
209201
+----------+-------------------------------------------------------------+
210202

211203
Contributors

scripts/core/exp-bindless-images.yml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,6 @@ etors:
9292
- name: CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP
9393
value: "0x2011"
9494
desc: "[$x_bool_t] returns true if the device supports sampling cubemapped images across face boundaries"
95-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP
96-
value: "0x2012"
97-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 1D sampled image data."
98-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP
99-
value: "0x2013"
100-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 1D sampled image data."
101-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP
102-
value: "0x2014"
103-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 2D sampled image data."
104-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP
105-
value: "0x2015"
106-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 2D sampled image data."
107-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP
108-
value: "0x2016"
109-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 3D sampled image data."
110-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP
111-
value: "0x2017"
112-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 3D sampled image data."
11395
--- #--------------------------------------------------------------------------
11496
type: enum
11597
extend: true

scripts/core/exp-enqueue-timestamp-recording.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ desc: "Extension enums to $x_device_info_t to support timestamp recordings."
1919
name: $x_device_info_t
2020
etors:
2121
- name: TIMESTAMP_RECORDING_SUPPORT_EXP
22-
value: "0x2018"
22+
value: "0x2012"
2323
desc: "[$x_bool_t] returns true if the device supports timestamp recording"
2424
--- #--------------------------------------------------------------------------
2525
type: enum

source/adapters/cuda/device.cpp

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -926,30 +926,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
926926
// CUDA supports cubemap seamless filtering.
927927
return ReturnValue(true);
928928
}
929-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP: {
930-
// CUDA does support fetching 1D USM sampled image data.
931-
return ReturnValue(true);
932-
}
933-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP: {
934-
// CUDA does not support fetching 1D non-USM sampled image data.
935-
return ReturnValue(false);
936-
}
937-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP: {
938-
// CUDA does support fetching 2D USM sampled image data.
939-
return ReturnValue(true);
940-
}
941-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP: {
942-
// CUDA does support fetching 2D non-USM sampled image data.
943-
return ReturnValue(true);
944-
}
945-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP: {
946-
// CUDA does not support 3D USM sampled textures
947-
return ReturnValue(false);
948-
}
949-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP: {
950-
// CUDA does support fetching 3D non-USM sampled image data.
951-
return ReturnValue(true);
952-
}
953929
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP: {
954930
// CUDA supports recording timestamp events.
955931
return ReturnValue(true);

source/loader/CMakeLists.txt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,31 @@ if(UR_ENABLE_SANITIZER)
106106
target_sources(ur_loader
107107
PRIVATE
108108
${CMAKE_CURRENT_SOURCE_DIR}/../ur/ur.cpp
109+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_allocator.cpp
110+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_allocator.hpp
109111
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_interceptor.cpp
110112
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_interceptor.hpp
113+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_libdevice.hpp
114+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_quarantine.cpp
115+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_quarantine.hpp
116+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_report.cpp
117+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_report.hpp
118+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_shadow_setup.cpp
119+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_shadow_setup.hpp
111120
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/common.hpp
112-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/device_sanitizer_report.hpp
121+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/stacktrace.cpp
122+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/stacktrace.hpp
123+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanddi.cpp
113124
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_layer.cpp
114125
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_layer.hpp
115-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanddi.cpp
126+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_utils.cpp
127+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_utils.hpp
116128
)
117129

118130
target_sources(ur_loader
119131
PRIVATE
120-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/san_utils.cpp
132+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/backtrace.cpp
133+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/sanitizer_utils.cpp
121134
)
122135

123136
target_include_directories(ur_loader PRIVATE
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
*
3+
* Copyright (C) 2024 Intel Corporation
4+
*
5+
* Part of the Unified-Runtime Project, under the Apache License v2.0 with LLVM Exceptions.
6+
* See LICENSE.TXT
7+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8+
*
9+
* @file asan_allocator.cpp
10+
*
11+
*/
12+
13+
#include "asan_allocator.hpp"
14+
#include "ur_sanitizer_layer.hpp"
15+
16+
namespace ur_sanitizer_layer {
17+
18+
void AllocInfo::print() {
19+
context.logger.info(
20+
"AllocInfo(Alloc=[{}-{}), User=[{}-{}), AllocSize={}, Type={})",
21+
(void *)AllocBegin, (void *)(AllocBegin + AllocSize), (void *)UserBegin,
22+
(void *)(UserEnd), AllocSize, ToString(Type));
23+
}
24+
25+
} // namespace ur_sanitizer_layer

0 commit comments

Comments
 (0)