Skip to content

Commit 29755dc

Browse files
Merge remote-tracking branch 'whitneywhtsang/merge' into sycl-mlir
2 parents 54deb09 + 06a4c82 commit 29755dc

File tree

15 files changed

+602
-179
lines changed

15 files changed

+602
-179
lines changed

.github/workflows/sycl_containers.yaml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,10 @@ jobs:
190190
id: deps
191191
run: |
192192
DEPS=`cat devops/dependencies.json`
193-
DEPS="${DEPS//'%'/'%25'}"
194-
DEPS="${DEPS//$'\n'/'%0A'}"
195-
DEPS="${DEPS//$'\r'/'%0D'}"
193+
DEPS="${DEPS//$'\r'/''}"
194+
DEPS="${DEPS//$'\n'/' '}"
196195
echo $DEPS
197-
echo "::set-output name=deps::$DEPS"
196+
echo "deps=$DEPS" >>$GITHUB_OUTPUT
198197
- name: Build and Push Container
199198
uses: ./devops/actions/build_container
200199
with:
@@ -228,11 +227,10 @@ jobs:
228227
id: deps
229228
run: |
230229
DEPS=`cat devops/dependencies.json`
231-
DEPS="${DEPS//'%'/'%25'}"
232-
DEPS="${DEPS//$'\n'/'%0A'}"
233-
DEPS="${DEPS//$'\r'/'%0D'}"
230+
DEPS="${DEPS//$'\r'/''}"
231+
DEPS="${DEPS//$'\n'/' '}"
234232
echo $DEPS
235-
echo "::set-output name=deps::$DEPS"
233+
echo "deps=$DEPS" >>$GITHUB_OUTPUT
236234
- name: Build and Push Container
237235
uses: ./devops/actions/build_container
238236
with:

.github/workflows/sycl_nightly.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
pull_request:
88
paths:
99
- 'devops/containers/ubuntu2004_preinstalled.Dockerfile'
10+
- 'devops/containers/ubuntu2204_preinstalled.Dockerfile'
1011
- '.github/workflows/sycl_nightly.yml'
1112

1213
jobs:
@@ -26,6 +27,17 @@ jobs:
2627
build_artifact_suffix: default
2728
build_configure_extra_args: ''
2829

30+
ubuntu2204_build_test:
31+
if: github.repository == 'intel/llvm'
32+
uses: ./.github/workflows/sycl_linux_build_and_test.yml
33+
needs: test_matrix
34+
secrets: inherit
35+
with:
36+
build_cache_root: "/__w/"
37+
build_artifact_suffix: default
38+
build_configure_extra_args: ''
39+
build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
40+
2941
ubuntu2004_opaque_pointers_build_test:
3042
if: github.repository == 'intel/llvm'
3143
uses: ./.github/workflows/sycl_linux_build_and_test.yml
@@ -37,6 +49,18 @@ jobs:
3749
build_artifact_suffix: opaque_pointers
3850
build_configure_extra_args: "--hip --cuda --enable-esimd-emulator --cmake-opt=-DDPCPP_ENABLE_OPAQUE_POINTERS=TRUE"
3951

52+
ubuntu2204_opaque_pointers_build_test:
53+
if: github.repository == 'intel/llvm'
54+
uses: ./.github/workflows/sycl_linux_build_and_test.yml
55+
needs: test_matrix
56+
secrets: inherit
57+
with:
58+
build_cache_root: "/__w/"
59+
build_cache_suffix: opaque_pointers
60+
build_artifact_suffix: opaque_pointers
61+
build_configure_extra_args: "--hip --cuda --enable-esimd-emulator --cmake-opt=-DDPCPP_ENABLE_OPAQUE_POINTERS=TRUE"
62+
build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
63+
4064
windows_default:
4165
name: Windows
4266
if: github.repository == 'intel/llvm'
@@ -78,3 +102,40 @@ jobs:
78102
tags: |
79103
ghcr.io/${{ github.repository }}/sycl_ubuntu2004_nightly:no-drivers-${{ github.sha }}
80104
ghcr.io/${{ github.repository }}/sycl_ubuntu2004_nightly:no-drivers
105+
106+
ubuntu2204_docker_build_push:
107+
if: github.repository == 'intel/llvm'
108+
runs-on: ubuntu-latest
109+
needs: ubuntu2204_build_test
110+
steps:
111+
- uses: actions/checkout@v3
112+
- uses: actions/download-artifact@v3
113+
with:
114+
name: sycl_linux_default
115+
path: devops/
116+
- name: Build and Push Container (with drivers)
117+
uses: ./devops/actions/build_container
118+
with:
119+
push: ${{ github.event_name != 'pull_request' }}
120+
file: ubuntu2204_preinstalled
121+
username: ${{ github.repository_owner }}
122+
password: ${{ secrets.GITHUB_TOKEN }}
123+
build-args: |
124+
base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
125+
base_tag=latest
126+
tags: |
127+
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:${{ github.sha }}
128+
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:latest
129+
- name: Build and Push Container (no drivers)
130+
uses: ./devops/actions/build_container
131+
with:
132+
push: ${{ github.event_name != 'pull_request' }}
133+
file: ubuntu2204_preinstalled
134+
username: ${{ github.repository_owner }}
135+
password: ${{ secrets.GITHUB_TOKEN }}
136+
build-args: |
137+
base_image=ghcr.io/intel/llvm/ubuntu2204_base
138+
base_tag=latest
139+
tags: |
140+
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers-${{ github.sha }}
141+
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers

.github/workflows/sycl_precommit.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ on:
1111
- '.github/CODEOWNERS'
1212
- '.github/workflows/sycl_update_gpu_driver.yml'
1313
- '.github/workflows/sycl_containers.yaml'
14+
- '.github/workflows/sycl_nightly.yml'
15+
- '.github/workflows/sycl_post_commit.yml'
1416
- '.github/workflows/sycl_windows_build_and_test.yml'
1517
- '.github/workflows/sycl_macos_build_and_test.yml'
1618
- 'devops/containers/**'
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ARG base_tag=latest
2+
ARG base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
3+
4+
FROM $base_image:$base_tag
5+
6+
COPY scripts/drivers_entrypoint.sh /drivers_entrypoint.sh
7+
RUN mkdir -p /opt/sycl
8+
ADD llvm_sycl.tar.xz /opt/sycl
9+
10+
ENV PATH /opt/sycl/bin:$PATH
11+
ENV LD_LIBRARY_PATH /opt/sycl/lib:$LD_LIBRARY_PATH
12+
13+
ENTRYPOINT ["/bin/bash", "/drivers_entrypoint.sh"]
14+

libclc/ptx-nvidiacl/libspirv/atomic/atomic_helpers.h

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -72,62 +72,62 @@ _CLC_OVERLOAD _CLC_DECL void __spirv_MemoryBarrier(unsigned int, unsigned int);
7272
} \
7373
}
7474

75-
#define __CLC_NVVM_ATOMIC_IMPL(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, \
76-
OP, NAME_MANGLED, ADDR_SPACE, \
77-
ADDR_SPACE_MANGLED, ADDR_SPACE_NV) \
78-
_CLC_DECL TYPE \
79-
NAME_MANGLED##PU3##ADDR_SPACE_MANGLED##TYPE_MANGLED##N5__spv5Scope4FlagENS1_19MemorySemanticsMask4FlagE##TYPE_MANGLED( \
80-
volatile ADDR_SPACE TYPE *pointer, enum Scope scope, \
81-
enum MemorySemanticsMask semantics, TYPE value) { \
82-
/* Semantics mask may include memory order, storage class and other info \
83-
Memory order is stored in the lowest 5 bits */ \
84-
unsigned int order = semantics & 0x1F; \
85-
switch (order) { \
86-
case None: \
87-
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
88-
ADDR_SPACE, ADDR_SPACE_NV, ) \
89-
break; \
90-
case Acquire: \
91-
if (__clc_nvvm_reflect_arch() >= 700) { \
92-
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
93-
ADDR_SPACE, ADDR_SPACE_NV, _acquire) \
94-
} else { \
95-
__CLC_NVVM_ATOMIC_IMPL_ACQUIRE_FENCE(TYPE, TYPE_NV, TYPE_MANGLED_NV, \
96-
OP, ADDR_SPACE, ADDR_SPACE_NV) \
97-
} \
98-
break; \
99-
case Release: \
100-
if (__clc_nvvm_reflect_arch() >= 700) { \
101-
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
102-
ADDR_SPACE, ADDR_SPACE_NV, _release) \
103-
} else { \
104-
__spirv_MemoryBarrier(scope, Release); \
105-
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
106-
ADDR_SPACE, ADDR_SPACE_NV, ) \
107-
} \
108-
break; \
109-
case AcquireRelease: \
110-
if (__clc_nvvm_reflect_arch() >= 700) { \
111-
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
112-
ADDR_SPACE, ADDR_SPACE_NV, _acq_rel) \
113-
} else { \
114-
__spirv_MemoryBarrier(scope, Release); \
115-
__CLC_NVVM_ATOMIC_IMPL_ACQUIRE_FENCE(TYPE, TYPE_NV, TYPE_MANGLED_NV, \
116-
OP, ADDR_SPACE, ADDR_SPACE_NV) \
117-
} \
118-
break; \
119-
} \
120-
__builtin_trap(); \
121-
__builtin_unreachable(); \
75+
#define __CLC_NVVM_ATOMIC_IMPL( \
76+
TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, NAME_MANGLED, \
77+
ADDR_SPACE, POINTER_AND_ADDR_SPACE_MANGLED, ADDR_SPACE_NV, SUBSTITUTION) \
78+
__attribute__((always_inline)) _CLC_DECL TYPE \
79+
NAME_MANGLED##POINTER_AND_ADDR_SPACE_MANGLED##TYPE_MANGLED##N5__spv\
80+
5Scope4FlagENS##SUBSTITUTION##_19MemorySemanticsMask4FlagE##TYPE_MANGLED( \
81+
volatile ADDR_SPACE TYPE *pointer, enum Scope scope, \
82+
enum MemorySemanticsMask semantics, TYPE value) { \
83+
/* Semantics mask may include memory order, storage class and other info \
84+
Memory order is stored in the lowest 5 bits */ \
85+
unsigned int order = semantics & 0x1F; \
86+
switch (order) { \
87+
case None: \
88+
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
89+
ADDR_SPACE, ADDR_SPACE_NV, ) \
90+
break; \
91+
case Acquire: \
92+
if (__clc_nvvm_reflect_arch() >= 700) { \
93+
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
94+
ADDR_SPACE, ADDR_SPACE_NV, _acquire) \
95+
} else { \
96+
__CLC_NVVM_ATOMIC_IMPL_ACQUIRE_FENCE(TYPE, TYPE_NV, TYPE_MANGLED_NV, \
97+
OP, ADDR_SPACE, ADDR_SPACE_NV) \
98+
} \
99+
break; \
100+
case Release: \
101+
if (__clc_nvvm_reflect_arch() >= 700) { \
102+
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
103+
ADDR_SPACE, ADDR_SPACE_NV, _release) \
104+
} else { \
105+
__spirv_MemoryBarrier(scope, Release); \
106+
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
107+
ADDR_SPACE, ADDR_SPACE_NV, ) \
108+
} \
109+
break; \
110+
case AcquireRelease: \
111+
if (__clc_nvvm_reflect_arch() >= 700) { \
112+
__CLC_NVVM_ATOMIC_IMPL_ORDER(TYPE, TYPE_NV, TYPE_MANGLED_NV, OP, \
113+
ADDR_SPACE, ADDR_SPACE_NV, _acq_rel) \
114+
} else { \
115+
__spirv_MemoryBarrier(scope, Release); \
116+
__CLC_NVVM_ATOMIC_IMPL_ACQUIRE_FENCE(TYPE, TYPE_NV, TYPE_MANGLED_NV, \
117+
OP, ADDR_SPACE, ADDR_SPACE_NV) \
118+
} \
119+
break; \
120+
} \
121+
__builtin_trap(); \
122+
__builtin_unreachable(); \
122123
}
123124

124125
#define __CLC_NVVM_ATOMIC(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, \
125126
NAME_MANGLED) \
126-
__attribute__((always_inline)) \
127127
__CLC_NVVM_ATOMIC_IMPL(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, \
128-
NAME_MANGLED, __global, AS1, _global_) \
129-
__attribute__((always_inline)) \
130-
__CLC_NVVM_ATOMIC_IMPL(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, \
131-
NAME_MANGLED, __local, AS3, _shared_)
132-
128+
NAME_MANGLED, __global, PU3AS1, _global_, 1) \
129+
__CLC_NVVM_ATOMIC_IMPL(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, \
130+
NAME_MANGLED, __local, PU3AS3, _shared_, 1) \
131+
__CLC_NVVM_ATOMIC_IMPL(TYPE, TYPE_MANGLED, TYPE_NV, TYPE_MANGLED_NV, OP, \
132+
NAME_MANGLED, , P, _gen_, 0)
133133
#endif

sycl/doc/GetStartedGuide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@ cmake_minimum_required(VERSION 3.14)
735735
set(CMAKE_CXX_COMPILER "clang++")
736736
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl")
737737
738-
project(simple-sycl-app)
738+
project(simple-sycl-app LANGUAGES CXX)
739739
740740
add_executable(simple-sycl-app simple-sycl-app.cpp)
741741
```

sycl/include/sycl/info/info_desc.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ namespace device {
9898
#include <sycl/info/device_traits_deprecated.def>
9999
#undef __SYCL_PARAM_TRAITS_DEPRECATED
100100

101-
template <int Dimensions> struct max_work_item_sizes;
101+
template <int Dimensions = 3> struct max_work_item_sizes;
102102
#define __SYCL_PARAM_TRAITS_TEMPLATE_SPEC(DescType, Desc, ReturnT, PiCode) \
103103
template <> struct Desc { \
104104
using return_type = ReturnT; \

0 commit comments

Comments
 (0)