Skip to content

Commit f73aea2

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web' (11 commits)
2 parents e1d95f9 + d569e12 commit f73aea2

File tree

112 files changed

+737
-3542
lines changed

Some content is hidden

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

112 files changed

+737
-3542
lines changed

.github/workflows/sycl-linux-precommit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
uses: ./.github/workflows/sycl-detect-changes.yml
4545

4646
build:
47+
name: Self build
4748
needs: [detect_changes]
4849
if: always() && success()
4950
uses: ./.github/workflows/sycl-linux-build.yml

.github/workflows/sycl-post-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
uses: ./.github/workflows/sycl-detect-changes.yml
3535

3636
build-lin:
37-
name: Linux (Self build + no-assertions)
37+
name: Linux (GCC + no-assertions)
3838
if: github.repository == 'intel/llvm'
3939
uses: ./.github/workflows/sycl-linux-build.yml
4040
with:

devops/dependencies-igc-dev.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"linux": {
33
"igc_dev": {
4-
"github_tag": "igc-dev-e22e2a8",
5-
"version": "e22e2a8",
6-
"updated_at": "2025-07-31T01:11:27Z",
7-
"url": "https://api.github.com/repos/intel/intel-graphics-compiler/actions/artifacts/3654137925/zip",
4+
"github_tag": "igc-dev-04d2e53",
5+
"version": "04d2e53",
6+
"updated_at": "2025-08-04T02:10:56Z",
7+
"url": "https://api.github.com/repos/intel/intel-graphics-compiler/actions/artifacts/3677914099/zip",
88
"root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu"
99
}
1010
}

devops/scripts/benchmarks/benches/compute.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def git_url(self) -> str:
5151
return "https://github.com/intel/compute-benchmarks.git"
5252

5353
def git_hash(self) -> str:
54-
return "83b9ae3ebb3563552409f3a317cdc1cf3d3ca6bd"
54+
return "c9e135d4f26dd6badd83009f92f25d6285fc1e21"
5555

5656
def setup(self) -> None:
5757
if options.sycl is None:
@@ -73,6 +73,8 @@ def setup(self) -> None:
7373
f"-DBUILD_SYCL=ON",
7474
f"-DSYCL_COMPILER_ROOT={options.sycl}",
7575
f"-DALLOW_WARNINGS=ON",
76+
f"-DCMAKE_CXX_COMPILER=clang++",
77+
f"-DCMAKE_C_COMPILER=clang",
7678
]
7779

7880
if options.ur_adapter == "cuda":
@@ -204,6 +206,17 @@ def benchmarks(self) -> list[Benchmark]:
204206

205207
# Add GraphApiSubmitGraph benchmarks
206208
for in_order_queue in [0, 1]:
209+
benches.append(
210+
GraphApiSubmitGraph(
211+
self,
212+
runtime,
213+
in_order_queue,
214+
self.submit_graph_num_kernels[-1],
215+
0,
216+
useEvents=0,
217+
useHostTasks=1,
218+
)
219+
)
207220
for num_kernels in self.submit_graph_num_kernels:
208221
for measure_completion_time in [0, 1]:
209222
for use_events in [0, 1]:
@@ -215,6 +228,7 @@ def benchmarks(self) -> list[Benchmark]:
215228
num_kernels,
216229
measure_completion_time,
217230
use_events,
231+
useHostTasks=0,
218232
)
219233
)
220234

@@ -840,22 +854,25 @@ def __init__(
840854
numKernels,
841855
measureCompletionTime,
842856
useEvents,
857+
useHostTasks,
843858
):
844859
self.inOrderQueue = inOrderQueue
845860
self.numKernels = numKernels
846861
self.measureCompletionTime = measureCompletionTime
847862
self.useEvents = useEvents
863+
self.useHostTasks = useHostTasks
848864
self.ioq_str = "in order" if self.inOrderQueue else "out of order"
849865
self.measure_str = (
850866
" with measure completion" if self.measureCompletionTime else ""
851867
)
852868
self.use_events_str = f" with events" if self.useEvents else ""
869+
self.host_tasks_str = f" use host tasks" if self.useHostTasks else ""
853870
super().__init__(
854871
bench, f"graph_api_benchmark_{runtime.value}", "SubmitGraph", runtime
855872
)
856873

857874
def explicit_group(self):
858-
return f"SubmitGraph {self.ioq_str}{self.measure_str}{self.use_events_str}, {self.numKernels} kernels"
875+
return f"SubmitGraph {self.ioq_str}{self.measure_str}{self.use_events_str}{self.host_tasks_str}, {self.numKernels} kernels"
859876

860877
def description(self) -> str:
861878
return (
@@ -864,10 +881,10 @@ def description(self) -> str:
864881
)
865882

866883
def name(self):
867-
return f"graph_api_benchmark_{self.runtime.value} SubmitGraph{self.use_events_str} numKernels:{self.numKernels} ioq {self.inOrderQueue} measureCompletion {self.measureCompletionTime}"
884+
return f"graph_api_benchmark_{self.runtime.value} SubmitGraph{self.use_events_str}{self.host_tasks_str} numKernels:{self.numKernels} ioq {self.inOrderQueue} measureCompletion {self.measureCompletionTime}"
868885

869886
def display_name(self) -> str:
870-
return f"{self.runtime.value.upper()} SubmitGraph {self.ioq_str}{self.measure_str}{self.use_events_str}, {self.numKernels} kernels"
887+
return f"{self.runtime.value.upper()} SubmitGraph {self.ioq_str}{self.measure_str}{self.use_events_str}{self.host_tasks_str}, {self.numKernels} kernels"
871888

872889
def get_tags(self):
873890
return [
@@ -888,6 +905,7 @@ def bin_args(self) -> list[str]:
888905
"--KernelExecutionTime=1",
889906
f"--UseEvents={self.useEvents}",
890907
"--UseExplicit=0",
908+
f"--UseHostTasks={self.useHostTasks}",
891909
]
892910

893911

devops/scripts/benchmarks/compare.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,9 @@ def get_result_paths() -> list[str]:
112112
def validate_benchmark_result(result: BenchmarkRun) -> bool:
113113
"""
114114
Returns True if result file:
115-
- Was ran on the target machine/hostname specified
116-
- Sanity check: ensure metadata are all expected values:
117115
- Date is truly before cutoff timestamp
118116
- Name truly matches up with specified result_name
119117
"""
120-
if result.hostname != hostname:
121-
return False
122118
if result.name != result_name:
123119
log.warning(
124120
f"Result file {result_path} does not match specified result name {result.name}."

libdevice/cmath_wrapper.cpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,6 @@
1010

1111
#if defined(__SPIR__) || defined(__SPIRV__)
1212

13-
DEVICE_EXTERN_C_INLINE
14-
int abs(int x) { return __devicelib_abs(x); }
15-
16-
DEVICE_EXTERN_C_INLINE
17-
long int labs(long int x) { return __devicelib_labs(x); }
18-
19-
DEVICE_EXTERN_C_INLINE
20-
long long int llabs(long long int x) { return __devicelib_llabs(x); }
21-
2213
DEVICE_EXTERN_C_INLINE
2314
float fabsf(float x) { return __devicelib_fabsf(x); }
2415

@@ -51,15 +42,6 @@ float rsqrtf(float x) { return __devicelib_rsqrtf(x); }
5142
DEVICE_EXTERN_C_INLINE
5243
float exp10f(float x) { return __devicelib_exp10f(x); }
5344

54-
DEVICE_EXTERN_C_INLINE
55-
div_t div(int x, int y) { return __devicelib_div(x, y); }
56-
57-
DEVICE_EXTERN_C_INLINE
58-
ldiv_t ldiv(long x, long y) { return __devicelib_ldiv(x, y); }
59-
60-
DEVICE_EXTERN_C_INLINE
61-
lldiv_t lldiv(long long x, long long y) { return __devicelib_lldiv(x, y); }
62-
6345
DEVICE_EXTERN_C_INLINE
6446
float roundf(float x) { return __devicelib_roundf(x); }
6547

libdevice/device_math.h

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,6 @@
1414
defined(__AMDGCN__)
1515
#include <cstdint>
1616

17-
typedef struct {
18-
int32_t quot;
19-
int32_t rem;
20-
} __devicelib_div_t_32;
21-
22-
typedef struct {
23-
int64_t quot;
24-
int64_t rem;
25-
} __devicelib_div_t_64;
26-
27-
typedef __devicelib_div_t_32 div_t;
28-
#ifdef _WIN32
29-
typedef __devicelib_div_t_32 ldiv_t;
30-
#else
31-
typedef __devicelib_div_t_64 ldiv_t;
32-
#endif
33-
typedef __devicelib_div_t_64 lldiv_t;
34-
35-
DEVICE_EXTERN_C
36-
int __devicelib_abs(int x);
37-
38-
DEVICE_EXTERN_C
39-
long int __devicelib_labs(long int x);
40-
41-
DEVICE_EXTERN_C
42-
long long int __devicelib_llabs(long long int x);
43-
4417
DEVICE_EXTERN_C
4518
float __devicelib_fabsf(float x);
4619

@@ -107,15 +80,6 @@ double __devicelib_exp10(double x);
10780
DEVICE_EXTERN_C
10881
float __devicelib_exp10f(float x);
10982

110-
DEVICE_EXTERN_C
111-
div_t __devicelib_div(int x, int y);
112-
113-
DEVICE_EXTERN_C
114-
ldiv_t __devicelib_ldiv(long int x, long int y);
115-
116-
DEVICE_EXTERN_C
117-
lldiv_t __devicelib_lldiv(long long int x, long long int y);
118-
11983
DEVICE_EXTERN_C
12084
double __devicelib_round(double x);
12185

libdevice/fallback-cmath.cpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@
1616
// TODO: generate the DeviceLibFuncMap in sycl-post-link.cpp automatically
1717
// during the build based on libdevice to avoid manually sync.
1818

19-
DEVICE_EXTERN_C_INLINE
20-
int __devicelib_abs(int x) { return x < 0 ? -x : x; }
21-
22-
DEVICE_EXTERN_C_INLINE
23-
long int __devicelib_labs(long int x) { return x < 0 ? -x : x; }
24-
25-
DEVICE_EXTERN_C_INLINE
26-
long long int __devicelib_llabs(long long int x) { return x < 0 ? -x : x; }
27-
2819
DEVICE_EXTERN_C_INLINE
2920
float __devicelib_fabsf(float x) { return x < 0 ? -x : x; }
3021

@@ -62,15 +53,6 @@ float __devicelib_rsqrtf(float x) { return __spirv_ocl_rsqrt(x); }
6253
DEVICE_EXTERN_C_INLINE
6354
float __devicelib_exp10f(float x) { return __spirv_ocl_exp10(x); }
6455

65-
DEVICE_EXTERN_C_INLINE
66-
div_t __devicelib_div(int x, int y) { return {x / y, x % y}; }
67-
68-
DEVICE_EXTERN_C_INLINE
69-
ldiv_t __devicelib_ldiv(long x, long y) { return {x / y, x % y}; }
70-
71-
DEVICE_EXTERN_C_INLINE
72-
lldiv_t __devicelib_lldiv(long long x, long long y) { return {x / y, x % y}; }
73-
7456
DEVICE_EXTERN_C_INLINE
7557
float __devicelib_scalbnf(float x, int n) { return __spirv_ocl_ldexp(x, n); }
7658

llvm-spirv/lib/SPIRV/SPIRVWriter.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3984,6 +3984,17 @@ bool LLVMToSPIRVBase::isKnownIntrinsic(Intrinsic::ID Id) {
39843984
case Intrinsic::masked_gather:
39853985
case Intrinsic::masked_scatter:
39863986
case Intrinsic::modf:
3987+
// INTEL_CUSTOMIZATION begin
3988+
// fpbuiltin intrinsics are not part of upstream LLVM, yet we have to register
3989+
// them as known.
3990+
case Intrinsic::fpbuiltin_fadd:
3991+
case Intrinsic::fpbuiltin_fsub:
3992+
case Intrinsic::fpbuiltin_fmul:
3993+
case Intrinsic::fpbuiltin_fdiv:
3994+
case Intrinsic::fpbuiltin_frem:
3995+
case Intrinsic::fpbuiltin_sqrt:
3996+
case Intrinsic::fpbuiltin_ldexp:
3997+
// INTEL_CUSTOMIZATION end
39873998
return true;
39883999
default:
39894000
// Unknown intrinsics' declarations should always be translated

llvm-spirv/test/extensions/INTEL/SPV_INTEL_fp_max_error/IntelFPMaxError.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
1515
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
1616

17+
; INTEL_CUSTOMIZATION begin
18+
; CHECK-SPIRV-NOT: Name [[#]] "llvm.fpbuiltin."
19+
; INTEL_CUSTOMIZATION end
20+
1721
; CHECK-SPIRV: Capability FPMaxErrorINTEL
1822
; CHECK-SPIRV: Extension "SPV_INTEL_fp_max_error"
1923
; CHECK-SPIRV: ExtInstImport [[#OCLEXTID:]] "OpenCL.std"

0 commit comments

Comments
 (0)