Skip to content

Commit e1cdb12

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web'
2 parents 23bd79d + 934f73a commit e1cdb12

34 files changed

+1363
-795
lines changed

buildbot/dependency.conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ ocl_cpu_rt_ver_win=2021.13.11.0.23
77
# https://github.com/intel/compute-runtime/releases/tag/21.46.21636
88
ocl_gpu_rt_ver=21.46.21636
99
# Same GPU driver supports Level Zero and OpenCL
10-
# https://downloadmirror.intel.com/685037/igfx_win_101.1069.zip
11-
ocl_gpu_rt_ver_win=30.0.101.1069
10+
# https://downloadmirror.intel.com/691496/igfx_win_101.1191.zip
11+
ocl_gpu_rt_ver_win=101.1191
1212
intel_sycl_ver=build
1313

1414
# TBB binaries can be built from sources following instructions under
@@ -25,13 +25,13 @@ ocl_fpga_emu_ver=2021.13.11.0.23
2525
ocl_fpga_emu_ver_win=2021.13.11.0.23
2626
fpga_ver=20211014_000004
2727
fpga_ver_win=20211014_000004
28-
ocloc_ver_win=27.20.100.9168
28+
ocloc_ver_win=101.1191
2929

3030
[DRIVER VERSIONS]
3131
cpu_driver_lin=2021.13.11.0.23
3232
cpu_driver_win=2021.13.11.0.23
3333
gpu_driver_lin=21.46.21636
34-
gpu_driver_win=30.0.101.1069
34+
gpu_driver_win=101.1191
3535
fpga_driver_lin=2021.13.11.0.23
3636
fpga_driver_win=2021.13.11.0.23
3737
# NVidia CUDA driver

clang/lib/Basic/Targets/AMDGPU.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
328328
case OCLTK_Queue:
329329
case OCLTK_ReserveID:
330330
return LangAS::opencl_global;
331+
case OCLTK_Event:
332+
return LangAS::opencl_private;
331333

332334
default:
333335
return TargetInfo::getOpenCLTypeAddrSpace(TK);

devops/scripts/install_build_tools.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ apt update && apt install -yqq \
1212
python3-pip \
1313
zstd \
1414
ocl-icd-libopencl1 \
15-
vim
15+
vim \
16+
libffi-dev \
17+
libva-dev \
18+
libtool
1619

1720
pip3 install psutil
1821

libclc/amdgcn-amdhsa/libspirv/SOURCES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,4 @@ workitem/get_sub_group_id.cl
5656
workitem/get_sub_group_local_id.cl
5757
workitem/get_sub_group_size.cl
5858
misc/sub_group_shuffle.cl
59+
async/wait_group_events.cl
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#include <spirv/spirv.h>
10+
11+
_CLC_DEF void _Z23__spirv_GroupWaitEventsjiP9ocl_event(unsigned int scope,
12+
int num_events,
13+
event_t __attribute__((address_space(0)))* event_list) {
14+
__spirv_ControlBarrier(scope, Workgroup, SequentiallyConsistent);
15+
}
16+
17+
_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(unsigned int scope,
18+
int num_events,
19+
event_t *event_list) {
20+
__spirv_ControlBarrier(scope, Workgroup, SequentiallyConsistent);
21+
}
22+
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
SPV_INTEL_debug_module
2+
======================
3+
4+
Name Strings
5+
------------
6+
7+
SPV_INTEL_debug_module
8+
9+
Contact
10+
-------
11+
12+
To report problems with this extension, please open a new issue at:
13+
14+
https://github.com/intel/llvm
15+
16+
Contributors
17+
------------
18+
19+
- Mariya Podchishchaeva, Intel
20+
- Alexey Sotkin, Intel
21+
- Ashbaugh Ben, Intel
22+
23+
Notice
24+
------
25+
26+
Copyright (c) 2021 Intel Corporation. All rights reserved.
27+
28+
Status
29+
------
30+
31+
First draft
32+
33+
Version
34+
-------
35+
36+
[width="40%",cols="25,25"]
37+
|========================================
38+
| Last Modified Date | 2021-06-22
39+
| Revision | 3
40+
|========================================
41+
42+
Dependencies
43+
------------
44+
45+
This extension is written against the SPIR-V Specification,
46+
Version 1.5 Revision 5, Unified
47+
48+
This extension requires SPIR-V 1.0. and OpenCL.DebugInfo.100 Extended
49+
Instruction Set
50+
51+
Overview
52+
--------
53+
54+
This extension adds new instruction `DebugModuleINTEL` to OpenCL.DebugInfo.100
55+
Extended Instruction Set. This instruction allows to represent concept of a
56+
"module" used in some programming languages.
57+
Example - Fortran module or Clang module. The proposed instruction is defined in
58+
accordance with LLVM `!DIModule` metadata for easier translation between
59+
SPIR-V/LLVM.
60+
61+
Extension Name
62+
--------------
63+
64+
To use this extension within a SPIR-V module, the following
65+
*OpExtension* must be present in the module:
66+
67+
----
68+
OpExtension "SPV_INTEL_debug_module"
69+
----
70+
71+
New Capabilities
72+
----------------
73+
This extension introduces a new capability:
74+
75+
----
76+
DebugInfoModuleINTEL
77+
----
78+
79+
New Instructions
80+
----------------
81+
This extension adds the following extended instruction:
82+
83+
----
84+
DebugModuleINTEL
85+
----
86+
87+
Token Number Assignments
88+
------------------------
89+
[width="45%",cols="30,15"]
90+
|===============================
91+
| DebugInfoModuleINTEL | 6114
92+
| DebugModuleINTEL | 36
93+
|===============================
94+
95+
Modifications to the SPIR-V Specification, Version 1.5, Revision, Unified
96+
--------------------------------------------------------------------------
97+
98+
Capabilities
99+
~~~~~~~~~~~~
100+
101+
Modify Section 3.31, "Capability", adding these rows to the Capability table:
102+
103+
--
104+
[options="header"]
105+
|====
106+
2+^| Capability ^| Implicitly Declares
107+
| 6114 | *DebugInfoModuleINTEL* +
108+
Allow to use `DebugModuleINTEL` extended instruction if OpenCL.DebugInfo.100 Extended Instruction Set is imported |
109+
|====
110+
--
111+
112+
Modifications to the OpenCL.DebugInfo.100 Extended Instruction Set
113+
------------------------------------------------------------------
114+
115+
Instructions
116+
~~~~~~~~~~~
117+
118+
Modify section 4.10 "Imported Entities", adding the following instruction:
119+
120+
[cols="14", width="100%"]
121+
|=====
122+
13+^|*DebugModuleINTEL* +
123+
124+
Represents a module in the programming language, for example a Fortran module. +
125+
126+
_Result Type_ must be *OpTypeVoid* +
127+
128+
_Set_ must be result of an OpExtInstImport instruction. +
129+
130+
_Name_ is an *OpString*, holding the name of the imported module. +
131+
132+
_Source_ is a *DebugSource* instruction representing text of the source program
133+
of the module. +
134+
135+
_Line_ is a single word literal denoting the source line number at which the
136+
declaration or use of a module appears in the _Source_. +
137+
138+
_Parent_ is id of a debug instruction which represents the parent lexical scope. +
139+
140+
_ConfigurationMacros_ is an *OpString*, holding space-separated shell-quoted
141+
list of -D macro definitions as they would appear on a command line specified
142+
to a preprocessor on early stages of _Source_ translation to a SPIR-V module. +
143+
144+
_IncludePath_ is an *OpString*, holding the path to the module map file. +
145+
146+
_APINotesFile_ is an *OpString*, holding the path to an API notes file for this
147+
module. +
148+
149+
_IsDecl_ indicates if the module is a declaration and must be one of the
150+
following values: +
151+
0 indicates that this module is not a declaration +
152+
1 indicates that this module is a declaration +
153+
154+
The *DebugModuleINTEL* instruction has no semantic impact and can be safely
155+
removed from the module if all references to _Result_ of this instruction are
156+
replaced with id of *DebugInfoNone* instruction. +
157+
158+
Result of this instruction can be used as _Entity_ operand of
159+
*DebugImportedEntity* instruction. +
160+
161+
Any non-literal operand, except _Set_, can be _id_ of *DebugInfoNone*
162+
instruction in case the corresponding debug information is unavailable. String
163+
operands can also refer to an *OpString*, holding an empty string in this
164+
case.
165+
166+
| Capability:
167+
*DebugInfoModuleINTEL*
168+
169+
| 13 | 12 | _<id> Result type_ | _Result <id>_ | _<id> Set_ | 36 | _<id> Name_ | _<id> Source_ | _Literal Number Line_ | _<id> Parent_ | _<id> ConfigurationMacros_ | _<id> IncludePath_ | _<id> APINotesFile_ | _Literal IsDeclaration_ |
170+
|=====
171+
172+
Modify the description of *DebugImportedEntity* instruction by changing the
173+
first sentence to:
174+
Represents a C++ namespace using-directive, namespace alias, using-declaration
175+
or imported module.
176+
177+
In section 4.5. Global Variables of OpenCL.DebugInfo.100 Extended
178+
Instruction Set specification:
179+
180+
Modify the description of *DebugGlobalVariable* instruction by changing the
181+
description of _Parent_ operand to:
182+
Parent is a debug instruction which represents parent lexical scope. Must be one
183+
of the following: *DebugCompilationUnit*, *DebugFunction*, *DebugLexicalBlock*,
184+
*DebugTypeComposite* or *DebugModuleINTEL*.
185+
186+
Issues
187+
------
188+
189+
1) Any issues?
190+
191+
Discussion:
192+
193+
...
194+
195+
Revision History
196+
----------------
197+
198+
[cols="5,15,15,70"]
199+
[grid="rows"]
200+
[options="header"]
201+
|========================================
202+
|Rev|Date|Author|Changes
203+
|1|2021-06-04|Mariya Podchishchaeva|Initial revision
204+
|2|2021-06-10|Mariya Podchishchaeva|Apply review Feedback
205+
|3|2021-06-22|Mariya Podchishchaeva|Apply review Feedback
206+
|========================================

0 commit comments

Comments
 (0)