Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM and SPIRV-LLVM-Translator pulldown (WW25) #10311

Closed
wants to merge 116 commits into from
Closed

Conversation

Chenyang-L
Copy link
Contributor

@Chenyang-L Chenyang-L commented Jul 11, 2023

LLVM: llvm/llvm-project@af35be5
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@9823690

Community has started to refactor some code assuming opaque pointer only,
however the SPIRV component used in sycl is not ready to enable the opaque pointer by default,
so we have to revert some of the commit by guarding them within macro INTEL_SYCL_OPAQUEPOINTER_READY,
and keep both version of the code.
The old code should be removed once we enable opaque pointer by default.

callumfare and others added 30 commits June 26, 2023 12:26
Includes a large number of missing `pi_result` mappings, so previously
reported errors should no longer map to just `PI_ERROR_UNKNOWN`. NFCI
for the adapters.
We are going to re-build the cuda runner, need to ensure CI continues
working while it will be offline. The move is also good by itself as
there was nothing cuda-specific in those tasks.
We've switched the task to use "[Linux, build]" runners in #10074 and
this option isn't needed anymore.
…sent (#10079)

Aligns the task with its Linux counterpart.
Due to issue #7268
I changed old exceptions to new ones (`sycl::exception`)
`std::true_t` and `std::false_t` don't exist, the correct ones are
`std::true_type` and `std::false_type`.

Signed-off-by: Maronas, Marcos <marcos.maronas@intel.com>
…oup-size (#9928)

Based off #8167

---------

Co-authored-by: Alexey Sachkov <alexey.sachkov@intel.com>
#9546 and similar accidentally broke
code that was responsible to reset Intel GPU before running End-to-End
tests. Restore functionality + add reset for the pre-commit task running
End-to-End tests with a nightly build.
Signed-off-by: jinge90 <ge.jin@intel.com>
This patch updates GPU RT version on Linux to support 

[DEVICE_IP_VERSION_EXT](oneapi-src/level-zero-spec#23)
implementation required for #9843.
Certain quotient values are off by 1 since the conversion to `int`
truncates the decimal value. Use `std::round` to round to the nearest
integer before converting to `int`.

Signed-off-by: Michael Aziz <michael.aziz@intel.com>
These checks are causing issues for very large USM allocations because
the `MAX_MEM_ALLOC_SIZE` reported is lower than what CUDA actually
supports.

We will follow up with an update on the reported `MAX_MEM_ALLOC_SIZE`,
but it makes sense to remove the checks either way, as the CUDA
allocation functions will return an error if they can't allocate the
memory.
These tests now pass after this commit:
8417687

> Unexpectedly Passed Tests (2):
SYCL ::
InvokeSimd/Feature/ImplicitSubgroup/SPMD_invoke_ESIMD_external.cpp
  SYCL :: InvokeSimd/Feature/SPMD_invoke_ESIMD_external.cpp
…s images extension (#9808)

This PR stands as the first PR of four to make code review easier,
covering the changes made to libclc.

See the original whole [PR](#9665).

This is the first part of the implementation of revision 3 of the
[bindless images extension
proposal](https://github.com/intel/llvm/blob/8a48106617a9e2365c1935302d20e53bc7174368/sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images/sycl_ext_oneapi_bindless_images.asciidoc).

---------

Co-authored-by: SYCL Unbound Team <sycl.unbound@codeplay.com>
Co-authored-by: Isaac Ault <isaac.ault@codeplay.com>
Co-authored-by: Hugh Bird <hugh.bird@codeplay.com>
Co-authored-by: Duncan Brawley <duncan.brawley@codeplay.com>
Co-authored-by: Przemek Malon <przemek.malon@codeplay.com>
Co-authored-by: Chedy Najjar <chedy.najjar@codeplay.com>
Co-authored-by: Sean Stirling <sean.stirling@codeplay.com>
Co-authored-by: Peter Zuzek <peter@codeplay.com>
)

This change implements `sycl_ext_intel_grf_size`, and in particular:

1) Moves the `sycl_ext_intel_grf_size` spec document from the `proposed`
folder to the `experimental` folder, and updates the implementation
status in the document to match.
2) Adds two new kernel properties
`sycl::ext::intel::experimental::grf_size` and
`sycl::ext::intel::experimental::grf_size_automatic`, as per the spec.
`grf_size` adds the `sycl-grf-size` metadata with a value of the
template parameter (`128` or `256`). `grf_size_automatic` adds the
`sycl-grf-size` metadata with a value of `0`.
3) Marks the `sycl::detail::register_alloc_mode` property as deprecated,
and it still works as before.
4) Updates `CompileTimePropertiesPass.cpp` to map the `sycl-grf-size`
metadata added by the front-end to the `RegisterAllocMode` metadata
which `llvm-spirv` looks for. This `RegisterAllocMode` metadata is how
AOT works.
5) Updates `sycl-post-link` to split by the `sycl-grf-size` metadata,
have a `sycl-grf-size` binary property, and do a error check to make
sure the deprecated `sycl::detail::register_alloc_mode` and
`grf_size`/`grf_size_automatic` are not set at the same time on the same
kernel.
6) Updates `program_manager` to deal with the new image property and
pass the right flags
7) Updates exists tests to also test the new properties.

---------

Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>
…h flag to them (#10090)

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova@intel.com>
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova@intel.com>
This test used to be only run on the CPU and GPU but when we moved to
the `%{run}` notation, it wasn't marked as unsupported on accelerator.
It seems unsupported on accelerator. The `clCreateProgramWithIL()` call
is returning and error -59 when the accelerator device is the one behind
the context. I went back and checked and it has never worked on
accelerator. I'll make a note in the online compiler tickets and if this
is a real error, a ticket will be opened. But the test should be
restored so to not be run on accelerator.
…ml (#10100)

Two reasons:

  1) Not reliable, easy to skip testing without noticing.
  2) That accidentally enabled "opencl:acc" that we don't run anywhere
     else and its state isn't green, resulting in "false" failures
     reported by CI.
…10076)

It is needed to handle suite's run_launcher param properly.
In the continued effort to make the math builtin functions into
overloads, this commit changes the scalar and vector relational builtins
to adhere to the new builtin overload structure.

---------

Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Add support for -ftarget-export-symbols. This option when used with
-fsycl -fsycl-targets=spir64_gen when creating shared libraries. This
exposes the exported symbols in the library so they can be available for
other modules.
Introduces support for work-group local allocations at program and
function scope, lifting some of the restrictions of
sycl_ext_oneapi_group_local_memory.

---------

Signed-off-by: John Pennycook <john.pennycook@intel.com>
Co-authored-by: Greg Lueck <gregory.m.lueck@intel.com>
…rk_group_size (#10093)

According to SYCL 2020,

> If a kernel is decorated with this attribute and then submitted to a
device that does not support the work group size, the implementation
must throw a synchronous exception with the `errc::kernel_not_supported`
error code.

This patch fixes sycl::errc in such case: it returned `errc::nd_range`,
now it returns `errc::kernel_not_supported`.
have @intel/dpcpp-nativecpu-pi-reviewers own:
sycl/plugins/native_cpu/
sycl/test/check_device_code/native_cpu/
sycl/test/native_cpu/
clang/include/clang/Basic/SYCLNativeCPUHelpers.h
clang/test/CodeGenSYCL/native_cpu_basic.cpp
clang/test/Driver/sycl-native-cpu-fsycl.cpp
clang/test/Driver/sycl-native-cpu-warn.cpp
clang/test/Driver/sycl-native-cpu.cpp
llvm/include/llvm/SYCLLowerIR/EmitSYCLNativeCPUHeader.h
llvm/include/llvm/SYCLLowerIR/PrepareSYCLNativeCPU.h
llvm/lib/SYCLLowerIR/EmitSYCLNativeCPUHeader.cpp
llvm/lib/SYCLLowerIR/PrepareSYCLNativeCPU.cpp
sycl/doc/design/SYCLNativeCPU.md

---------

Co-authored-by: PietroGhg <38155419+PietroGhg@users.noreply.github.com>
Co-authored-by: Alexey Bader <alexey.bader@intel.com>
aelovikov-intel and others added 28 commits July 7, 2023 07:53
I plan to add automatic "lastest-good-nightly" release to it, we need to
extend the testing for that.
have @intel/syclcompat-lib-reviewers own:

sycl/include/syclcompat/
sycl/doc/syclcompat/
sycl/unittests/syclcompat/
sycl/cmake/modules/AddSYCLLibraryUnitTest.cmake
sycl/include/syclcompat.hpp

which equates to

sycl/**/syclcompat/ @intel/syclcompat-lib-reviewers
sycl/cmake/modules/AddSYCLLibraryUnitTest.cmake
@intel/syclcompat-lib-reviewers
sycl/include/syclcompat.hpp @intel/syclcompat-lib-reviewers
…10252)

Signed-off-by: jaime.a.arteaga.molina <jarteaga@scsel-cfl-10.sc.intel.com>
Co-authored-by: jaime.a.arteaga.molina <jarteaga@scsel-cfl-10.sc.intel.com>
…ers (#9914)

Remove the thread local variable workaround for deferred release of
auxiliary resources by passing the required information from reduction
headers.
Same as #9419. This updates a few tests that were missed where the
`fast-math` flag affects at least the cuda backend. These tests assume
`no-fast-math` precision.

---------

Signed-off-by: JackAKirk <jack.kirk@codeplay.com>
Co-authored-by: JackAKirk <chezjakirk@gmail.com>
This implements the current extension doc from
#6104 in the CUDA backend only.

Fixes #7543.
Fixes #6749.

---------

Signed-off-by: JackAKirk <jack.kirk@codeplay.com>
Co-authored-by: Nicolas Miller <nicolas.miller@codeplay.com>
Co-authored-by: JackAKirk <chezjakirk@gmail.com>
Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>
Add noexcept to AccessorBaseHost::getPtr since get_pointer is noexcept
in SYCL 2020
… with -fsycl (#9864)

This PR allows users to include a Pre-Compiled header (PCH) file while
performing the host compilation step with `-fsycl`.

**// Create PCH**
`clang++ -x c-header test.h`

**// Use PCH**
```
clang++ -c -fsycl -include test.h test.cpp
clang++ -c -fsycl -include-pch test.h.gch test.cpp
```
This restores sycl_cleanup action that had been removed in commit
ece35ad.
…10286)

This reverts commit 6b74243.

Needs adjustments in E2E-testing performed on the build as that has been
enabled since #9850. Also, disable E2E on nightly in pre-commit as that
requires an image with all plugins enabled.
Update the description of the limitations in the
"sycl_ext_oneapi_device_architecture" extension. The newly added host
APIs in that extension do not have the same restrictions as the
`if_architecture_is` function.
…L 1.2.1 (#10174)

* This PR covers updates in [Default multi_ptr to legacy to avoid code
break with SYCL
1.2.1](KhronosGroup/SYCL-Docs#432)
* Declare access::decorated::legacy as deprecated.
* Revert `get_pointer` interface for device, host and local_accessor
back to 1.2.1 version.
* `enable_if` `async_work_group_copy` in `group.hpp` and `nd_item.hpp`
to ensure Dst and Src(const / non-const) have the same type.
* Add multi_ptr::get_raw and multi_ptr::get_decorated member functions
to the access::decorated::legacy specialization of multi_ptr.
This patch combines ADL-S and RPL-S architectures for
 sycl_ext_oneapi_device_architecture extension. These 
two architectures are the same.

Fixes #10184
The loading address didn't calculate the column offset right w.r.t the
sub-group id.

Signed-off-by: Yilong Guo <yilong.guo@intel.com>
Upcoming changes to SYCL builtins will cause code using namespace sycl
implicitly to be ambiguous when using certain builtins that are
available in the global scope already. This commit changes uses of `abs`
to be namespace qualified to avoid them breaking with future builtin
changes.

---------

Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
The workflow will be shared between normal "Build + E2E" and "E2E on
Nightly" tasks.
This change better aligns checkout between build/e2e-tests. Next step
would be to make them use the same commit for the merge but I plan to do
that in a separate PR.
This patch fixes compilation error in fpga_lsu.cpp and
fpga_latency_control_lsu.cpp. Tested locally with open-source and
closed-source compilers.
Currently there is no external testing with the accelerator device in
open source.
@Chenyang-L Chenyang-L added the disable-lint Skip linter check step and proceed with build jobs label Jul 11, 2023
@Chenyang-L Chenyang-L closed this Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disable-lint Skip linter check step and proceed with build jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.