Skip to content

Commit 623630a

Browse files
committed
Merge remote-tracking branch 'intel_llvm/sycl' into public_vklochkov_reduction_N_vars_perf
2 parents 205c124 + 0c7bd24 commit 623630a

File tree

38 files changed

+942
-480
lines changed

38 files changed

+942
-480
lines changed

.github/workflows/linux_post_commit.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ jobs:
2929
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
3030
sudo add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main"
3131
sudo apt-get update
32-
sudo apt-get install -y clang-12
32+
sudo apt-get install -y clang-13
3333
export ARGS="--shared-libs"
34-
export CC="clang-12"
35-
export CXX="clang++-12"
34+
export CC="clang-13"
35+
export CXX="clang++-13"
3636
;;
3737
NoAssertions)
3838
export ARGS="--no-assertions"

CONTRIBUTING.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,63 @@ see [ABI Policy Guide](sycl/doc/ABIPolicyGuide.md) for more information.
5454
- Run regression tests -
5555
[instructions](sycl/doc/GetStartedGuide.md#test-dpc-toolchain).
5656

57+
### Tests development
58+
59+
Every product change should be accompanied with corresponding test modification
60+
(adding new test(s), extending, removing or modifying existing test(s)).
61+
62+
There are 3 types of tests which are used for DPC++ toolchain validation:
63+
* DPC++ in-tree LIT tests including [check-llvm](../../llvm/test),
64+
[check-clang](../../clang/test), [check-llvm-spirv](../../llvm-spirv/test) and
65+
[check-sycl](../../sycl/test) targets stored in this repository. These tests
66+
should not have hardware (e.g. GPU, FPGA, etc.) or external software
67+
dependencies (e.g. OpenCL, Level Zero, CUDA runtimes). All tests not following
68+
this approach should be moved to DPC++ end-to-end or SYCL-CTS tests.
69+
However, the tests for a feature under active development requiring atomic
70+
change for tests and product can be put to
71+
[sycl/test/on-device](../../sycl/test/on-device) temporarily. It is developer
72+
responsibility to move the tests to DPC++ E2E test suite or SYCL-CTS once
73+
the feature is stabilized.
74+
75+
**Guidelines for adding DPC++ in-tree LIT tests (DPC++ Clang FE tests)**:
76+
- Use `sycl::` namespace instead of `cl::sycl::`
77+
78+
- Include sycl mock headers as system headers.
79+
Example: `-internal-isystem %S/Inputs`
80+
`#include "sycl.hpp"`
81+
82+
- Use SYCL functions for invoking kernels from the mock header `(single_task, parallel_for, parallel_for_work_group)`
83+
Example:
84+
```bash
85+
`#include "Inputs/sycl.hpp"`
86+
sycl::queue q;
87+
q.submit([&](cl::sycl::handler &h) {
88+
h.single_task( { //code });
89+
});
90+
```
91+
92+
- Add a helpful comment describing what the test does at the beginning and other comments throughout the test as necessary.
93+
94+
- Try to follow descriptive naming convention for variables, functions as much as possible.
95+
Please refer [LLVM naming convention](https://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly)
96+
97+
* DPC++ end-to-end (E2E) tests which are extension to
98+
[LLVM\* test suite](https://github.com/intel/llvm-test-suite/tree/intel/SYCL).
99+
A test which requires full stack including backend runtimes (e.g. OpenCL,
100+
Level Zero or CUDA) should be put to DPC++ E2E test suite following
101+
[CONTRIBUTING](https://github.com/intel/llvm-test-suite/blob/intel/CONTRIBUTING.md).
102+
103+
* SYCL-CTS are official
104+
[Khronos\* SYCL\* conformance tests](https://github.com/KhronosGroup/SYCL-CTS).
105+
They verify SYCL specification compatibility. All implementation details or
106+
extensions are out of scope for the tests. If SYCL specification has changed
107+
(SYCL CTS tests conflict with recent version of SYCL specification) or change
108+
is required in the way the tests are built with DPC++ compiler (defined in
109+
[FindIntel_SYCL](https://github.com/KhronosGroup/SYCL-CTS/blob/SYCL-1.2.1/master/cmake/FindIntel_SYCL.cmake))
110+
pull request should be created under
111+
[KhronosGroup/SYCL-CTS](https://github.com/KhronosGroup/SYCL-CTS) with required
112+
patch.
113+
57114
### Commit message
58115
59116
- When writing your commit message, please make sure to follow

buildbot/dependency.conf

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ ocl_cpu_rt_ver=2020.11.11.0.04
44
# https://github.com/intel/llvm/releases/download/2020-WW45/win-oclcpuexp-2020.11.11.0.04_rel.zip
55
ocl_cpu_rt_ver_win=2020.11.11.0.04
66
# Same GPU driver supports Level Zero and OpenCL
7-
# https://github.com/intel/compute-runtime/releases/tag/21.03.18857
8-
ocl_gpu_rt_ver=21.03.18857
7+
# https://github.com/intel/compute-runtime/releases/tag/21.04.18912
8+
ocl_gpu_rt_ver=21.04.18912
99
# Same GPU driver supports Level Zero and OpenCL
10-
# https://downloadmirror.intel.com/30066/a08/igfx_win10_100.9030.zip
11-
ocl_gpu_rt_ver_win=27.20.100.9030
10+
# https://downloadmirror.intel.com/30148/a08/igfx_win10_100.9168.zip
11+
ocl_gpu_rt_ver_win=27.20.100.9168
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=2020.11.11.0.04
2525
ocl_fpga_emu_ver_win=2020.11.11.0.04
2626
fpga_ver=20201021_000005
2727
fpga_ver_win=20201022_000005
28-
ocloc_ver_win=27.20.100.8935
28+
ocloc_ver_win=27.20.100.9168
2929

3030
[DRIVER VERSIONS]
3131
cpu_driver_lin=2020.11.11.0.04
3232
cpu_driver_win=2020.11.11.0.04
33-
gpu_driver_lin=21.03.18857
34-
gpu_driver_win=27.20.100.9030
33+
gpu_driver_lin=21.04.18912
34+
gpu_driver_win=27.20.100.9168
3535
fpga_driver_lin=2020.11.11.0.04
3636
fpga_driver_win=2020.11.11.0.04
3737
# NVidia CUDA driver

clang/include/clang/Basic/Attr.td

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,11 +1272,6 @@ def SYCLIntelUseStallEnableClusters : InheritableAttr {
12721272
let Spellings = [CXX11<"intel","use_stall_enable_clusters">];
12731273
let LangOpts = [SYCLIsHost, SYCLIsDevice];
12741274
let Subjects = SubjectList<[Function], ErrorDiag>;
1275-
let AdditionalMembers = [{
1276-
static const char *getName() {
1277-
return "stall_enable";
1278-
}
1279-
}];
12801275
let Documentation = [SYCLIntelUseStallEnableClustersAttrDocs];
12811276
}
12821277

@@ -1394,9 +1389,6 @@ def LoopUnrollHint : InheritableAttr {
13941389
let LangOpts = [SYCLIsDevice, SYCLIsHost];
13951390
let HasCustomTypeTransform = 1;
13961391
let AdditionalMembers = [{
1397-
static const char *getName() {
1398-
return "loop_unroll";
1399-
}
14001392
std::string getDiagnosticName(const PrintingPolicy &Policy) const {
14011393
std::string ValueName;
14021394
llvm::raw_string_ostream OS(ValueName);
@@ -1820,9 +1812,6 @@ def SYCLIntelFPGAIVDep : Attr {
18201812
let LangOpts = [SYCLIsDevice, SYCLIsHost];
18211813
let HasCustomTypeTransform = 1;
18221814
let AdditionalMembers = [{
1823-
static const char *getName() {
1824-
return "ivdep";
1825-
}
18261815
bool isDependent() const {
18271816
return (getSafelenExpr() &&
18281817
getSafelenExpr()->isInstantiationDependent()) ||
@@ -1863,11 +1852,6 @@ def SYCLIntelFPGAII : Attr {
18631852
let Args = [ExprArgument<"IntervalExpr">];
18641853
let LangOpts = [SYCLIsDevice, SYCLIsHost];
18651854
let HasCustomTypeTransform = 1;
1866-
let AdditionalMembers = [{
1867-
static const char *getName() {
1868-
return "ii";
1869-
}
1870-
}];
18711855
let Documentation = [SYCLIntelFPGAIIAttrDocs];
18721856
}
18731857

@@ -1877,11 +1861,6 @@ def SYCLIntelFPGAMaxConcurrency : Attr {
18771861
let Args = [ExprArgument<"NThreadsExpr">];
18781862
let LangOpts = [SYCLIsDevice, SYCLIsHost];
18791863
let HasCustomTypeTransform = 1;
1880-
let AdditionalMembers = [{
1881-
static const char *getName() {
1882-
return "max_concurrency";
1883-
}
1884-
}];
18851864
let Documentation = [SYCLIntelFPGAMaxConcurrencyAttrDocs];
18861865
}
18871866

@@ -1891,11 +1870,6 @@ def SYCLIntelFPGALoopCoalesce : Attr {
18911870
let Args = [ExprArgument<"NExpr">];
18921871
let LangOpts = [SYCLIsDevice, SYCLIsHost];
18931872
let HasCustomTypeTransform = 1;
1894-
let AdditionalMembers = [{
1895-
static const char *getName() {
1896-
return "loop_coalesce";
1897-
}
1898-
}];
18991873
let Documentation = [SYCLIntelFPGALoopCoalesceAttrDocs];
19001874
}
19011875

@@ -1904,11 +1878,6 @@ def SYCLIntelFPGADisableLoopPipelining : Attr {
19041878
CXX11<"intel","disable_loop_pipelining">];
19051879
let LangOpts = [SYCLIsDevice, SYCLIsHost];
19061880
let HasCustomTypeTransform = 1;
1907-
let AdditionalMembers = [{
1908-
static const char *getName() {
1909-
return "disable_loop_pipelining";
1910-
}
1911-
}];
19121881
let Documentation = [SYCLIntelFPGADisableLoopPipeliningAttrDocs];
19131882
}
19141883

@@ -1918,11 +1887,6 @@ def SYCLIntelFPGAMaxInterleaving : Attr {
19181887
let Args = [ExprArgument<"NExpr">];
19191888
let LangOpts = [SYCLIsDevice, SYCLIsHost];
19201889
let HasCustomTypeTransform = 1;
1921-
let AdditionalMembers = [{
1922-
static const char *getName() {
1923-
return "max_interleaving";
1924-
}
1925-
}];
19261890
let Documentation = [SYCLIntelFPGAMaxInterleavingAttrDocs];
19271891
}
19281892

@@ -1932,23 +1896,13 @@ def SYCLIntelFPGASpeculatedIterations : Attr {
19321896
let Args = [ExprArgument<"NExpr">];
19331897
let LangOpts = [SYCLIsDevice, SYCLIsHost];
19341898
let HasCustomTypeTransform = 1;
1935-
let AdditionalMembers = [{
1936-
static const char *getName() {
1937-
return "speculated_iterations";
1938-
}
1939-
}];
19401899
let Documentation = [SYCLIntelFPGASpeculatedIterationsAttrDocs];
19411900
}
19421901

19431902
def SYCLIntelFPGANofusion : Attr {
19441903
let Spellings = [CXX11<"intel","nofusion">];
19451904
let LangOpts = [SYCLIsDevice, SYCLIsHost];
19461905
let HasCustomTypeTransform = 1;
1947-
let AdditionalMembers = [{
1948-
static const char *getName() {
1949-
return "nofusion";
1950-
}
1951-
}];
19521906
let Documentation = [SYCLIntelFPGANofusionAttrDocs];
19531907
}
19541908

0 commit comments

Comments
 (0)