Skip to content

Commit 7dc0216

Browse files
authored
Merge branch 'sycl' into llvmspirv_pulldown
2 parents 12c4a0e + d569e12 commit 7dc0216

File tree

122 files changed

+903
-3635
lines changed

Some content is hidden

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

122 files changed

+903
-3635
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-linux-run-tests.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ on:
179179
- e2e
180180
- cts
181181
- benchmarks
182+
toolchain_release_tag:
183+
description: |
184+
Tag of a "Nightly" release at https://github.com/intel/llvm/releases.
185+
default: ''
182186

183187
env:
184188
description: |
@@ -256,11 +260,6 @@ jobs:
256260
uses: actions/download-artifact@v4
257261
with:
258262
name: ${{ inputs.toolchain_artifact }}
259-
- name: Debug prints [workflow_run]
260-
if: inputs.toolchain_artifact != '' && github.event_name == 'workflow_run'
261-
run: |
262-
pwd
263-
ls
264263
- name: Download SYCL toolchain [workflow_run]
265264
# NOTE: This is for `sycl-linux-precommit-aws.yml`.
266265
if: inputs.toolchain_artifact != '' && github.event_name == 'workflow_run'
@@ -299,6 +298,17 @@ jobs:
299298
rm -f ${{ inputs.toolchain_artifact_filename }}
300299
echo PATH=$PWD/toolchain/bin/:$PATH >> $GITHUB_ENV
301300
echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV
301+
- name: Download SYCL toolchain using release tag
302+
if: inputs.toolchain_release_tag != ''
303+
env:
304+
TAG: ${{ inputs.toolchain_release_tag }}
305+
shell: bash
306+
run: |
307+
mkdir toolchain
308+
wget "https://github.com/intel/llvm/releases/download/$TAG/sycl_linux.tar.gz"
309+
tar xf sycl_linux.tar.gz -C toolchain
310+
echo PATH=$PWD/toolchain/bin/:$PATH >> $GITHUB_ENV
311+
echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV
302312
- run: which clang++ sycl-ls
303313
- run: sycl-ls --verbose
304314
- run: SYCL_UR_TRACE=1 sycl-ls

.github/workflows/sycl-nightly-benchmarking.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ name: SYCL Nightly Benchmarking
33
on:
44
workflow_dispatch:
55
schedule:
6-
- cron: '0 2 * * *'
6+
- cron: '0 0 * * *'
7+
# 3 hours ahead of SYCL nightly
78

89
permissions: read-all
910

@@ -31,7 +32,7 @@ jobs:
3132
include:
3233
- ref: ${{ github.sha }}
3334
save_name: 'Baseline'
34-
preset: 'Minimal'
35+
preset: 'Full'
3536
uses: ./.github/workflows/sycl-linux-run-tests.yml
3637
secrets: inherit
3738
with:

.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:

clang/lib/Sema/SemaSYCL.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6980,6 +6980,10 @@ void SYCLIntegrationHeader::emit(raw_ostream &O) {
69806980

69816981
for (const KernelDesc &K : KernelDescs) {
69826982
const size_t N = K.Params.size();
6983+
if (S.isFreeFunction(K.SyclKernel)) {
6984+
CurStart += N;
6985+
continue;
6986+
}
69836987
PresumedLoc PLoc = S.getASTContext().getSourceManager().getPresumedLoc(
69846988
S.getASTContext()
69856989
.getSourceManager()

clang/test/CodeGenSYCL/free_function_int_header_rtc_mode.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,9 @@ int main(){
4444
// CHECK-NEXT: "{{.*}}__sycl_kernel_free_function_nd_rangePiii",
4545
// CHECK-NEXT: "{{.*}}Kernel_Function",
4646

47-
48-
// CHECK: static constexpr const char* getName() { return "{{.*}}__sycl_kernel_free_function_singlePiii"; }
49-
// CHECK: static constexpr const char* getName() { return "{{.*}}__sycl_kernel_free_function_nd_rangePiii"; }
50-
// CHECK: static constexpr const char* getName() { return "{{.*}}Kernel_Function"; }
47+
// CHECK: _Z34__sycl_kernel_free_function_singlePiii
48+
// CHECK: _Z36__sycl_kernel_free_function_nd_rangePiii
49+
// CHECK: _ZTSZ4mainE15Kernel_Function
5150

5251
// CHECK-RTC-NOT: free_function_single_kernel
5352
// CHECK-RTC-NOT: free_function_nd_range

devops/actions/run-tests/e2e/action.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,31 @@ runs:
6060
run: |
6161
cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DCMAKE_CXX_COMPILER="${{ inputs.sycl_compiler || '$(which clang++)'}}" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }}
6262
- name: SYCL End-to-end tests
63-
shell: bash {0}
63+
id: run_e2e
64+
continue-on-error: true
65+
shell: bash
6466
env:
6567
LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True --param test-mode=${{ inputs.testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }}
6668
run: |
6769
ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1
68-
exit_code=$?
70+
# Two steps below are duplicated between Lin/Win actions, updates must change both
71+
- name: E2E logs
72+
if: ${{ always() }}
73+
shell: bash
74+
run: |
75+
echo "::group::Show Full E2E Log"
6976
cat e2e.log
70-
if [ $exit_code -ne 0 ]; then
71-
# This is duplicated between lin/win, updates must change both.
77+
echo "::endgroup::"
78+
- name: Report E2E Failures
79+
if: steps.run_e2e.outcome != 'success'
80+
shell: bash
81+
# For some reason Github uses the first line from the `run: |` section for
82+
# the folded entry when displaying instead of this step's name.
83+
run: |
84+
# Report E2E Failures
7285
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log >> $GITHUB_STEP_SUMMARY
73-
fi
74-
exit $exit_code
86+
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log
87+
exit 1
7588
7689
- name: Pack E2E binaries
7790
if: ${{ always() && !cancelled() && inputs.binaries_artifact != '' && inputs.testing_mode != 'run-only'}}

devops/actions/run-tests/windows/e2e/action.yml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,31 @@ runs:
7272
run: ls build-e2e > e2econf_files.txt
7373

7474
- name: Run End-to-End tests
75-
shell: bash {0}
75+
id: run_e2e
76+
continue-on-error: true
77+
shell: bash
7678
env:
7779
LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time ${{ inputs.e2e_testing_mode == 'run-only' && 1200 || 3600 }} --time-tests --param print_features=True --param test-mode=${{ inputs.testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }}
7880
run: |
79-
# Run E2E tests.
8081
cmake --build build-e2e --target check-sycl-e2e > e2e.log 2>&1
81-
82-
exit_code=$?
82+
# Two steps below are duplicated between Lin/Win actions, updates must change both
83+
- name: E2E logs
84+
if: ${{ always() }}
85+
shell: bash
86+
run: |
87+
echo "::group::Show Full E2E Log"
8388
cat e2e.log
84-
if [ $exit_code -ne 0 ]; then
85-
# This is duplicated between lin/win, updates must change both.
89+
echo "::endgroup::"
90+
- name: Report E2E Failures
91+
if: steps.run_e2e.outcome != 'success'
92+
shell: bash
93+
# For some reason Github uses the first line from the `run: |` section for
94+
# the folded entry when displaying instead of this step's name.
95+
run: |
96+
# Report E2E Failures
8697
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log >> $GITHUB_STEP_SUMMARY
87-
fi
88-
exit $exit_code
98+
awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log
99+
exit 1
89100
90101
# Github CI doesn't support containers on Windows, so we cannot guarantee
91102
# that paths are the same between building and running systems. To avoid

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

0 commit comments

Comments
 (0)