Skip to content

Releases: intel/llvm

oneAPI DPC++ Compiler 2022-12

08 Feb 07:14
6977f1a
Compare
Choose a tag to compare

New features

SYCL Compiler

SYCL Library

  • Implemented accessor member functions swap, byte_size, max_size and
    empty. [f1f907a]
  • Implemented SYCL 2020 default accessor constructor. [04928f9]
  • Implemented SYCL 2020 accessor iterators. [5b9fd3c] [c7b1a00]
  • Changed value_type of read-only accessors to const in accordance with
    SYCL 2020. [227614c]
  • Implemented SYCL 2020 multi_ptr and address_space_cast. [8700b76]
    [483984a] [4a9e9a0]
  • Implemented SYCL 2020 has_extension free functions. [7f1a6ef]
  • Implemented SYCL 2020 aspect_selector. [c0a4a56]
  • Implemented new SYCL 2020 style FPGA selectors. [0417651]
  • Implemented SYCL 2020 default async_handler behavior. [cd93d8f]
  • Implemented SYCL 2020 is_compatible free function. [67f6bba]
  • Implemented queue shortcut functions with placeholder accessors. [5ee066e]
  • Added support for creating a kernel bundle with descendent devices of the
    passed context's members. [a782779]
  • Implemented non-blocking destruction and deferred release of memory objects
    without attached host memory. [894ce25]
  • Implemented the sycl_ext_oneapi_queue_priority
    extension. [cdb09dc]
  • Implemented the sycl_ext_oneapi_user_defined_reductions
    extension. [8311d79]
  • Implemented the sycl_ext_oneapi_queue_empty
    extension proposal. [c493295]
  • Implemented the sycl_ext_oneapi_weak_object
    extension. [d948427] [9297f63]
  • Implemented the sycl_ext_intel_cslice
    extension. The old behavior that exposed compute slices as sub-sub-devices is
    now deprecated. For compatibility purposes, it can be brought back via the
    SYCL_PI_LEVEL_ZERO_EXPOSE_CSLICE_IN_AFFINITY_PARTITIONING environment
    varible. [5995c618]
  • Implemented the sycl_ext_intel_queue_index
    extension. [d2ec964] [7179e83]
  • Implemented the sycl_ext_oneapi_memcpy2d
    extension. [516d411]
  • Implemented device ID, memory clock rate and bus width information queries
    from the sycl_ext_intel_device_info
    extension. [1d99344] [4f7787c]
  • Implemented ext::oneapi::experimental::radix_sorter from the
    sycl_ext_oneapi_group_sort
    extension proposal. [86ba180]
  • Implemented a new unified interface for the sycl_ext_oneapi_matrix
    extension for CUDA. [166bbc3]
  • Added support for sorting over sub-groups. [168767c]
  • Added C++ API wrappers for the Intel math functions ceil, floor, rint,
    sqrt, rsqrt and trunc. [1b7582b]
  • Implemented a SYCL device library for bfloat16 Intel math function
    utilities. [fc136d6]
  • Added support for range reductions with any number of reduction variables.
    [572bc50]
  • Added support for reductions with kernels accepting item. [5d5e9f4]
  • Enabled sub-group masks for 64-bit subgroups. [10d50ed]
  • Implemented the new non-experimental API for DPAS. [55bf1a0] [1e7a8ea]
  • Added 8/16-bit type support to lsc_block_load and lsc_block_store ESIMD
    API. [f9d8059]
  • Implemented atomic operation support in the ESIMD emulator. [a6a0dea]
  • Added various trivial utility functions for the half type. [b4ce7c0]
  • Added type cast functions between half and float/integer types to
    libdevice. [599b1b9]
  • Implemented the ONEAPI_DEVICE_SELECTOR environment variable that, in
    addition to supporting SYCL_DEVICE_FILTER syntax, allows to expose GPU
    sub-devices as SYCL root devices and supports negative filters.
    SYCL_DEVICE_FILTER is now deprecated. [28d0cd3] [b21e74e] [77b6f34]
    [6bd5f9c] [6aefd63]
  • Added the SYCL_PI_LEVEL_ZERO_SINGLE_ROOT_DEVICE_BUFFER_MIGRATION
    enviornment variable. [bd03e0d]

Documentation

Improvements

SYCL Compiler

  • Added the InferAddressSpaces pass to the SPIR/SPIR-V compilation pipeline,
    reducing the size of the generated device code. [a3ae0dd]
  • Redesigned pointer handling so that it no longer decomposes kernel argument
    types containing pointers. [3916d3b] [d55e9c2] [9b02506]
  • Kernel lambda operator is now always inlined in the device code entry point
    unless -O0 is used. [b91b732] [2359d94]
  • Improved entry point handling in the sycl-post-link tool. [53d9c7b]
  • The reqd_work_group_size attribute now works with 1, 2 or 3 operands.
    [4ff42c3]
  • Enabled using -fcf-protection option with -fsycl, which results in it
    being applied only to host code compilation and producing a warning. [b6f61f6]
  • Linux based compiler driver on Windows now pulls in the sycld debug library
    when msvcrtd is specified as a dependent library. [ebf6c59]
  • Added /Zc:__cplusplus as a default option during host compilation with MSVC.
    [e7ed860]
  • Improved the ESIMDOptimizeVecArgCallConv optimization pass to cover more IR
    patterns. [4926454]
  • Added support for more types in ESIMD lsc functions. [d9e40ec]
  • Added error diagnostics for using
    sycl::ext::oneapi::experimental::annotated_arg/ptr as a nested type.
    [321c733]
  • The status of bfloat16 support was changed from experimental to supported.
    [7b47ebb]

SYCL Library

  • Updated online_compiler with Gen12 GPU support. [adfb1c1]
  • get_kernel_bundle and has_kernel_bundle now check that the kernels are
    compatible with the devices. [91b1515]
  • Waiting for an event associated with a kernel that uses a stream now also
    waits for the stream to be flushed. [1db0e81]
  • Added the requested device type to the message of the exception thrown when no
    such devices are found. [6b83ad7]
  • Optimized operator[] of host_accessor. [01e60f7]
  • Improved reduction performance on discrete GPUs. [99bdc82]
  • Added invoke_simd support for functions with void return type. [3fd0850]
  • The Level Zero plugin now creates every event as host-visible by default.
    [f3d245d]
  • Added Level Zero plugin support for global work sizes greater than
    UINT32_MAX as long as they are divisible by some legal work-group size and
    the resulting quotient does not exce...
Read more

DPC++ daily 2023-02-08

08 Feb 17:23
7589ac9
Compare
Choose a tag to compare
Pre-release
[CI][OpenCL] Add code owner for OpenCL CPU RT (#8241)

Add code owner for OpenCL CPU RT and SYCL transform folders.

OpenCL SVML libraries

08 Feb 08:01
7589ac9
Compare
Choose a tag to compare
OpenCL SVML libraries Pre-release
Pre-release

SVML libraries for OpenCL CPU RT.

sha256 sums for packages:

  • 4357d656787a667c3d7a10492d6046840d62e867daff6856a176fcd11ddaeeb8 ocl-svml-2022-lin.tar

  • c2fef677ed78fea5902f2575c9571740b8116f3658f8992d4711fa0be3b6f827 ocl-svml-2022-win32.zip

  • c9d58ee00ca724ed21ac30815d5acb38b3f178a0f4ebaea5e822265e807e928e ocl-svml-2022-win64.zip

DPC++ daily 2023-02-07

07 Feb 17:45
dcbd6e5
Compare
Choose a tag to compare
Pre-release
[OpenCL] Add support for cslice partitioning (#7963)

Recently, an extension was added here:
https://github.com/intel/llvm/pull/7513
This extension allows partitioning a device by "cslice" (aka CCS-es).
With this change, on PVC sub-sub-devices now require
info::partition_property::ext_intel_partition_by_cslice instead of
info::partition_property::partition_by_affinity_domain that wasn't quite
accurately describing the actual scheme.
Level Zero backend support was added here:
https://github.com/intel/llvm/pull/7626
In this change, we are adding support in OpenCL plugin.

This change makes use of the cl_intel_command_queue_families recently
added.

Signed-off-by: Arvind Sudarsanam <arvind.sudarsanam@intel.com>

DPC++ daily 2023-02-06

06 Feb 17:41
b07bd8d
Compare
Choose a tag to compare
Pre-release
[SYCL][Fusion][NFC] Fix warning in `FusionHelper.cpp` (#8207)

Warning log:
```
/path/to/llvm/sycl-fusion/jit-compiler/lib/fusion/FusionHelper.cpp: In lambda function:
/path/to/llvm/sycl-fusion/jit-compiler/lib/fusion/FusionHelper.cpp:136:11: warning: control reaches end of non-void function [-Wreturn-type]
  136 |           }();
      |
```

Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>

Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>

DPC++ daily 2023-02-04

04 Feb 17:24
aa69e4d
Compare
Choose a tag to compare
Pre-release
[SYCL] Implement diagnostic for !access_mode::read + const T (#8169)

According to [Read only
accessors](https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#_read_only_accessors)
A const qualified DataT is only allowed for a read-only accessor.
This PR:
- Implements Implement diagnostic for !access_mode::read + const T
- Adds test to for above diagnostic
- Updates affected tests.
- Assigns access::mode:read to access mode of local accessor when the
data type is constant. The previous value was access::mode:read, which
lead to an assert after implementing above diagnostic.

DPC++ daily 2023-02-03

03 Feb 17:32
56ef705
Compare
Choose a tag to compare
Pre-release
[SYCL][Clang] Fix annotations applied to integer fields (#8198)

Due to incorrect conflict resolution between 8e13852c (intel/llvm
customization) and https://reviews.llvm.org/D138722 clang started
emitting annotations applied to integer class/struct fields incorrectly.
Incorrect overload of llvm.ptr.annotation intrinsic was picked up and
this resulted in invalid IR emission. This patch restores behavior
introduced by 8e13852c.
The existing test added for 8e13852c didn't catch the problem since it
is modified upstream test `CodeGen/annotations-field.c` which doesn't
test typed pointers.

DPC++ daily 2023-02-02

02 Feb 17:26
e9c769e
Compare
Choose a tag to compare
Pre-release
[SYCL] Fix error when size_t is used as enum base (#8162)

"std::size_t" was emitted in the forward declaration of enum in
integration header.
This resulted in compilation errors about use of undeclared identifier
"std". To fix this,
builtin is resolved to integral type in forward declaration.

DPC++ daily 2023-02-01

01 Feb 17:22
2b00cf9
Compare
Choose a tag to compare
Pre-release
[SYCL] Add generic fabs imp for bf16 (#8143)

Signed-off-by: jinge90 <ge.jin@intel.com>

DPC++ daily 2023-01-31

31 Jan 17:21
c3c5e92
Compare
Choose a tag to compare
Pre-release
[SYCL][HIP] Add basic HIP atomics (#8003)

Adding support for basic atomic operations for HIP AMD backend.

---------

Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>