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

[alpaka] Add support for the SYCL back-end #407

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Commits on Aug 28, 2023

  1. Fix warnings about unused variables

    fwyzard authored and AuroraPerego committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    552f0e0 View commit details
    Browse the repository at this point in the history
  2. Disable vendor-specific RNG support

    fwyzard authored and AuroraPerego committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    54ee48f View commit details
    Browse the repository at this point in the history
  3. [sycl] add path to debugger in Makefile

    additional sources are necessary to use gdb-oneapi
    the same is true for the other tools (advisor, inspector, vtune...) but since they are useless there is no point in sourcing them as well
    AuroraPerego committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    2be85e8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e8fdc61 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2023

  1. [alpaka] add option to compile for the SYCL backend

    The application is compiled once for the CPU(s) and once for the Intel GPU(s).
    The flags for AOT compilation have been added and icpx is used as the default compiler for the SYCL backend.
    The linking step is performed as well with icpx when the SYCL backend is enabled.
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    decbfd4 View commit details
    Browse the repository at this point in the history
  2. [alpaka] checkout a newer alpaka version

    commit 819974ddc5b2eb4b33e709bd317701793cdb7d15
    Author: Jan Stephan <j.stephan@hzdr.de>
    Date:   Thu Aug 3 14:20:59 2023 +0200
    
        Always use std::size_t for CUDA pitch calculations
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    5994097 View commit details
    Browse the repository at this point in the history
  3. [alpaka] put static after ALPAKA_FN_INLINE

    Changed the order to make the ONEAPI compiler happy
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    4452287 View commit details
    Browse the repository at this point in the history
  4. [alpaka] define CONSTANT_VAR as constexpr for SYCL

    For the other backends it is mapped to ALPAKA_STATIC_ACC_MEM_CONSTANT, but global variables are not supported yet in the SYCL backend.
    However, in this case a `constexpr` is enough to obtain the same result
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    fe69537 View commit details
    Browse the repository at this point in the history
  5. [alpaka] add support for SYCL in the framework

    - added the allocator policy: Caching or Synchronous
    - added allocCachedBuf: TODO implement pitch in SYCL
    - fixed cout because SYCL events in alpaka are not shared pointers
    - do not cache SYCL events
    - Changed size of CountersOnly to 1 because SYCL kernels do not support zero-lenght arrays
    - implemented HostOnlyTask using `alpaka/core/CallbackThread`
    - adapt `prefixScan` and `radixSort` to SYCL: work around the function pointer not supported in SYCl kernels
    - implemented the work division
    - add the `--syclcpu` and `--syclgpu` options for the backends
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    e0dc17b View commit details
    Browse the repository at this point in the history
  6. [alpaka] define a common interface for math functions

    Math functions are defined in the `namespace math` and are taken from the `sycl namespace` for the SYCL backend, from the global namespace for the CUDA and HIP backends and from the `std namespace` in every other case
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    9377ce5 View commit details
    Browse the repository at this point in the history
  7. [alpaka] add support for SYCL in the plugins and in the tests

    added the ifdef for SYCL
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    37aa0cb View commit details
    Browse the repository at this point in the history
  8. [alpaka] add warpSize trait

    Add trait to set the warp size to 32 for the kernels that requires it.
    Implemented in alpaka only for the SYCL backend at the moment, does nothing for the other backends
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    1013547 View commit details
    Browse the repository at this point in the history
  9. [alpaka] fix for the SYCL CPU backend

    There is a bug with `any_of_group` / `all_of_group` in the OpenCL runtime that can be worked around setting the sub-group size equal to the block size.
    The bug has been solved in the latest runtimes, but the application hangs with these..
    AuroraPerego committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    1774c68 View commit details
    Browse the repository at this point in the history