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

[SYCL][Graph] Implementation of whole graph update #365

Closed
wants to merge 29 commits into from

Commits on Mar 27, 2024

  1. Configuration menu
    Copy the full SHA
    ca784f5 View commit details
    Browse the repository at this point in the history
  2. [SYCL][ESIMD][E2E] Remove setenv call from lsc_usm_atomic_cachehint.c…

    …pp (intel#13171)
    
    All it's doing is setting doubleGRF, just do that using the first-class
    API.
    
    Manually tested this on Win.
    
    ---------
    
    Signed-off-by: Sarnie, Nick <[email protected]>
    sarnex authored Mar 27, 2024
    Configuration menu
    Copy the full SHA
    caa6df8 View commit details
    Browse the repository at this point in the history
  3. [SYCL][ESIMD][E2E] Re-enable fp_call_from_func.cpp (intel#13180)

    Tested manually on Win/Lin with many runs, doesn't hang anymore.
    
    Closes: intel#8815
    
    Signed-off-by: Sarnie, Nick <[email protected]>
    sarnex authored Mar 27, 2024
    Configuration menu
    Copy the full SHA
    13ea567 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d7bdb68 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    db6a05d View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2024

  1. [CI][OSSF] Add default permissions to work flows (intel#13173)

    per OSSF
    (https://securityscorecards.dev/viewer/?uri=github.com/intel/llvm) all
    workflows should have default top level permission set. Which we set to
    below as per recommendation
    
    permissions:
      contents: read
    
    then within actual jobs, when needed, we added additional privileges. 
    
    These changes were generated by the recommended OSSF tool 
    
    This PR changes those workflows created/owned by intel/llvm repo. Will
    do seperate PR for issues found in llvm/llvm-project inherited
    workflows.
    stdale-intel authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    1e894d1 View commit details
    Browse the repository at this point in the history
  2. [SYCL][NATIVECPU][libclc]Mark opencl_c_generic_address_space as unsup…

    …ported on Native CPU (intel#13109)
    
    Similarly to what is done for `nvptx` in
    intel#13015, Native CPU maps `private` and
    `generic` to the same address spaces, so we need to avoid getting
    multiple definitions for the libclc builtins that use `generic`.
    PietroGhg authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    8847c11 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f64a32a View commit details
    Browse the repository at this point in the history
  4. [SYCL] Adjust GCC workaround and its scope (intel#13144)

    Previously we were hard-coding an -O2 optimization level for the
    'signbit' builtin for all versions of GCC.
    
    Despite this workaround, I found locally that I was unable to build with
    GCC versions 12.2, 12.3, and 13.2. Reducing the optimization level to
    -O1 allowed me to progress. This seems to follow the bug report already
    linked, which had test cases at -O2 which were also failing.
    
    With this in mind, we can also restrict the GCC versions we apply the
    workaround to, so that more modern compilers should "just work" without
    us having to do anything. That should save someone having to investigate
    a performance report a year or so down the line...
    frasercrmck authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    f894d08 View commit details
    Browse the repository at this point in the history
  5. [SYCL][libclc] Fix missing build dependencies (intel#13145)

    This commit fixes the problem of missing build dependencies between
    libclc source files and their various includes.
    
    We would like to do this with compiler-generated dependency files
    because then the dependencies are accurate and there are no false
    positives, leading to unnecessary rebuilds. This is how regular C/C++
    dependencies are usually tracked by CMake.
    
    Note that this variable is an internal API so is not guaranteed to work,
    but then again *all* of CMake's support for new languages (which we use
    for CLC/LL languages) is an internal API. On balance this change is
    probably worth it due to how minimally invasive it is.
    
    The alternative would be to either:
    
    1. list/glob all possible files in the directory as dependencies, which
    would lead to false positives.
    2. rewrite the library generation as a loop over all files and calling
    `add_custom_command`, which can produce a dependency file (by tweaking
    our clang command line) that can also be fed back to the same command
    via the `DEPFILE` argument. This would be a much larger change and is
    not as "neat".
    frasercrmck authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    f2ac688 View commit details
    Browse the repository at this point in the history
  6. [SYCL] Fix error handling in non-blocking pipe operations (intel#13166)

    When a non-blocking pipe operation fails,
    CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST is expected. The runtime
    needs to handle that case instead of throwing the exception.
    sergey-semenov authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    a1c1e04 View commit details
    Browse the repository at this point in the history
  7. [CI] Fix bad OSSF recomendations (intel#13187)

    the OSSF tool sucks and don't use its recommended default settings. It
    suggested permissions content:read as default, but that broke most of
    our workflows, instead use the GitHub recommended
    
    permissions: read-all
    stdale-intel authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    bf93fbd View commit details
    Browse the repository at this point in the history
  8. [XPTI][INFRA] Sample E2E data collection timing test for XPTI (intel#…

    …13045)
    
    XPTI has unit tests that time the cost of each individual framework
    action, but an E2E timing test isn't available. This PR adds a new
    sample collector that shows how data can be pulled from the SYCL runtime
    using XPTI and provides timing information for the callback handler
    costs/event.
    
    Allows:
     1. Zero cost application with XPTI_TRACE_ENABLE=0
     2. Zero cost callback handlers when run in calibration mode
    3. Full E2E test when run with "--format none" which gives the average
    cost of callback handlers/event
    
    ---------
    
    Signed-off-by: Vasanth Tovinkere <[email protected]>
    tovinkere authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    0c0b586 View commit details
    Browse the repository at this point in the history
  9. [SYCL] persistent cache fix - directory creation and reporting improv…

    …ements (intel#13019)
    
    We have a report of persistent cache failures. Traced to the directory
    creation so I switched it to use C++17 std::filesystem routines for
    `OSUtil::makeDir`. Also improved trace reporting.
    cperkinsintel authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    f6e73e8 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    2469975 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    7d77f84 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2024

  1. [spir-v][clang] Allow spirv32/spirv64 as target triples for sycl offl…

    …oading (intel#13083)
    
    Based on discussions with various stakeholders, we concluded that
    spirv32/spirv64 are the best-suited strings for target architectures
    when user wants to generate JIT code for Intel backends using DPCPP
    compiler.
    This PR adds changes to allow the DPCPP compiler to accept
    spirv32/spirv64 as valid target architecture strings. spir/spir64 are
    also valid target architecture strings, but will be deprecated in a
    future commit.
    This change will help us to align with the SPIR-V backend behavior and
    ensure smoother SYCL upstreaming.
    Currently, only JIT triples using spirv32/spirv64 are supported. AOT
    triples using spirv32/spirv64 will be added soon.
    
    Thanks
    
    ---------
    
    Signed-off-by: Sudarsanam, Arvind <[email protected]>
    asudarsa authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    8867d44 View commit details
    Browse the repository at this point in the history
  2. [SYCL][NATIVECPU] Update OCK tag (intel#13188)

    Updates the git tag for the oneAPI Construction Kit.
    PietroGhg authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    ba5feec View commit details
    Browse the repository at this point in the history
  3. [SYCL][SCLA] Check allocated types are trivial (intel#13105)

    Replace check for cv-unqualified object types with a check for
    cv-unqualified trivial types to be in line with the
    `sycl_ext_oneapi_private_alloca` extension specification:
    
    > `ElementType` must be a cv-unqualified trivial type
    
    ---------
    
    Signed-off-by: Victor Perez <[email protected]>
    victor-eds authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    ac4808a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d4045be View commit details
    Browse the repository at this point in the history
  5. [SYCL] Implement get_backend_info() (intel#12906)

    Implementing the get_backend_info() functions for our SYCL
    implementation based on SYCL 2020 spec. (Link here:
    https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html
    you may search for "get_backend_info()" there for the spec for these
    functions)
    There're six groups of variations for this function, namely
    `sycl::platform::get_backend_info()`,
    `sycl::context::get_backend_info()`, `sycl::device::get_backend_info()`,
    `sycl::queue::get_backend_info()`, `sycl::eventv::get_backend_info()`,
    and `sycl::kernel::get_backend_info()`
    
    One known concern: it seems that sycl::platform, sycl::context and
    sycl::kernel may have multiple associated device, but according to the
    spec the return type for
    `sycl::xxx::get_backend_info<info::device::version>()` should be
    std::string (i.e. a single device version) so I'm just returning the
    version of the first associated device in the list. Is this OK?
    
    ---------
    
    Signed-off-by: Hu, Peisen <[email protected]>
    HPS-1 authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    b9aa33e View commit details
    Browse the repository at this point in the history
  6. [SYCL][Bindless][E2E] fix unsampled images test failure (intel#13007)

    * Update the test to initialize the input vectors with 0s to match
    `bindless_helpers::fill_rand` requirement of non empty vector.
    * Change the name of function `initVector` to  `init_vector`.
    * move `init_vector`, `equal_vec` and `operator<<` in header
    `bindless_helpers.hpp`.
    cppchedy authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    b48e342 View commit details
    Browse the repository at this point in the history
  7. [SYCL][Joint Matrix] Add a new overload for joint_matrix_apply to be …

    …able to return result into a different matrix (intel#13151)
    
    Currently, CUDA code that use this pattern:
      for (int i = 0; i < c_frag.num_elements; i++) {
        c_frag.x[i] = alpha * acc_frag.x[i] + beta * c_frag.x[i];
      }
    cannot be migrated to SYCL joint matrix.
    This added overload addresses this.
    Spec API is added here intel#13153
    dkhaldi authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    8913285 View commit details
    Browse the repository at this point in the history
  8. [SYCL][NFC] Rename variable (intel#13208)

    After
    intel@370aa2a
    grf_size control values changed to 128 and 256 values instead of values
    like "small", "large".
    
    
    > 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`.
    
    and user is expected to specify value like this:
    syclex::properties kernel_properties{intelex::grf_size<128>};
    syclex::properties kernel_properties{intelex::grf_size<256>};
    againull authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    92945f4 View commit details
    Browse the repository at this point in the history
  9. [SYCL][NFC] Apply clang-format to bitreverse test (intel#13095)

    Apply clang-format to llvm.bitreverse lowering testcase
    
    ---------
    
    Signed-off-by: Lu, John <[email protected]>
    LU-JOHN authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    d6e4a42 View commit details
    Browse the repository at this point in the history
  10. [CI] Add IGC dev as new dependency (intel#13184)

    This is the 1st PR in prepare of enabling dev IGC test for some of the
    SYCL tests.
    
    Ref: intel#11552
    
    Tested
    https://github.com/intel/llvm/actions/runs/8461815185/job/23182202059
    jsji authored Mar 29, 2024
    Configuration menu
    Copy the full SHA
    2f03ef8 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2024

  1. Configuration menu
    Copy the full SHA
    9bfb172 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cefbadd View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2024

  1. Configuration menu
    Copy the full SHA
    6e98293 View commit details
    Browse the repository at this point in the history